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



Зарегистрирован: 17.08.2010
Сообщения: 50
Откуда: Созвездие Альдебаран

СообщениеДобавлено: Сб Июл 23, 2016 10:37 pm Ответить с цитатой Вернуться к началу

У меня такой вопрос,сигнал появляется на открытии свечи(сигнал не исчезающий,а 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

СообщениеДобавлено: Пн Июл 25, 2016 9:40 am Ответить с цитатой Вернуться к началу

Можно так сделать.
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
Откуда: Созвездие Альдебаран

СообщениеДобавлено: Пн Июл 25, 2016 10:29 am Ответить с цитатой Вернуться к началу

Спасибо,Олег,это нужная вещь,но это вроде немного не то что я спрашивал.Я имел ввиду ,что торговля ведется на 5 мин графике и робот совершает сделку по закрытию свечи(не сессии),а в реальности на открытии следующей. Но я хотел попробовать сделать,так чтобы сделка происходила за несколько секунд до закрытия свечи(т.е. практически как в тестере,а то бывают утренние гэпы,клиринги,новостные гэпы...). Сигнал о входе не исчезающий и на открытии свечи уже 100% известно,что в конце свечи робот должен послать заявку,как быть в этой ситуации,можно ли как то сигнал полученный на открытии текущий свечи заставить исполниться за несколько секунд до закрытия этой же свечи?!

_________________
Всем удачи!
Посмотреть профиль Отправить личное сообщение
bonzamen



Зарегистрирован: 17.08.2010
Сообщения: 50
Откуда: Созвездие Альдебаран

СообщениеДобавлено: Пн Июл 25, 2016 10:37 am Ответить с цитатой Вернуться к началу

Может так :


Buy1 = Buy1 AND Now(4) > Hour()*10000 + Minute() * 100 + 55 ;


Сработает такое или чего не так?!

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


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

СообщениеДобавлено: Пн Июл 25, 2016 11:23 am Ответить с цитатой Вернуться к началу

Нет. Так не сработает.
Тогда типа так.
Код:

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
Откуда: Созвездие Альдебаран

СообщениеДобавлено: Пн Июл 25, 2016 4:30 pm Ответить с цитатой Вернуться к началу

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

СообщениеДобавлено: Пн Июл 25, 2016 4:47 pm Ответить с цитатой Вернуться к началу

Блин, точно. Нам же надо только второе число от минут....

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



Зарегистрирован: 17.08.2010
Сообщения: 50
Откуда: Созвездие Альдебаран

СообщениеДобавлено: Пн Июл 25, 2016 5:04 pm Ответить с цитатой Вернуться к началу

Странно,но сделка не проходит почему то.Идет сканирование,но в нужный момент не происходит сделки,может много логических операторов?!Насколько знаю Ами иногда с этим подглючивает.

_________________
Всем удачи!
Посмотреть профиль Отправить личное сообщение
bonzamen



Зарегистрирован: 17.08.2010
Сообщения: 50
Откуда: Созвездие Альдебаран

СообщениеДобавлено: Пн Июл 25, 2016 6:04 pm Ответить с цитатой Вернуться к началу

Если убрать минуты и оставить секунды в таком виде:

Buy1 = Buy1 AND CS > 55;

то все работает,а с минутами даже в упрощенном варианте:

Buy1 = Buy1 AND CM == 4 AND CS > 50;

ничего не происходит(((

_________________
Всем удачи!
Посмотреть профиль Отправить личное сообщение
AlexLan73



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

СообщениеДобавлено: Пн Июл 25, 2016 6:23 pm Ответить с цитатой Вернуться к началу

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


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

СообщениеДобавлено: Пн Июл 25, 2016 10:20 pm Ответить с цитатой Вернуться к началу

А вывести на график CM и посмотреть (раз оно не работает)?
Ами когда вычисляет все эти деления дает погрешность. И в результате когда CM должно быть 4 у ами получается 3.998... и при сравнении непрокатывает.

Надо сделать вместо CM==4
AlmostEqual( CM, 4, 0.1 ) и аналогично для 9.

А оставить одни сеунды нельзя.

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



Зарегистрирован: 17.08.2010
Сообщения: 50
Откуда: Созвездие Альдебаран

СообщениеДобавлено: Вт Июл 26, 2016 8:12 am Ответить с цитатой Вернуться к началу

Сделал вот так :

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
Откуда: Созвездие Альдебаран

СообщениеДобавлено: Ср Июл 27, 2016 11:22 pm Ответить с цитатой Вернуться к началу

Всё работает отлично! Олег,спасибо огромное тебе!Куда можно денежку послать на пиво?!

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


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

СообщениеДобавлено: Ср Июл 27, 2016 11:46 pm Ответить с цитатой Вернуться к началу

Можно на яндекс, можно на киви...

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen