Стратегии и роботы > Покупка/продажа лимитными приказами по определённой цене.

Обсуждение, описание стратегий и роботов, идеи для стратегий
Anik
Сообщения: 1
Зарегистрирован: 31 янв 2022, 18:07
Благодарил (а): 1 раз

Покупка/продажа лимитными приказами по определённой цене.

Непрочитанное сообщение Anik » 31 янв 2022, 18:20

Здравствуйте.
Подскажите, а есть ли готовый робот на покупку/продажу лимитными приказами по определённой цене?
Пример: акции SBER - покупка по 253 - продажа по 258 - если продалось, то автоматически выставляется тот же самый приказ на тоже самое кол-во акций.
Вроде бы простой алгоритм, но в библиотеке не нашёл его реализацию. Если такого готового робота нет, то есть ли возможность написать?
Алгоритмы в стиле invest_grid и step by step смотрел, изучил, по-тестил - не совсем то что хочется.

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

Re: Покупка/продажа лимитными приказами по определённой цене.

Непрочитанное сообщение evge » 31 янв 2022, 21:35

Приветствую!

Упрощенно, вход сразу в позицию т.к. цена была ниже с точки отсчета (500 баров тестирования).
Но можно и это учесть.

SimpleTrade-01.png
SimpleTrade-01.png (26.59 КБ) 17188 просмотров

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

function Initialize()
{
   StrategyName = "SimpleTrade";
   AddParameter("BuyPrice", 253, "", 1);
   AddParameter("SellPrice", 258, "", 1);
   AddParameter("Lot", 1000, "", 1);
   AddInput("Input1", Inputs.Candle, 5, true, "SBER=МБ ЦК");
   LongLimit = 1000;
   ShortLimit = -1000;
   AddGlobalVariable("NeedClose", Types.Boolean, false);
}

function OnUpdate()
{
   //evge 31.01.2022 https://alfadirect4.ru
   
   var CP = CurrentPosition();
   
   if (CP != 0 && NeedClose) { CloseLongLimit(SellPrice, Lot); NeedClose = false; }
   if (CP == 0 && !NeedClose) { EnterLongLimit(BuyPrice, Lot); NeedClose = true; }
   
}
никогда такого не было и вот опять

A.M.
Сообщения: 15
Зарегистрирован: 03 апр 2021, 10:28

Re: Покупка/продажа лимитными приказами по определённой цене.

Непрочитанное сообщение A.M. » 06 янв 2023, 17:00

Добрый день!

Вопрос.
1.сразу две, или более (4-10- 100 заявок) лимитных можно выставить?
2.при следующей итерации удалить все неисполненные?
3.после пересчета позиции перевыставить несколько лимитных (неограниченное количество)?

Спасибо.

_E_V_N_
Сообщения: 24
Зарегистрирован: 14 ноя 2022, 20:22
Поблагодарили: 3 раза

Re: Покупка/продажа лимитными приказами по определённой цене.

Непрочитанное сообщение _E_V_N_ » 07 янв 2023, 18:34

К сожалению одним роботом нельзя. Можно запустить несколько роботов (по числу необходимых заявок).

A.M.
Сообщения: 15
Зарегистрирован: 03 апр 2021, 10:28

Re: Покупка/продажа лимитными приказами по определённой цене.

Непрочитанное сообщение A.M. » 08 янв 2023, 09:51

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

_E_V_N_
Сообщения: 24
Зарегистрирован: 14 ноя 2022, 20:22
Поблагодарили: 3 раза

Re: Покупка/продажа лимитными приказами по определённой цене.

Непрочитанное сообщение _E_V_N_ » 08 янв 2023, 13:26

" Идея была выставить сразу лимитную пару сверху и снизу. На инструментах с низкой ликвидностью мой "боевой" робот пропускает шпильки или исполняет в рынок по невыгодной цене.
С двумя роботами возникнет проблема значения текущей позиции, у каждого будет своя, как я понимаю?"
Если выставить лимитку, то сделка произойдет при достижении указанной цены, а не по лучшей.
В рынок исполнится заявка если робот выставил маркет, а не лимит.
Робот выставляет заявку на первом тике следующей свечи, что бы не пропускать "шпильки" нужно предусмотреть условие, что бы выставить заявку заранее.
Выставить лимитную пару сверху и снизу система точно не позволит, единственный вариант, это выставить лимитку и стоп. Лимитку и стоп одновременно можно.
Проблемы текущей позиции нет, она надуманная. Если в роботах вы лимит покупки будете выставлять одинаковый, то общий баланс у вас по счету будет нормальный, даже если один робот будет вам показывать Шорт реально шорта по счету не будет за счет покупок другого робота. Там единственная проблема в выставлении лимитных заявок, от какой базовой цены их выставлять.

