MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 416

 
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=MAGIC_3 || OrderSymbol()!=SMB_) continue;        //  здеся отсеиваются ордера не со своим магиком
      if(OrderMagicNumber()==MAGIC_3 && OrderSymbol()==SMB_)                     //  здеся отсеиваются ордера не со своим магиком
        {
         if(OrderType()==OP_SELL)
           {
            ticket=OrderTicket();OpenPrice=OrderOpenPrice();SL=OrderStopLoss();TP=OrderTakeProfit();comm_=OrderComment();
        //    if( comm_ != (DoubleToString(MAGIC_3,0)+" Uni OP_SeLL") || comm_ != (DoubleToString(MAGIC_3,0)+" UNI OP_SELLSTOP") ) return(0);
            RefreshRates();
            //+------------------TAKE НА SELL------------------------------------+ берёт несвой магик
            if(TP==0)//|| SL==0)   потому и здесь закомментировано || SL==0   поменял || на &&
              {
               TP    = OpenPrice - TakeProfit*Point;
               SL    = OpenPrice + 2*TakeProfit*Point;
               Color = clrViolet;
               Print(MAGIC_3," TAKE НА SELL ticket: ",ticket,", PR ",OpenPrice," SL: ",SL," TP: ",TP," Bid: ",Bid_);
               MODE_POS_b(ticket,OpenPrice,SL,TP,Color);
              }
            RefreshRates();
            //+------------------ОТКРЫТИЕ BUYSTOP--------------------------------+
            if(SchBuyStop_b(MAGIC_3,SMB_)==0 && SchSell_b(MAGIC_3,SMB_)==2)
              {
            if( SL==0 )return(0);
               OP_CMD_ = OP_BUYSTOP;
               Price   = NormalizeDouble(SL,Digits);
               SL      = 0;
               TP      = 0;
               lts     = SchSellLots_b(MAGIC_3,SMB_)*2;
               lts     = MathRound(lts/LotStep)*LotStep; // округление объема до ближайшего допустимого
               Color   = clrYellow;   //clrGreenYellow
               comm_   = DoubleToString(MAGIC_3,0)+" UNI OP_BUYSTOP";
               Print(MAGIC_3," OP_BUYSTOP:PR  ",Price," SL: ",SL," TP: ",TP," lts: ",lts," Ask: ",Ask_);
               res=bool_OP_b(SMB_,OP_CMD_,lts,Price,SL,TP,comm_,MAGIC_3,Color);
              }
            //+------------------ОТКРЫТИЕ SELLLIMIT------------------------------+
            if(SchSellLimit_b(MAGIC_3,SMB_)==0 && TP>0 && SchSell_b(MAGIC_3,SMB_)==1)
              {
               OP_CMD_ = OP_SELLLIMIT;
               Price   = TP + 2*Point*TakeProfit;
               Price   = NormalizeDouble(Price,Digits);
               TP      = TP + Point*TakeProfit;
               SL      = NormalizeDouble(SL,Digits);
               lts     = MathRound(SchSellLots_b(MAGIC_3,SMB_)/LotStep)*LotStep; // округление объема до ближайшего допустимого
               Color   = clrMediumSpringGreen;
               comm_   = DoubleToString(MAGIC_3,0)+" UNI OP_SELLLIMIT";
               Print(MAGIC_3," OP_SELLLIMIT:PR  ",Price," SL: ",SL," TP: ",TP," lts: ",lts," Ask: ",Ask_);
               res=bool_OP_b(SMB_,OP_CMD_,lts,Price,SL,TP,comm_,MAGIC_3,Color);Sleep(1000);
              }
           }
        }
      //   break;
     }
 
Alexander Boltunov:

みなさん、こんにちは。価格が水平線と 交差する条件を設定する方法を教えてください。また、この機能を最大限の精度で作るにはどうしたらよいでしょうか(毎ティックで反応するような)。

よろしくお願いします))

OnDeinitに自分の行の削除を追加しました。
ファイル:
-LINE.mq4  6 kb
 
Artyom Trishkin:

ヘラジカって?

専門用語は使わないでいいのですか?学校で休み時間に「アディックス」「ヨーヨー」のどちらがかっこいいか議論しているのとはわけが違う。

ストップロス
 
ZZuretc:

if(OrderMagicNumber()!=MAGIC_3 || OrderSymbol()!=SMB_) continue; // ここでマジックナンバーを持たないオーダーは削除されます。
if(OrderMagicNumber()==MAGIC_3 && OrderSymbol()==SMB_) // ここでマジックナンバーを持たないオーダーは削除されます。

2回のスクリーニングは過剰と思われる

 
STARIJ:

2回のスクリーニングは過剰と思われる

が入らない、バイパスが1に設定されている、セリミットが数
 
ZZuretc:
が、通過するのは自分たちではないし、バイパスは1、セリミットは数個に設定されています。
MetaEditorでF5キーを押して、デバッガを起動してみてください。そこで、変数の値を監視することができます
 
STARIJ:
MetaEditorでF5キーを押して、デバッガを起動してみてください。そこで変数値を追跡することができます

1ヶ月間、デバッグができない。経験豊富な専門家による、あなたからの賢いアドバイスです。

 
kaktyzzz:

オブジェクトの削除について教えてください。Incl005_011のような名前のオブジェクトは削除されるはずなのですが、削除されません ((

投稿された文章は、デコンパイルされたものです。ここではネガティブに扱われています。罰則=追放削除してください。
 
STARIJ:
投稿されたテキストは、デコンパイルです。ここではネガティブに扱われています。罰=禁止削除してください。
デコンパイルされてるかどうかなんてわかるわけないだろ、削除したんだから。
 
ZZuretc:
水平線はあるVALUEの上に立っている。仮にif(Bid>=0.8765){return(0);}とします。

ありがとうございました。