Тема: Привод для работы от уровней
Здравствуйте!
Нужен простой алгоритм для работы в квике.
Задача такая:
Я в настройках выставляю уровни, которым будут присвоены имена 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 лота, а новая заявка на вход по этому уровню не ставится до исполнения тейк-профита.
Аналогична логика работы с уровнями, которые дальше. Тейк-профит по уже исполненным ордерам остается висеть в системе до исполнения.
Если на клиринге ордера снимаются, то они выставляются роботом снова, учитывая то что некоторые ордера на вход, а некоторые на тейк-профит по исполненным ранее уровням.
Заявки выставляются до бесконечности, либо до отключения алгоритма.
Все операции записываются в текстовый лог.
Вот как-то так. Прошу помощи с написанием по причине того что очень мало опыта в программировании. Заранее спасибо за помощь.