Стратегии и роботы > принудительное открытие позы для робота

Обсуждение, описание стратегий и роботов, идеи для стратегий
aaiun
Сообщения: 5
Зарегистрирован: 19 сен 2018, 15:20

принудительное открытие позы для робота

Непрочитанное сообщение aaiun » 05 май 2021, 14:43

Добрый день.
Как принудительно, руками, открыть позицию для робота, без сигнала, чтобы он понимал ,что это теперь его ответственность? . Спасибо.

Аватара пользователя
evge
Администратор
Сообщения: 1745
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 75 раз
Поблагодарили: 331 раз
Контактная информация:

Re: принудительное открытие позы для робота

Непрочитанное сообщение evge » 05 май 2021, 15:09

Добрый день!

Зависит от того что робот успел запомнить в свои глоб. переменные.

В простой ситуации достаточно будет следующее:

В диспетчере роботов

1. Остановить робота.
2. В контекстном меню выбираем "Редактировать" \ "Позицию"
3. Открыть реальную позицию для робота руками в нужную сторону по инструменту
4. Запустить робота.

edit-position-01.png
edit-position-01.png (11.28 КБ) 3459 просмотров

edit-position-02.png
edit-position-02.png (13.16 КБ) 3459 просмотров
никогда такого не было и вот опять

aaiun
Сообщения: 5
Зарегистрирован: 19 сен 2018, 15:20

Re: принудительное открытие позы для робота

Непрочитанное сообщение aaiun » 05 май 2021, 17:28

Попробовал. Сам робот меняет позицию, показывает на графике, отсчитывает ПУ. А по счету поза не открывается. Хотелось бы видеть в этом окне либо приказ по маркету, либо проскальзывание в пунктах.

BugsDigger
Сообщения: 455
Зарегистрирован: 11 ноя 2018, 17:11
Благодарил (а): 21 раз
Поблагодарили: 74 раза

Re: принудительное открытие позы для робота

Непрочитанное сообщение BugsDigger » 05 май 2021, 18:00

Т.е. вы хотите как бы сгенерировать команду роботу в процессе его работы "руками" поверх его внутреннего алгоритма?

Напрямую такого не предусмотрено, конечно.

Ну а если как-то измыслить ...
Можно, например, в роботе на каждом шаге пробовать читать некий текстовый файл. Как только этот файл появится и оттуда прочтется "+" или "-", робот может открыть лонг/шорт и стереть файл. Коряво, конечно, но желаемое выполнит.

aaiun
Сообщения: 5
Зарегистрирован: 19 сен 2018, 15:20

Re: принудительное открытие позы для робота

Непрочитанное сообщение aaiun » 05 май 2021, 18:15

немного по другому. например поза вниз, а цена идет потом вверх. Вижу, что робот не отрабатывает, как я хочу, он должен уже перевернуться. останавливаю его. закрываю позицию. По счету ноль поз. и открываю от имени робота новую позицию в нужную мне сторону.
п.с. немного подумал, т.е. при любом открытии, руками тоже, робот проверяет условие входа? и если оно не выполняется, то поза не откроется? Т.е. принудительно, с нарушением хотя бы одного условия открытия, ничего не выйдет.

BugsDigger
Сообщения: 455
Зарегистрирован: 11 ноя 2018, 17:11
Благодарил (а): 21 раз
Поблагодарили: 74 раза

Re: принудительное открытие позы для робота

Непрочитанное сообщение BugsDigger » 05 май 2021, 18:58

Да, конечно, алгоритм же отработает.

Можно заделать параметр, скажем, "OpenPosAtStart", - число со знаком: >0, 0< или 0, и задавать его перед стартом.
На самом первом шаге робот должен посмотреть, что за число в параметре, и открыть соответствующую позицию при OpenPosAtStart!=0, пропустить алгоритм открытия и начать работать с позицией уже на следующем шаге.

Jude_Masson
Сообщения: 25
Зарегистрирован: 03 окт 2020, 22:38
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Re: принудительное открытие позы для робота

Непрочитанное сообщение Jude_Masson » 06 май 2021, 12:52

Вставлю свои 5 копеек

Код: Выделить всё

   AddParameter("OpnP", 0, "Открыть позицию", 1);
   AddParameter("ClsP", 0, "Закрыть позицию", 1);
if (OpnP > 0)   {   OpnP = 0;   EnterLong();   StopLoss  (Stoploss, SignalPriceType.DeltaInPercentFromAveragePrice);   }
if (OpnP < 0)   {   OpnP = 0;   EnterShort();   StopLoss  (Stoploss, SignalPriceType.DeltaInPercentFromAveragePrice);   }
if (ClsP != 0)   {   ClsP = 0;   ClosePosition();    }

   AddParameter("HandStop", 75579, "Выставить стоп", 1);
      if (HandStop != 0) {StopLoss(HandStop, SignalPriceType.Price); HandStop =0;}
   

Вторая часть приказать роботу выставить стоп.
п.с. Можно конечно сделать не вход по полной, а на указанное количество контрактов.


Вернуться в «Стратегии и роботы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей