Но тогда каждая позиция будет модифицироваться два раза. Это
тож не оч. хор. Ещё чуть-чуть осталось додумать....
Сделай проще
if(OrderTakeProfit()==0 || OrderStopLoss()==0){Твои дествия по установке обоих параметров}if(OrderTakeProfit()!=0 || OrderStopLoss()!=0){Твои дествия по обновлению обоих параметров}
Вопрос такой. В советнике ProtoType_IX есть пример параболлического
трала. Закомментирован. Стал разбираться. Вставил во внешние
параметры
externboolP_Trailing = true;
externintTSpar=5.0;
externintZeroBar=8; // выход в безубыток через ZeroBar баров//-------------------------------------------
... ... ...
if(P_Trailing)ParabolTrailingStop(); //выключатель трейлинг стопа
Не могу соотнести параметр TSpar=5.0; с его логическим смыслом в
трале. Не пойму. Какие значения в каких пределах нужно выставлять.
int или double ? Трал работает - но уж очень непонятно! Не могу добиться
приемлемых рузультатов. Может кто работал с таким? Обьясните
в двух словах ...?
/+------------------------------------------------------------------+
//|подтягивает стоп по параболе |//+------------------------------------------------------------------+voidParabolTrailingStop(){inttype; intEnterBar;// бар входа в позициюdoublea; // ускорение в форумуле S=a*t^2/2doubleZbar=ZeroBar,CurrParStop,TSdouble=TSpar;
doubleminStopLevel=MarketInfo(Symbol(),MODE_STOPLEVEL);
a=TSdouble*2./Zbar/Zbar;//----for(inti=0;i<OrdersTotal();i++){if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){type=OrderType(); if(type==OP_BUY){EnterBar=iBarShift(NULL,0,OrderOpenTime());
if(EnterBar==0)continue;
CurrParStop=NormalizeDouble(OrderOpenPrice()
-(TSpar-a*EnterBar*EnterBar/2.0)*Point,Digits);
if(CurrParStop>OrderStopLoss()){if(Bid-CurrParStop>minStopLevel*Point)OrderModify(OrderTicket(),OrderOpenPrice(),
CurrParStop,OrderTakeProfit(),0,Blue);
elseOrderModify(OrderTicket(),OrderOpenPrice(),
Bid-minStopLevel*Point,OrderTakeProfit(),0,Blue);
}}if(type==OP_SELL){EnterBar=iBarShift(NULL,0,OrderOpenTime());
if(EnterBar==0)continue;
CurrParStop=NormalizeDouble(OrderOpenPrice()
+(TSpar-a*EnterBar*EnterBar/2.0)*Point,Digits);
if(CurrParStop<OrderStopLoss()){if(CurrParStop-Ask>minStopLevel*Point)OrderModify(OrderTicket(),OrderOpenPrice(),
CurrParStop,OrderTakeProfit(),0,Red);
elseOrderModify(OrderTicket(),OrderOpenPrice(),
Ask+minStopLevel*Point,OrderTakeProfit(),0,Red);
}}}}//----return; }
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Cпс, Хирург. Сделал. Но теперь выставляет что-то одно - или тейк , или лосс. Да и тому же, - иногда обнуляет выставленный тейк , а тут же ставит лосс!
2007.12.24 17:47:00 '1000239562': order #6490250 sell 0.10 GBPUSD at 1.9765 was modified -> sl: 1.9821 tp: 0.0000Может я что-ниб. не так сделал? Но по разумной логике вроде всё, как положено:
Сообразил, в чем дело! Нужно везде одновременно при модификации выставлять стоплосс и тейкпрофит вместе. Но тогда каждая позиция будет модифицироваться два раза. Это тож не оч. хор. Ещё чуть-чуть осталось додумать....
Всех с Рождеством поздр. !
Вопрос такой. В советнике ProtoType_IX есть пример параболлического трала. Закомментирован. Стал разбираться. Вставил во внешние параметры
Не могу соотнести параметр TSpar=5.0; с его логическим смыслом в трале. Не пойму. Какие значения в каких пределах нужно выставлять. int или double ? Трал работает - но уж очень непонятно! Не могу добиться приемлемых рузультатов. Может кто работал с таким? Обьясните в двух словах ...?