2つのポジションを独立して制御するトロールプロからアドバイスが欲しいのですが、どのように実装すればよいでしょうか? - ページ 8

 
charony:

かわいそうなことをしましたね。

同様に )

ZS: 7ページのトローリング、さすがです(笑)。

 
2回切ってもまだ短い。
 

)))).

ZS:テスターでの試運転はありません。

1.Expert Advisorをオープンポジションのチャートに配置します。

2.Expert Advisor は、各ポジションに独自のラインを表示します。

3.行のプロパティ(行の「説明」)で、必要な注文の必要な行をポイントで設定します(行名は変更しないでください、注文書と 同じです)。

4.トロールの仕組みを観察する)))

5.私たちが対処できないことに、どのように対処したらよいかを尋ねてはならない。

ファイル:
 
//+-----------------------------trailingstop----------------------------------------------
for(int i=OrdersTotal()-1;i>=0;i--)
   {
      if(OrderSelect(i,SELECT_BY_POS)==true)
      {
         {
            int cmd=OrderType();
            if(cmd==OP_BUY)
            {
               if(ObjectFind(DoubleToStr(OrderTicket(),0))<0)
               {
                  ObjectCreateTrend(false,DoubleToStr(OrderTicket(),0),OBJ_HLINE,0,0,OrderOpenPrice(),0,0,Blue,0,0,"",0);
               }
               else
               {
                  if(ObjectDescription(DoubleToStr(OrderTicket(),0))!="30")//if(TrailingStop>0)  
                  {                 
                     if(Bid-OrderOpenPrice()>Point*StrToDouble(ObjectDescription(DoubleToStr(OrderTicket(),0))))
                     {
                        if(OrderStopLoss()<Bid-Point*StrToDouble(ObjectDescription(DoubleToStr(OrderTicket(),0))))
                        {
                           OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*StrToDouble(ObjectDescription(DoubleToStr(OrderTicket(),0))),OrderTakeProfit(),0,Green);
                        }
                     }
                  }
               }
            }
            if(cmd==OP_SELL)
            {
               if(ObjectFind(DoubleToStr(OrderTicket(),0))<0)
               {
                  ObjectCreateTrend(false,DoubleToStr(OrderTicket(),0),OBJ_HLINE,0,0,OrderOpenPrice(),0,0,Red,0,0,"",0);
               }
               else
               {
                  if(ObjectDescription(DoubleToStr(OrderTicket(),0))!="30")//TrailingStop>0)  
                  {                 
                     if((OrderOpenPrice()-Ask)>(Point*StrToDouble(ObjectDescription(DoubleToStr(OrderTicket(),0)))))
                     {
                        if((OrderStopLoss()>(Ask+Point*StrToDouble(ObjectDescription(DoubleToStr(OrderTicket(),0))))) || (OrderStopLoss()==0))
                        {
                           OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*StrToDouble(ObjectDescription(DoubleToStr(OrderTicket(),0))),OrderTakeProfit(),0,Red);
                        }
                     }
                  }
               }
            }
         }
      }
   }
   return(0);
  }
//+------------------------------------------------------------------+
void ObjectCreateTrend(bool RayLines,string iObjectName,int Type,int iWindow,int X1Time,double Y1Price,int X2Time,double Y2Price,color iColor,int Code,int sound,string coment,int angle)
{
        if (ObjectFind(iObjectName)<0) {
                ObjectCreate(iObjectName,Type,iWindow,0,0);
                ObjectSet(iObjectName,OBJPROP_COLOR,iColor);
         ObjectSet(iObjectName,OBJPROP_RAY,RayLines);
        }
        if (X1Time!=0)
           ObjectSet(iObjectName,OBJPROP_TIME1,X1Time);
        ObjectSet(iObjectName,OBJPROP_PRICE1,Y1Price);
        if (X2Time!=0)
           ObjectSet(iObjectName,OBJPROP_TIME2,X2Time);
        if (Y2Price!=0)
           ObjectSet(iObjectName,OBJPROP_PRICE2,Y2Price);
        if (Code!=0)
           ObjectSet(iObjectName,OBJPROP_ARROWCODE,Code);
        if (coment!="")
           ObjectSetText(iObjectName,coment,10,"Times New Roman",iColor);
        if (angle!=0)
           ObjectSet(iObjectName,OBJPROP_ANGLE,angle);
        //ObjectSet(iObjectName,OBJPROP_FIBOLEVELS,7);
        //ObjectSet(iObjectName,OBJPROP_FIRSTLEVEL+0,0);
        //ObjectSet(iObjectName,OBJPROP_FIRSTLEVEL+1,0.5);
        //ObjectSet(iObjectName,OBJPROP_FIRSTLEVEL+2,1);
}


 //-------------------------------------tral-------------------------------------------------
  
//+-----------------------------trailingstop end----------------------------------------------+
   
такое вставил
 


こりゃあ
 

オブジェクトを作成するときに、"30 "と等しい記述をチェックする代わりに、"30 "という記述を作成します。

ZS:オブジェクトの説明を 一度に "30 "にするにはどうしたらいいか、という質問でもよかったのですが。

 
if(ObjectDescription(DoubleToStr(OrderTicket(),0))!="30")/

""を "30 "に置き換えることで、このような結果になったとお考えでしょうか?

ZS:この行は、記述が空白のときにトロールが開始されるのを防いだ。

 
sanyooooook:

""を "30 "に置き換えることで、このような結果になったとお考えでしょうか?

ZS:この行は、記述が空白のときにトロールが開始されるのを防いだ。

クメの 力を無駄にするな」というコーリャの古いことわざを、きっとウドムール人は知らないのでしょう... :))
 
granit77:
クメの 力を無駄にするな」というコーリャの古いことわざを、きっとウドムール人は知らないのでしょう... :))
初めて聞きました。「壁に豆をぶつけるように」とか「氷に魚をぶつけるように」とか「愚者を教えるのは死者を癒すようなもの」でしょうか )
 
sanyooooook:

クソを入れればクソが出るので、オブジェクトを作成するときに、"30 "と等しい記述をチェックするのではなく、"30 "と記述するようにしましょう。

ZS:オブジェクトの記述をすぐに「30」と同じにするにはどうしたらいいか、という質問もあり得ます。


怒るから怖いんだよ

行のプロパティ(行の "説明")で、段落で目的のトロールを設定 します。

ObjectDescription はプロパティなので、そこに記述します。

どこに挿入するのか?30ポイントトロール