Автор |
Сообщение |
bonzamen
Зарегистрирован: 17.08.2010
Сообщения: 50
Откуда: Созвездие Альдебаран
|
У меня такой вопрос,сигнал появляется на открытии свечи(сигнал не исчезающий,а 100%),можно ли заставить робота совершать сделку за 5-ть секунд до закрытия свечи,чтобы максимально приблизить торговлю к тестовому варианту.Пытался сделать сканирование раз в 5 мин и запускать его с утра в 9:54:55,чтобы за 5сек до конца 5-мин свечи проводилось сканирование,но время в Ами потихонечку отстает,за час 1-2сек и за день уже будет существенное расхождение,а если неделю не контролировать будет совсем плохо.Может убрать :
Buy1 = Ref(Buy1, -1);
Sell1 = Ref(Sell1, -1);
Short1 = Ref(Short1, -1);
Cover1 = Ref(Cover1, -1);
и есть ли какая то функция,чтобы заявка посылалась не сразу по сигналу,а через 295 сек.? |
_________________ Всем удачи! |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Можно так сделать.
1. Надо убрать перенос сигналов на следующую свечку
Как раз вот это
Код: |
Buy1 = Ref(Buy1, -1);
Sell1 = Ref(Sell1, -1);
Short1 = Ref(Short1, -1);
Cover1 = Ref(Cover1, -1); |
2. Надо заставить робота исполнять сигнал незадолго до закрытия.
Один из вариантов использовать время на компьютере. Функция Now() как раз возвращает текущее время системы.
Можно сделать например так
Код: |
Buy1 = Buy1 AND Now(4) > 184500; |
Работает такая конструкция надежно. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
bonzamen
Зарегистрирован: 17.08.2010
Сообщения: 50
Откуда: Созвездие Альдебаран
|
Спасибо,Олег,это нужная вещь,но это вроде немного не то что я спрашивал.Я имел ввиду ,что торговля ведется на 5 мин графике и робот совершает сделку по закрытию свечи(не сессии),а в реальности на открытии следующей. Но я хотел попробовать сделать,так чтобы сделка происходила за несколько секунд до закрытия свечи(т.е. практически как в тестере,а то бывают утренние гэпы,клиринги,новостные гэпы...). Сигнал о входе не исчезающий и на открытии свечи уже 100% известно,что в конце свечи робот должен послать заявку,как быть в этой ситуации,можно ли как то сигнал полученный на открытии текущий свечи заставить исполниться за несколько секунд до закрытия этой же свечи?! |
_________________ Всем удачи! |
|
Посмотреть профиль Отправить личное сообщение |
|
bonzamen
Зарегистрирован: 17.08.2010
Сообщения: 50
Откуда: Созвездие Альдебаран
|
Может так :
Buy1 = Buy1 AND Now(4) > Hour()*10000 + Minute() * 100 + 55 ;
Сработает такое или чего не так?! |
_________________ Всем удачи! |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Нет. Так не сработает.
Тогда типа так.
Код: |
CS = frac(Now(4)/100)*100; // текущие секунды
CM = frac(int( Now(4)/100)/100 )*100; // текущие минуты
Buy1 = Buy1 AND CM == 4 OR CM = 9 AND CS > 55; |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
bonzamen
Зарегистрирован: 17.08.2010
Сообщения: 50
Откуда: Созвездие Альдебаран
|
000 писал(а): |
Нет. Так не сработает.
Тогда типа так.
Код: |
CS = frac(Now(4)/100)*100; // текущие секунды
CM = frac(int( Now(4)/100)/100 )*100; // текущие минуты
Buy1 = Buy1 AND CM == 4 OR CM = 9 AND CS > 55; |
|
Суть понял,наверное тут не большая описка и должно быть:
CS = frac(Now(4)/100)*100; // текущие секунды
CM = frac(int( Now(4)/100)/10 )*10; // текущие минуты
Buy1 = Buy1 AND CM == 4 OR CM == 9 AND CS > 55; |
_________________ Всем удачи! |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Блин, точно. Нам же надо только второе число от минут.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
bonzamen
Зарегистрирован: 17.08.2010
Сообщения: 50
Откуда: Созвездие Альдебаран
|
Странно,но сделка не проходит почему то.Идет сканирование,но в нужный момент не происходит сделки,может много логических операторов?!Насколько знаю Ами иногда с этим подглючивает. |
_________________ Всем удачи! |
|
Посмотреть профиль Отправить личное сообщение |
|
bonzamen
Зарегистрирован: 17.08.2010
Сообщения: 50
Откуда: Созвездие Альдебаран
|
Если убрать минуты и оставить секунды в таком виде:
Buy1 = Buy1 AND CS > 55;
то все работает,а с минутами даже в упрощенном варианте:
Buy1 = Buy1 AND CM == 4 AND CS > 50;
ничего не происходит((( |
_________________ Всем удачи! |
|
Посмотреть профиль Отправить личное сообщение |
|
AlexLan73
Зарегистрирован: 25.06.2012
Сообщения: 87
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А вывести на график CM и посмотреть (раз оно не работает)?
Ами когда вычисляет все эти деления дает погрешность. И в результате когда CM должно быть 4 у ами получается 3.998... и при сравнении непрокатывает.
Надо сделать вместо CM==4
AlmostEqual( CM, 4, 0.1 ) и аналогично для 9.
А оставить одни сеунды нельзя. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
bonzamen
Зарегистрирован: 17.08.2010
Сообщения: 50
Откуда: Созвездие Альдебаран
|
Сделал вот так :
CS = frac(Now(4)/100)*100; // текущие секунды
CM =floor( frac( Now(4)/1000)*10); // текущие минуты от 0-9
t=50;// на какой секунде закрытия свечи формировать заявку
Buy1=Buy1 AND (CM == 4 OR CM==9) AND CS>t ;
Sell1=Sell1 AND (CM == 4 OR CM==9) AND CS>t ;
Short1=Short1 AND (CM == 4 OR CM==9) AND CS>t;
Cover1=Cover1 AND (CM == 4 OR CM==9) AND CS>t;
вроде все работает,только если не поставить скобки (CM == 4 OR CM==9), то 4-я минута работает нормально,а на 9-й происходят сразу после покупки продажа,после продажи покупка,пока условие CS>t не изменится. Сегодня погоняю на реале посмотрим,что получится. |
_________________ Всем удачи! |
|
Посмотреть профиль Отправить личное сообщение |
|
bonzamen
Зарегистрирован: 17.08.2010
Сообщения: 50
Откуда: Созвездие Альдебаран
|
Всё работает отлично! Олег,спасибо огромное тебе!Куда можно денежку послать на пиво?! |
_________________ Всем удачи! |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Можно на яндекс, можно на киви... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|