Техническое задание
extern double KefLot = 1.5; //Коэффициент увеличения лота.
extern int Step = 25; //Начальное расстояние между ордерами.
extern int Koef = 3; //Коэффициент рыночных ордеров.
extern int TP = 5; //Тейк профит серии ордеров при усреднении.
extern int Tral = 10; //Трейлинг ордера по усреднению.
extern int Trend = 10; //Расстояние между ордерами по тренду.
extern int MaxLot = 10; //Максимальный объём открываемого лота.
1. Советник предназначен для совершения операций Long&Short на любой версии терминала MetaTrader4/5, на Standard валютных счетах с фиксированным спредом, должен обрабатывать все ордера по данному инструменту (подхватывать и учитывать сторонние ордера, т. е. Меджик не приемлем).
При включении (на первом тике) запрашивается и фиксируется INFO:
MODE_MINLOT, MODE_MAXLOT, MODE_LOTSTEP, MODE_STOPLEVEL, MODE_SPREAD, MODE_DIGITS.
На каждом последующем тике проверяется информация INFO на соответствие:
— данные INFO отличаются от зафиксированных — Alert (Alert не повторять);
— данные INFO MODE_SPREAD, MODE_STOPLEVEL увеличены вдвое — break;
— расчётные значения цен должны соответствовать INFO MODE_DIGITS;
— значение MaxLot больше MODE_MAXLOT — то равен MODE_MAXLOT;
— шаг изменения объёма лота меньше MODE_LOTSTEP — то равен MODE_LOTSTEP;
— расчётные значения расстояний от Bid/Ask до устанавливаемых BuyStop, SellStop, TakeProfit, StopLoss, меньше MODE_STOPLEVEL — то значения равны MODE_STOPLEVEL;
2. При дальнейшей работе советника:
2.1 — выставляются по одному отложенному ордеру на каждое направление (BuyStop, SellStop) с минимально допустимым объёмом лота (MODE_MINLOT) на расстоянии Trend от рыночной цены (Bid/Ask);
Примечание: всегда должен присутствовать (OrderSend) отложенный ордер по каждому направлению (BuyStop, SellStop) с минимально допустимым объёмом лота (MODE_MINLOT).
2.2 — При отсутствии открытых рыночных ордеров (Buy/Sell) в сетке одного направления, соответствующий отложенный ордер движется (OrderModify) за рыночной ценой, тралом (по пунктах) на прежнем расстоянии Trend, до момента открытия соответствующего рыночного ордера.
2.3 — При наличии открытых рыночных ордеров (Buy/Sell) в сетке одного направления количеством до некой величины Koef:
2.3.1 — выставляются уровни TakeProfit (каждому открывшемуся рыночному ордеру) на расстоянии = Koef*Trend-Spread;
Примечание: INFO: MODE_SPREAD проверяется на каждом тике, при изменении Spread уровни TakeProfit модифицируются (OrderModify) т. е. открытых рыночных ордеров, по направлению тренда, не должно быть более величины Koef.
2.3.2 — в сетке убыточных ордеров дополнительно выставляется второй отложенный ордер того же направления с увеличенным лотом (KefLot*OrderLots() ), на расстоянии Step от ближайшего в сетке (если несколько) открытого ордера (Buy/Sell), и Tral от рыночной цены (Bid/Ask).
2.3.3 — дополнительно выставленный второй отложенный ордер движется (OrderModify) за рыночной ценой, тралом (по пунктах) на прежнем расстоянии Tral, до момента открытия соответствующего рыночного ордера.
2.4 — Количество открытых рыночных ордеров одного из направлений (против тренда, убыточных) превысило некую величину Koef:
2.4.1 — включается функция усреднения, рассчитывается уровень цены безубытка BU сетки открытых убыточных ордеров, TakeProfit последнего открытого ордера (только того, который выше Koef) устанавливается на уровень цены рассчитанного усреднения BU+ТР, при этом остальные уровни TakeProfit ордеров остаются без изменений.
2.4.2 — соответствует 2.3.2 — 2.4.3 — соответствует 2.3.3 — 2.5 — Рыночная цена развернулась и пошла в обратную сторону:
2.5.1 — соответствует 2.3.2 — 2.5.2 — соответствует 2.3.3 — 2.5.3 — рыночная цена достигла уровня BU+ТР, закрывается по TakeProfit соответствующий ордер из сетки убыточных и количество оставшихся ордеров в соответствующей направлению сетке более Koef — окромя имеющихся уровней TakeProfit, дополнительно выставляется уровень StopLoss (для всех оставшихся ордеров данного направления) на общем расстоянии Tral от рыночной цены и StopLoss сопровождается тралом с шагом один пункт.
2.5.4 — рыночная цена достигла уровня TakeProfit — соответствующий ордер закрывается, если StopLoss — все соответствующие рыночные ордера закрываются см. пункт 2.2 —
Примечание: рыночная цена достигла уровней TakeProfit, StopLoss — желательно проконтролировать (продублировать) закрытие рыночных ордеров,
3. — Иными словами:
— все отложенные ордера по тренду выставляются через равные промежутки Trend от рыночной цены и предыдущего открытого ордера (только первый с трендом);
— открытые ордера по тренду с установкой TakeProfit на уровне Koef*Trend-Spread, INFO: MODE_SPREAD проверяется на каждом тике, при изменении Spread уровни TakeProfit модифицируются);
— при превышении количества открытых ордеров, в сетке убыточных, более Koef, TakeProfit на уровне BU+ТР;
— при закрытии рыночного ордера по TakeProfit на уровне BU+ТР, и количестве оставшихся ордеров более Koef — (StopLoss на расстоянии Tral от рыночной цены), добавляется сопровождение StopLoss Трейлингстопом,.
— против тренда выставляются дополнительно отложенные стоповые ордера через промежуток Step от ближайшего открытого ордера и Tral от рыночной цены, с тралом за рыночной ценой до открытия, TakeProfit устанавливается, для открытых ордеров с порядковым номером до Koef на уровне Koef*Trend-Spread, с порядковым номером выше Koef на уровне вновь рассчитанного безубытка BU+ТР (объём лота увеличен от предыдущего KefLot*OrderLots() ). При отскоке (консолидации) рыночной цены до уровня TakeProfit (по цене BU+ТР), закрывается соответствующий ордер и, для каждого из оставшихся, (если в сетке убыточных ордеров количество более Koef), выставляется дополнительно StopLoss с сопровождением Трейлингстопом, (StopLoss на расстоянии Tral от рыночной цены).
— если закрываются все открытые ордера в сетке одного направления по StopLoss, то оставшийся отложенный стоповый ордер движется тралом на расстоянии Trend за рыночной ценой, как в начале техзадания. — если закрываются открытые ордера в сетке одного направления по TakeProfit, то StopLoss оставшихся ордеров, продолжает движение за рыночной ценой на расстоянии Tral.
Комментарии (5)
35 AM2 Сообщений: 16250 - Андрей
//… 1. всегда должен быть выставлен хотя бы один ордер BuyStop1.
//… 2. Трейлинг oрдера BuyStop1 вслед за ценой Ask, если между ними нет ордера Buy.
//… 3. Каждый ордер Buy, с порядковым номером до Koef, должен иметь BuyKoefProfit.
//… 4. Цена Ask на расстоянии BuyStep от ближайшего ордера Buy — выставить второй ордер BuyStop2 с увеличенным объёмом.
//… 5. Трейлинг ордера BuyStop2 вслед за ценой Ask подобно ордеру BuyStop1.
//… 6. Каждый ордер Buy, с порядковым номером более Koef, должен иметь BuyProfit.
//… 7. Закрылся ордер Buy с порядковым номером более Koef+1 — для оставшихся ордеров Buy установить трейлинг по StopLoss.
//… для всех оставшихся ордеров Buy.
//… 8. Закрытие ордеров по OrderStopLoss() и OrderTakeProfit() дублировать принудительным закрытием через OrderClose.
//… 9. Далее всё тоже самое, только применительно для ордеров Sell.
Редактирован: 31 мая 2018, 14:48
7 bablusut Автор Сообщений: 4 - bablusut
если нужно платно, укажите здесь сколько готовы платить за заказ и если программист согласен с ценником, вам напишут в личку.
35 AM2 Сообщений: 16250 - Андрей
7 bablusut Автор Сообщений: 4 - bablusut
src=«http://zakaz.opentraders.ru/uploads/images/4/4/3/7/33217/f66b0d36f5.jpg»/>
Редактирован: 29 мая 2018, 15:40
7 bablusut Автор Сообщений: 4 - bablusut
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий