【MQL】トレーリングストップを設定する
損切りを少しでも浅くできないかなと考え、トレーリングストップを設定するコードを書いてみました。
トレーリングストップ(OnTick内)
for(int i=OrdersTotal()-1; i>=0; i--){ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true){ // トレーリングストップが設定されている if(TrailingStop>0){ if(OrderType()==OP_BUY && OrderMagicNumber()==MAGIC){ // 現在値―建値>トレーリングストップ幅 if(Bid-OrderOpenPrice()>TrailingStop*10*Point){ // 逆指値<現在値―トレーリングストップ幅 if(OrderStopLoss()<Bid-TrailingStop*10*Point){ if(!OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*10*Point,OrderTakeProfit(),0,clrBlue)){ Print("OrderModify error ",GetLastError()); return; } } } } if(OrderType()==OP_SELL && OrderMagicNumber()==MAGIC){ // 建値―現在値>トレーリングストップ幅 if(OrderOpenPrice()-Ask>TrailingStop*10*Point){ // 逆指値>現在値+トレーリングストップ幅 if((OrderStopLoss()>Ask+TrailingStop*10*Point) || (OrderStopLoss()==0)){ if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop*10*Point,OrderTakeProfit(),0,clrRed)){ Print("OrderModify error ",GetLastError()); return; } } } } } } }