Стоп лосс и тейк профит в соотношении 1/4 (это один из вариантов) . При срабатывании 5-и лоссов на 6-ом увеличиваем лот для отработки убытка. На 8-ми кратном увеличении останавливаем увеличение.
Все что мог придумать. Работает не корректно.
externint StopLoss=300;
externint TakeProfit=1200;
extern double Lot=0.01; // Начальный лот
double Old_Free, // Прежние средства
New_Free, // Новые средства
Lts; // Объем для открытия сделки
Lot_Val =MarketInfo(Symbol(),MODE_TICKVALUE); // Размер минимального изменения цены инструмента в валюте депозита
pr=(Lot_Val*Lts)*TakeProfit; // Размер прибыли в валюте депозитаif (isCloseLastPosByTake()==true) // Если сработал тейк профит
Old_Free=New_Free; // Прежние средства равны новым средствам
Lts=Lot; // Лот понижаеться до начального уровняif (Old_Free>New_Free) // Если средства убывают
rr=Old_Free-New_Free; // Узнаем на сколькоif (rr>=pr) // Если убыток становиться больше или равно размеру прибыли
{
Lts=rr/TakeProfit; // Вычисляем лот для отработки убытка
}
if (Lts>Lot*8) // Если достигли 8-ми кратного увеличения
{
Lts=Lot*8; // То останавливаемся
}
//--------------------------------------------------------------------------------------------------------+ bool isCloseLastPosByTake(string sy=NULL, int op=-1, int mn=-1) {
datetime t=0;
double ocp, otp ;
int dg, i, j=-1, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy==NULL) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
dg=MarketInfo(sy, MODE_DIGITS);
if (dg==0) if (StringFind(OrderSymbol(), NULL)<0) dg=5; else dg=2;
ocp=NormalizeDouble(OrderClosePrice(), dg);
otp=NormalizeDouble(OrderTakeProfit(), dg);
if (ocp==otp) return(true);
}
return(false);
Стоп лосс и тейк профит в соотношении 1/4 (это один из вариантов) . При срабатывании 5-и лоссов на 6-ом увеличиваем лот для отработки убытка. На 8-ми кратном увеличении останавливаем увеличение.
Все что мог придумать. Работает не корректно.