A.M.
Сообщения: 15
Зарегистрирован: 03 апр 2021, 10:28

Re: Покупка/продажа лимитными приказами по определённой цене.

Непрочитанное сообщение A.M. » 08 янв 2023, 18:57

"Выставить лимитную пару сверху и снизу система точно не позволит, единственный вариант, это выставить лимитку и стоп. Лимитку и стоп одновременно можно."

Пример. Цена сейчас ~100. Учитывая текущую позицию, согласен продать по 101, 102 и т.д., или купить по 99, 98, 97... В роботе реализуем приказ:

CloseLongLimit(101, Lot);

EnterLongLimit(99, Lot);

И данная простая схема не работает? Даже не спрашиваю, проверял. Не работает. ПОЧЕМУ?

Как это будет выглядеть через "выставить лимитку и стоп"?

Про два робота думаю. На тесте не проверить.

_E_V_N_
Сообщения: 24
Зарегистрирован: 14 ноя 2022, 20:22
Поблагодарили: 3 раза

Re: Покупка/продажа лимитными приказами по определённой цене.

Непрочитанное сообщение _E_V_N_ » 09 янв 2023, 13:22

"Пример. Цена сейчас ~100. Учитывая текущую позицию, согласен продать по 101, 102 и т.д., или купить по 99, 98, 97... В роботе реализуем приказ:

CloseLongLimit(101, Lot);

EnterLongLimit(99, Lot);

И данная простая схема не работает? Даже не спрашиваю, проверял. Не работает. ПОЧЕМУ?"
Конечно данная схема работать не будет, потому как если у вас нет позиции в роботе, то CloseLongLimit(101, Lot); не сработает, потому как по команде нечего закрывать. Или у вас все же есть позиция купленная за 100?
В вашем варианте правильнее будет
CloseShortLimit(101, Lot);
EnterLongLimit(99, Lot);

"Про два робота думаю. На тесте не проверить."
А почему вам вообще то StepByStep не подходит? по тому принципу что вы описываете он и работает, что конкретно в нем вас не устраивает? Если нужны заранее выставленные лимитки его нужно чуть модернизировать и всего дел.

A.M.
Сообщения: 15
Зарегистрирован: 03 апр 2021, 10:28

Re: Покупка/продажа лимитными приказами по определённой цене.

Непрочитанное сообщение A.M. » 09 янв 2023, 22:15

StepByStep - наверное подходит. Кажется ещё был Invest_Grid. Что-то у меня с него начиналось. ))
Сегодня запустил робота, выставляющего лимитки то с одной, то с другой стороны. На каждом OnUpdate() смена направления. Он может и не очень грамотный, но работает.

_E_V_N_
Сообщения: 24
Зарегистрирован: 14 ноя 2022, 20:22
Поблагодарили: 3 раза

Re: Покупка/продажа лимитными приказами по определённой цене.

Непрочитанное сообщение _E_V_N_ » 09 янв 2023, 23:05

"StepByStep - наверное подходит. Кажется ещё был Invest_Grid. Что-то у меня с него начиналось. ))
Сегодня запустил робота, выставляющего лимитки то с одной, то с другой стороны. На каждом OnUpdate() смена направления. Он может и не очень грамотный, но работает."
Invest_Grid отличается от StepByStep тем, что при большой просадке он добирает позиции на заданный шаг, а вот StepByStep может отставить при просадке "дырки" в уровнях, потом когда продаст акуцию перед "дыркой" сразу купит и возможно дороже чем только, что продал.
На каждом OnUpdate() перевыставлять заявку нет смысла, лучше введите один уровень №1 между ценой по которой уже купили акцию и ценой предпологаемой продажи, и еще уровень №2 между ценой по которой уже купили акцию и ценой предпологаемой покупки. И выставляйте заявки если текущая цена пересечет уровень №1 лимитку на продажу и лимитку на покупку когда цена пересечет уровень №2. лимитки выставляйте по ценам вашей покупки и продаже.


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

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

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