Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Механическая торговая система с АмиБрокером (+) Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Ср Апр 16, 2008 2:52 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Откровенно говоря я пока не понял переимуществ в использовании апи перед передачей транзакций через текстовый файл .tri


Похоже я сумбурно написал.

1. Можно ли передавать в ами через трифайл параметры для постановки стопов квиковских, ведь он позволяет определять по классу и т.д. и покупку продажу, и бумагу, и размер позы? Мне показалось что может. В зависимости от ответа на 1. напишу следующий вопрос. Smile

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Ср Апр 16, 2008 9:17 pm Ответить с цитатой Вернуться к началу

Цитата:
1. Можно ли передавать в ами через трифайл параметры для постановки стопов квиковских

Т.е. не купить/продать по рынку, а установить ордер? Можно.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Чт Апр 17, 2008 4:56 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Цитата:
1. Можно ли передавать в ами через трифайл параметры для постановки стопов квиковских

Т.е. не купить/продать по рынку, а установить ордер? Можно.


Ну так почему их не использовать, пусть система ставит стопы сразу в систему, защита от обрыва связи, Зная параметры по которым система выставила стопы в квике, можно в ами создать клонов квиковских стопов и анализировать их сработку, не отправля от самих стопов никаких сигналов. Причем если хватит знаний создать плагин, для 5 видов стопов, чтоб в систему саму писать типа свзанняя заявка(1%, 2%,0.5%) первая цыфра спот обыч, дальше тейк протиф т.е. ждем роста на 2%, при снижении на 0,5% поза закрывается, а плагин должнен предостатить системе возможность анализа стопа(без отправки сигнала) и отправку ордера в квик. и система постояно анализируя внутреннй стоп знать сработал квиковский или нет. Ну а сработку заявок сигналов покупка продажа уже вроде обсуждали.

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Чт Апр 17, 2008 7:59 pm Ответить с цитатой Вернуться к началу

А сейчас как раз и думаю в этом направлении.
Найден способ (пока не проверен) контролировать открытые позиции. (Читать из AFL таблицу лимитов квика)

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
stanislav



Зарегистрирован: 22.04.2008
Сообщения: 12

СообщениеДобавлено: Вт Апр 22, 2008 3:23 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Переписал робота Механизатора. Два дня гонял по 6-10 бумагам одновременно. Работет как часы. Есть идеи как его еще улучшить. Потом выложу на сайте с инструкцией.



Добрый день, мне кажется более надежным вариант обработки сигналов в режиме Анализатора.
Вы используете функцию NumToStr(ххх, format=1.3),
к сожалению у меня никак не получилось изменить формат вывода
цены, в смысле количества знаков после запятой.
не могли бы Вы подсказать, как возможно изменять значение
format используя, например, данные из раздела Information.
Количество лотов например легко берется из Information
ну например в виде Lots= RoundLotSize.
заранее благодарен.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вт Апр 22, 2008 6:38 pm Ответить с цитатой Вернуться к началу

Цитата:
Добрый день, мне кажется более надежным вариант обработки сигналов в режиме Анализатора.

Правильно. АА безусловно надежнее.
Цитата:
Вы используете функцию NumToStr(ххх, format=1.3),
к сожалению у меня никак не получилось изменить формат вывода
цены, в смысле количества знаков после запятой.

Квик ругается если в цене заявки есть лишние знаки после запятой. Причем если там лишние нули, то ему все равно, главное чтобы небыло знчащих цифр. Можно написать format=1.2 или format=1.4, но при торговле одновременно нескольких бумаг вылезут косяки.
Я решил проблему лишних значащих цифр при помощи вот этой конструкции
Otstup = round(LastValue(C)*Otstup/100/TickSize)*TickSize;
При этом для каждого тикера необходимо задать значение TickSize (минимальный шаг изменения цены тикера) в Information.
Количество лотов брать при помощи RoundLotSize не надо. RoundLotSize обозначает количество бумаг в лоте, а в заявке отправляется именно количество лотов.
Задать разный сайз для разных тикеров можно например так
if(Name() == "EESR") Lots = 2000;
if(Name() == "LKOH") Lots = 123;
if(Name() == "VTBR") Lots = 236598;
и т.п.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
stanislav



Зарегистрирован: 22.04.2008
Сообщения: 12

СообщениеДобавлено: Вт Апр 22, 2008 8:03 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Я решил проблему лишних значащих цифр при помощи вот этой конструкции
Otstup = round(LastValue(C)*Otstup/100/TickSize)*TickSize;
При этом для каждого тикера необходимо задать значение TickSize (минимальный шаг изменения цены тикера) в Information.


к сожалению, я не понял какое отношение Otstup = round(LastValue(C)*Otstup/100/TickSize)*TickSize; имеет к формату вывода цены в строку файла, ведь если задан формат format=1.3 то и будет у любой
бумаги выводиться 3 знака после запятой, по крайней мере, у меня так и выходит- рисует три нуля после запятой, не зависимо от бумаги и от ее TickSize.
А при попытках задать величину format в зависимости например от какого либо параметра из Information, все равно количество знаков выходит одинаковым для всех бумаг.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вт Апр 22, 2008 10:04 pm Ответить с цитатой Вернуться к началу

