Стратегии и роботы > Покупка/продажа лимитными приказами по определённой цене.
Покупка/продажа лимитными приказами по определённой цене.
Здравствуйте.
Подскажите, а есть ли готовый робот на покупку/продажу лимитными приказами по определённой цене?
Пример: акции SBER - покупка по 253 - продажа по 258 - если продалось, то автоматически выставляется тот же самый приказ на тоже самое кол-во акций.
Вроде бы простой алгоритм, но в библиотеке не нашёл его реализацию. Если такого готового робота нет, то есть ли возможность написать?
Алгоритмы в стиле invest_grid и step by step смотрел, изучил, по-тестил - не совсем то что хочется.
Подскажите, а есть ли готовый робот на покупку/продажу лимитными приказами по определённой цене?
Пример: акции SBER - покупка по 253 - продажа по 258 - если продалось, то автоматически выставляется тот же самый приказ на тоже самое кол-во акций.
Вроде бы простой алгоритм, но в библиотеке не нашёл его реализацию. Если такого готового робота нет, то есть ли возможность написать?
Алгоритмы в стиле invest_grid и step by step смотрел, изучил, по-тестил - не совсем то что хочется.
- evge
- Администратор
- Сообщения: 1807
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 360 раз
- Контактная информация:
Re: Покупка/продажа лимитными приказами по определённой цене.
Приветствую!
Упрощенно, вход сразу в позицию т.к. цена была ниже с точки отсчета (500 баров тестирования).
Но можно и это учесть.
Упрощенно, вход сразу в позицию т.к. цена была ниже с точки отсчета (500 баров тестирования).
Но можно и это учесть.
Код: Выделить всё
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; }
}
никогда такого не было и вот опять
Re: Покупка/продажа лимитными приказами по определённой цене.
Добрый день!
Вопрос.
1.сразу две, или более (4-10- 100 заявок) лимитных можно выставить?
2.при следующей итерации удалить все неисполненные?
3.после пересчета позиции перевыставить несколько лимитных (неограниченное количество)?
Спасибо.
Вопрос.
1.сразу две, или более (4-10- 100 заявок) лимитных можно выставить?
2.при следующей итерации удалить все неисполненные?
3.после пересчета позиции перевыставить несколько лимитных (неограниченное количество)?
Спасибо.
Re: Покупка/продажа лимитными приказами по определённой цене.
К сожалению одним роботом нельзя. Можно запустить несколько роботов (по числу необходимых заявок).
Re: Покупка/продажа лимитными приказами по определённой цене.
Понятно. Идея была выставить сразу лимитную пару сверху и снизу. На инструментах с низкой ликвидностью мой "боевой" робот пропускает шпильки или исполняет в рынок по невыгодной цене.
С двумя роботами возникнет проблема значения текущей позиции, у каждого будет своя, как я понимаю?
С двумя роботами возникнет проблема значения текущей позиции, у каждого будет своя, как я понимаю?
Re: Покупка/продажа лимитными приказами по определённой цене.
" Идея была выставить сразу лимитную пару сверху и снизу. На инструментах с низкой ликвидностью мой "боевой" робот пропускает шпильки или исполняет в рынок по невыгодной цене.
С двумя роботами возникнет проблема значения текущей позиции, у каждого будет своя, как я понимаю?"
Если выставить лимитку, то сделка произойдет при достижении указанной цены, а не по лучшей.
В рынок исполнится заявка если робот выставил маркет, а не лимит.
Робот выставляет заявку на первом тике следующей свечи, что бы не пропускать "шпильки" нужно предусмотреть условие, что бы выставить заявку заранее.
Выставить лимитную пару сверху и снизу система точно не позволит, единственный вариант, это выставить лимитку и стоп. Лимитку и стоп одновременно можно.
Проблемы текущей позиции нет, она надуманная. Если в роботах вы лимит покупки будете выставлять одинаковый, то общий баланс у вас по счету будет нормальный, даже если один робот будет вам показывать Шорт реально шорта по счету не будет за счет покупок другого робота. Там единственная проблема в выставлении лимитных заявок, от какой базовой цены их выставлять.
С двумя роботами возникнет проблема значения текущей позиции, у каждого будет своя, как я понимаю?"
Если выставить лимитку, то сделка произойдет при достижении указанной цены, а не по лучшей.
В рынок исполнится заявка если робот выставил маркет, а не лимит.
Робот выставляет заявку на первом тике следующей свечи, что бы не пропускать "шпильки" нужно предусмотреть условие, что бы выставить заявку заранее.
Выставить лимитную пару сверху и снизу система точно не позволит, единственный вариант, это выставить лимитку и стоп. Лимитку и стоп одновременно можно.
Проблемы текущей позиции нет, она надуманная. Если в роботах вы лимит покупки будете выставлять одинаковый, то общий баланс у вас по счету будет нормальный, даже если один робот будет вам показывать Шорт реально шорта по счету не будет за счет покупок другого робота. Там единственная проблема в выставлении лимитных заявок, от какой базовой цены их выставлять.
Re: Покупка/продажа лимитными приказами по определённой цене.
"Выставить лимитную пару сверху и снизу система точно не позволит, единственный вариант, это выставить лимитку и стоп. Лимитку и стоп одновременно можно."
Пример. Цена сейчас ~100. Учитывая текущую позицию, согласен продать по 101, 102 и т.д., или купить по 99, 98, 97... В роботе реализуем приказ:
CloseLongLimit(101, Lot);
EnterLongLimit(99, Lot);
И данная простая схема не работает? Даже не спрашиваю, проверял. Не работает. ПОЧЕМУ?
Как это будет выглядеть через "выставить лимитку и стоп"?
Про два робота думаю. На тесте не проверить.
Пример. Цена сейчас ~100. Учитывая текущую позицию, согласен продать по 101, 102 и т.д., или купить по 99, 98, 97... В роботе реализуем приказ:
CloseLongLimit(101, Lot);
EnterLongLimit(99, Lot);
И данная простая схема не работает? Даже не спрашиваю, проверял. Не работает. ПОЧЕМУ?
Как это будет выглядеть через "выставить лимитку и стоп"?
Про два робота думаю. На тесте не проверить.
Re: Покупка/продажа лимитными приказами по определённой цене.
"Пример. Цена сейчас ~100. Учитывая текущую позицию, согласен продать по 101, 102 и т.д., или купить по 99, 98, 97... В роботе реализуем приказ:
CloseLongLimit(101, Lot);
EnterLongLimit(99, Lot);
И данная простая схема не работает? Даже не спрашиваю, проверял. Не работает. ПОЧЕМУ?"
Конечно данная схема работать не будет, потому как если у вас нет позиции в роботе, то CloseLongLimit(101, Lot); не сработает, потому как по команде нечего закрывать. Или у вас все же есть позиция купленная за 100?
В вашем варианте правильнее будет
CloseShortLimit(101, Lot);
EnterLongLimit(99, Lot);
"Про два робота думаю. На тесте не проверить."
А почему вам вообще то StepByStep не подходит? по тому принципу что вы описываете он и работает, что конкретно в нем вас не устраивает? Если нужны заранее выставленные лимитки его нужно чуть модернизировать и всего дел.
CloseLongLimit(101, Lot);
EnterLongLimit(99, Lot);
И данная простая схема не работает? Даже не спрашиваю, проверял. Не работает. ПОЧЕМУ?"
Конечно данная схема работать не будет, потому как если у вас нет позиции в роботе, то CloseLongLimit(101, Lot); не сработает, потому как по команде нечего закрывать. Или у вас все же есть позиция купленная за 100?
В вашем варианте правильнее будет
CloseShortLimit(101, Lot);
EnterLongLimit(99, Lot);
"Про два робота думаю. На тесте не проверить."
А почему вам вообще то StepByStep не подходит? по тому принципу что вы описываете он и работает, что конкретно в нем вас не устраивает? Если нужны заранее выставленные лимитки его нужно чуть модернизировать и всего дел.
Re: Покупка/продажа лимитными приказами по определённой цене.
StepByStep - наверное подходит. Кажется ещё был Invest_Grid. Что-то у меня с него начиналось. ))
Сегодня запустил робота, выставляющего лимитки то с одной, то с другой стороны. На каждом OnUpdate() смена направления. Он может и не очень грамотный, но работает.
Сегодня запустил робота, выставляющего лимитки то с одной, то с другой стороны. На каждом OnUpdate() смена направления. Он может и не очень грамотный, но работает.
Re: Покупка/продажа лимитными приказами по определённой цене.
"StepByStep - наверное подходит. Кажется ещё был Invest_Grid. Что-то у меня с него начиналось. ))
Сегодня запустил робота, выставляющего лимитки то с одной, то с другой стороны. На каждом OnUpdate() смена направления. Он может и не очень грамотный, но работает."
Invest_Grid отличается от StepByStep тем, что при большой просадке он добирает позиции на заданный шаг, а вот StepByStep может отставить при просадке "дырки" в уровнях, потом когда продаст акуцию перед "дыркой" сразу купит и возможно дороже чем только, что продал.
На каждом OnUpdate() перевыставлять заявку нет смысла, лучше введите один уровень №1 между ценой по которой уже купили акцию и ценой предпологаемой продажи, и еще уровень №2 между ценой по которой уже купили акцию и ценой предпологаемой покупки. И выставляйте заявки если текущая цена пересечет уровень №1 лимитку на продажу и лимитку на покупку когда цена пересечет уровень №2. лимитки выставляйте по ценам вашей покупки и продаже.
Сегодня запустил робота, выставляющего лимитки то с одной, то с другой стороны. На каждом OnUpdate() смена направления. Он может и не очень грамотный, но работает."
Invest_Grid отличается от StepByStep тем, что при большой просадке он добирает позиции на заданный шаг, а вот StepByStep может отставить при просадке "дырки" в уровнях, потом когда продаст акуцию перед "дыркой" сразу купит и возможно дороже чем только, что продал.
На каждом OnUpdate() перевыставлять заявку нет смысла, лучше введите один уровень №1 между ценой по которой уже купили акцию и ценой предпологаемой продажи, и еще уровень №2 между ценой по которой уже купили акцию и ценой предпологаемой покупки. И выставляйте заявки если текущая цена пересечет уровень №1 лимитку на продажу и лимитку на покупку когда цена пересечет уровень №2. лимитки выставляйте по ценам вашей покупки и продаже.
Вернуться в «Стратегии и роботы»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя