Автор |
Сообщение |
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
000 писал(а): |
Откровенно говоря я пока не понял переимуществ в использовании апи перед передачей транзакций через текстовый файл .tri |
Похоже я сумбурно написал.
1. Можно ли передавать в ами через трифайл параметры для постановки стопов квиковских, ведь он позволяет определять по классу и т.д. и покупку продажу, и бумагу, и размер позы? Мне показалось что может. В зависимости от ответа на 1. напишу следующий вопрос. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Цитата: |
1. Можно ли передавать в ами через трифайл параметры для постановки стопов квиковских |
Т.е. не купить/продать по рынку, а установить ордер? Можно. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
000 писал(а): |
Цитата: |
1. Можно ли передавать в ами через трифайл параметры для постановки стопов квиковских |
Т.е. не купить/продать по рынку, а установить ордер? Можно. |
Ну так почему их не использовать, пусть система ставит стопы сразу в систему, защита от обрыва связи, Зная параметры по которым система выставила стопы в квике, можно в ами создать клонов квиковских стопов и анализировать их сработку, не отправля от самих стопов никаких сигналов. Причем если хватит знаний создать плагин, для 5 видов стопов, чтоб в систему саму писать типа свзанняя заявка(1%, 2%,0.5%) первая цыфра спот обыч, дальше тейк протиф т.е. ждем роста на 2%, при снижении на 0,5% поза закрывается, а плагин должнен предостатить системе возможность анализа стопа(без отправки сигнала) и отправку ордера в квик. и система постояно анализируя внутреннй стоп знать сработал квиковский или нет. Ну а сработку заявок сигналов покупка продажа уже вроде обсуждали. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А сейчас как раз и думаю в этом направлении.
Найден способ (пока не проверен) контролировать открытые позиции. (Читать из AFL таблицу лимитов квика) |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
stanislav
Зарегистрирован: 22.04.2008
Сообщения: 12
|
000 писал(а): |
Переписал робота Механизатора. Два дня гонял по 6-10 бумагам одновременно. Работет как часы. Есть идеи как его еще улучшить. Потом выложу на сайте с инструкцией. |
Добрый день, мне кажется более надежным вариант обработки сигналов в режиме Анализатора.
Вы используете функцию NumToStr(ххх, format=1.3),
к сожалению у меня никак не получилось изменить формат вывода
цены, в смысле количества знаков после запятой.
не могли бы Вы подсказать, как возможно изменять значение
format используя, например, данные из раздела Information.
Количество лотов например легко берется из Information
ну например в виде Lots= RoundLotSize.
заранее благодарен. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Цитата: |
Добрый день, мне кажется более надежным вариант обработки сигналов в режиме Анализатора. |
Правильно. АА безусловно надежнее.
Цитата: |
Вы используете функцию 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
|
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
|
Цитата: |
к сожалению, я не понял какое отношение Otstup = round(LastValue(C)*Otstup/100/TickSize)*TickSize; имеет к формату вывода цены в строку файла, ведь если задан формат format=1.3 то и будет у любой
бумаги выводиться 3 знака после запятой, по крайней мере, у меня так и выходит- рисует три нуля после запятой, не зависимо от бумаги и от ее TickSize. |
Выводит три знака, но это не важно. Главное чтобы, если у тикера минимальный шаг цены одна копейка, третий знак был равен нулю. Ошибка будет ТОЛЬКО если третий знак не равен нулю. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
stanislav
Зарегистрирован: 22.04.2008
Сообщения: 12
|
[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
|
Понял. Лучше сделай так
point = 1+log10(1/TickSize)/10; |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
stanislav
Зарегистрирован: 22.04.2008
Сообщения: 12
|
Круто, идею понял, но что то не катит, да и не важно работает и хорошо. Если можно, вдогонку еще вопрос- как я понял transid
составленный из номера бумаги и времени не позволит сделать запись
при поступлении двух противоположных сигналов на одном баре,
а в реальности они могут быть. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
stanislav
Зарегистрирован: 22.04.2008
Сообщения: 12
|
Кстати, если пригодится. Квику не нравится при экспорте, когда в имени бумаги присутствуют точки или тире, а они есть в именах
фьючей, поэтому сделал так- использовал короткое имя без оных для
экспорта из квика .код бумаги пишу в FullName(), Account = IndustryID(1 ) ; Client = MarketID( 1 ) предварительно их создав.
Account и Client могут быть разными для спота и для фьючей.
Ну а код бумаги для внутреннего учета и формирования trans засунул
в один из фундаментальных показателей и беру его GetFnData("ххх"),
получается, что все настройки по бумаге находятся в Information.
на мой взгляд удобно, хотя это не подойдет для тех кто пользуется этими настройками по их основному назначению. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Цитата: |
Круто, идею понял, но что то не катит |
У меня работает. Я проверил. Только раумеется обязательно надо для всех бумаг задать TickSize.
Цитата: |
transid составленный из номера бумаги и времени не позволит сделать запись при поступлении двух противоположных сигналов на одном баре, а в реальности они могут быть. |
Не позволит. Надо изменить методику создания transid. Например, если возможны только разнонаправленые сделки, добавит цифирку идентификатор направления сделки. Если на одном баре возможны сразу две покупки, то это странно. Вероятно это две разные стратегии работают одновременно. Тогда можно добавить идентификатор стратегии и т.п. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
stanislav писал(а): |
Кстати, если пригодится. Квику не нравится при экспорте, когда в имени бумаги присутствуют точки или тире, а они есть в именах фьючей |
Фигасе. Надо бы им (квиковцам) по этому поводу написать. Это конкретный косяк. Напиши плиз.
stanislav писал(а): |
использовал короткое имя без оных для
экспорта из квика .код бумаги пишу в FullName(), Account = IndustryID(1 ) ; Client = MarketID( 1 ) предварительно их создав.
Account и Client могут быть разными для спота и для фьючей.
Ну а код бумаги для внутреннего учета и формирования trans засунул
в один из фундаментальных показателей и беру его GetFnData("ххх"),
получается, что все настройки по бумаге находятся в Information.
на мой взгляд удобно, хотя это не подойдет для тех кто пользуется этими настройками по их основному назначению. |
Все правильно. Тоже часто пользуюсь подобным приемом. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
stanislav
Зарегистрирован: 22.04.2008
Сообщения: 12
|
000 писал(а): |
Надо изменить методику создания transid. Например, если возможны только разнонаправленые сделки, добавит цифирку идентификатор направления сделки. Если на одном баре возможны сразу две покупки, то это странно. Вероятно это две разные стратегии работают одновременно. Тогда можно добавить идентификатор стратегии и т.п. |
Попробую изменить. Хотя руки кривоваты. А стратегия одна, просто
Buy иногда равен Cover вот и две покупки на одном баре.
Распространенная, кстати штука. Видел буржуйских роботов с подобным, вот и пробую. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|