Цитата:
к сожалению, я не понял какое отношение Otstup = round(LastValue(C)*Otstup/100/TickSize)*TickSize; имеет к формату вывода цены в строку файла, ведь если задан формат format=1.3 то и будет у любой
бумаги выводиться 3 знака после запятой, по крайней мере, у меня так и выходит- рисует три нуля после запятой, не зависимо от бумаги и от ее TickSize.

Выводит три знака, но это не важно. Главное чтобы, если у тикера минимальный шаг цены одна копейка, третий знак был равен нулю. Ошибка будет ТОЛЬКО если третий знак не равен нулю.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
stanislav



Зарегистрирован: 22.04.2008
Сообщения: 12

СообщениеДобавлено: Ср Апр 23, 2008 11:27 am Ответить с цитатой Вернуться к началу

[quote="000Выводит три знака, но это не важно. Ошибка будет ТОЛЬКО если третий знак не равен нулю.[/quote]

Спасибо понял, только вышесказанное не подходит для фьючей-
там нет знаков после запятой. Помогло по Вашему совету следующее:

if(Name() == "LKOH") point= 1.3;
if(Name() == "VTBR") point = 1.4;
if(Name() == "RIM8") point = 1.0;
if(Name() == "GZM8") point = 1.0;

NumToStr(sprice, point, separator=False)

Весьма благодарен.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Ср Апр 23, 2008 12:31 pm Ответить с цитатой Вернуться к началу

Понял. Лучше сделай так
point = 1+log10(1/TickSize)/10;

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
stanislav



Зарегистрирован: 22.04.2008
Сообщения: 12

СообщениеДобавлено: Ср Апр 23, 2008 1:23 pm Ответить с цитатой Вернуться к началу

Круто, идею понял, но что то не катит, да и не важно работает и хорошо. Если можно, вдогонку еще вопрос- как я понял transid
составленный из номера бумаги и времени не позволит сделать запись
при поступлении двух противоположных сигналов на одном баре,
а в реальности они могут быть.
Посмотреть профиль Отправить личное сообщение
stanislav



Зарегистрирован: 22.04.2008
Сообщения: 12

СообщениеДобавлено: Ср Апр 23, 2008 1:47 pm Ответить с цитатой Вернуться к началу

Кстати, если пригодится. Квику не нравится при экспорте, когда в имени бумаги присутствуют точки или тире, а они есть в именах
фьючей, поэтому сделал так- использовал короткое имя без оных для
экспорта из квика .код бумаги пишу в FullName(), Account = IndustryID(1 ) ; Client = MarketID( 1 ) предварительно их создав.
Account и Client могут быть разными для спота и для фьючей.
Ну а код бумаги для внутреннего учета и формирования trans засунул
в один из фундаментальных показателей и беру его GetFnData("ххх"),
получается, что все настройки по бумаге находятся в Information.
на мой взгляд удобно, хотя это не подойдет для тех кто пользуется этими настройками по их основному назначению.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Ср Апр 23, 2008 1:50 pm Ответить с цитатой Вернуться к началу

Цитата:
Круто, идею понял, но что то не катит

У меня работает. Я проверил. Только раумеется обязательно надо для всех бумаг задать TickSize.
Цитата:
transid составленный из номера бумаги и времени не позволит сделать запись при поступлении двух противоположных сигналов на одном баре, а в реальности они могут быть.

Не позволит. Надо изменить методику создания transid. Например, если возможны только разнонаправленые сделки, добавит цифирку идентификатор направления сделки. Если на одном баре возможны сразу две покупки, то это странно. Вероятно это две разные стратегии работают одновременно. Тогда можно добавить идентификатор стратегии и т.п.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Ср Апр 23, 2008 1:56 pm Ответить с цитатой Вернуться к началу

stanislav писал(а):
Кстати, если пригодится. Квику не нравится при экспорте, когда в имени бумаги присутствуют точки или тире, а они есть в именах фьючей

Фигасе. Надо бы им (квиковцам) по этому поводу написать. Это конкретный косяк. Напиши плиз.
stanislav писал(а):

использовал короткое имя без оных для
экспорта из квика .код бумаги пишу в FullName(), Account = IndustryID(1 ) ; Client = MarketID( 1 ) предварительно их создав.
Account и Client могут быть разными для спота и для фьючей.
Ну а код бумаги для внутреннего учета и формирования trans засунул
в один из фундаментальных показателей и беру его GetFnData("ххх"),
получается, что все настройки по бумаге находятся в Information.
на мой взгляд удобно, хотя это не подойдет для тех кто пользуется этими настройками по их основному назначению.

Все правильно. Тоже часто пользуюсь подобным приемом.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
stanislav



Зарегистрирован: 22.04.2008
Сообщения: 12

СообщениеДобавлено: Ср Апр 23, 2008 2:09 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Надо изменить методику создания transid. Например, если возможны только разнонаправленые сделки, добавит цифирку идентификатор направления сделки. Если на одном баре возможны сразу две покупки, то это странно. Вероятно это две разные стратегии работают одновременно. Тогда можно добавить идентификатор стратегии и т.п.


Попробую изменить. Хотя руки кривоваты. А стратегия одна, просто
Buy иногда равен Cover вот и две покупки на одном баре.
Распространенная, кстати штука. Видел буржуйских роботов с подобным, вот и пробую.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen