Тема: Привод для работы от уровней

Здравствуйте!
Нужен простой алгоритм для работы в квике.

Задача такая:

Я в настройках выставляю уровни, которым будут присвоены имена Buy1 (уровень для покупки 1), Buy2 (уровень для покупки 2) и т.д. это для цен, находящихся ниже текущих цен и Sell1, Sell2 и т.д. для цен выше текущего уровня цен. Все отложенные ордера выставляются только лимитными ордерами в стакан. Количество уровней должно быть большим. Например, 30-40 вариантов. Если уровень не заполнен, то он не активен и по нему заявки не выставляются.

Я в настройках задаю диапазоны в пунктах TPBuy1(тейк-профит для уровня покупки 1), TPBuy2, TPBuy3 и т.п. для каждого уровня покупки или продажи (имя диапазона несущественно, но главное чтобы было понятно что оно соответствует определенному уровню покупки или продажи). Например, TPBuy1=280 пп, TPBuy2=150пп, TPBuy3=400пп и т.п.

В настройках задаю количество лотов для работы.

Логика работы:
Запускаясь, робот ставит лимитные ордера по указанным уровням. После того как цена дошла до определенного уровня покупки или продажи, то выставляется встречная лимитная заявка (тейк-профит), который будет соответствовать, например, Buy1+TPBuy1 Buy2+TPBuy2 и т.п., соответственно, для продажи тоже самое только с тейк-профитом соответствующем уровню продаж. Пока Тейк-профит не исполнен, то снова лимитная заявка на этот уровень покупки\продажи не ставится.
Тейк-профит выставляется только на то количество контрактов, которое исполнилось.
Если исполнилось, например, 1 лот из 2х и выставился тейк на 1 лот, то заявка на оставшийся лот не снимается. Если при этом цена не дошла до тейка, а исполнила оставшийся лот, то тейк переделывается на 2 лота, а новая заявка на вход по этому уровню не ставится до исполнения тейк-профита.
Аналогична логика работы с уровнями, которые дальше. Тейк-профит по уже исполненным ордерам остается висеть в системе до исполнения.
Если на клиринге ордера снимаются, то они выставляются роботом снова, учитывая то что некоторые ордера на вход, а некоторые на тейк-профит по исполненным ранее уровням.
Заявки выставляются до бесконечности, либо до отключения алгоритма.
Все операции записываются в текстовый лог.

Вот как-то так. Прошу помощи с написанием по причине того что очень мало опыта в программировании. Заранее спасибо за помощь.

2

Re: Привод для работы от уровней

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

Соц.сеть трейдеров https://tradernet.ru/admires/NiKO

3

Re: Привод для работы от уровней

Чет заняться нечем, боты трудятся, я кайфую.

Нужно понимать, как работают условные заявки типа ТП у брокера. В 90% случаев заявка будет исполнена хуже, чем забрать тейк лимиткой. В 50% случаев лимитная заявка выставленная брокером в рынок останется висеть в стакане, потому что там нет встречных спроса/предложения. Допустим какой то олень купил по рынку - сработал стоп, а его никто не поддержал, т.е. спрос остался на месте, фактически цена последней сделки активирует ТП, а следующая сделка продажа и брокер выкинет лимитник в рынок, если в ТП стоит условие "по рынку" (на срочном рынке не работает опция) то и продаст брокер ниже, чем была купля. Они любят "оленей", которые пользуются условными заявками, т.к. "олень" явно указывает брокеру, по какой цене он готов расстаться с деньгами. Со стопами еще хлеще ситуация.

Так вот, если нужно обработать ситуацию с "проскальзыванием" условной заявки, когда лимитник не исполнился, а после его выставления в рынок брокер снимает с себя все обязанности по слежению за ТП (т.к. лимитка - это не ТП, про слежение за ней у него нет договоренности с клиентом), то это не тривиальная задача, которую можно решить несколькими способами, но это уже другая история и алгоритм становится совсем не простым на пару тысяч строк. А чем больше строк, тем больше будет ошибок, которые на lua тяжело отслеживаются. А время, потраченное на тесты - деньги, потраченные Заказчиком.

Рассчитывать тейк программно и закрывать его лимиткой - сплошное удовольствие. Т.к. тут можно сделать как душе угодно, а не как себе придумал подлый брокер.
У меня, например, во всех ботах проскальзывания есть, но они все в плюс - хотел забрать 50 пунктов, а забрал 200, ну или минимум 50, что крайне редко.
В вашем алгоритме и желаемые 50 не заберешь, т.к. все проскальзывания будут против, как впрочем и во всех встреченных мной торговых алгоритмов, которые "ваяют" за деньги.

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