order_idとは何ですか? - ページ 2

 
toi10005doi:

Raptorです。

そうですね、でもEAを書くのが好きなだけなので、ほとんど引き受けませんでした。ご迷惑をおかけしました。

なぜ、私の注文がスターになった後、即座にクローズするのか理解できない。

このスレッドはループとクローズオーダーについて書かれたもので、とてもシンプルでわかりやすいのですが、あなたはまだそれを理解していないようですね。


なぜあなたは4回も注文を閉じようとするのですか?

 
私の近況はコビーンです。しかし、それを書いてもうまくいかない。そこで、その1つを分離 しました。
 
toi10005doi:
私の近況はコビーンです。しかし、それを書いてもうまくいかない。だから、私はその一つを分離 しました。
しかし、あなたは同じ注文(チケット番号で)を4回クローズしようとしています。
 
toi10005doi:

はい!わかりました。

コードを修正しましたが、注文が開始された後、すぐに終了して しまいます。 何が間違っているのか、教えてください。

注文を閉じるループの中で、これらの値を印刷してください。... DIPlus1 DIMinus1 Main0 Rsi 正しい小数点以下の桁数を得るために DoubleToStr() を使用していることを確認してください。
 
Raptorはすでにあなたに何をすべきかを教えてくれました。ループの中に変数の値をすべて表示するprintステートメントをいくつか追加すれば その理由が わかります。
 
RaptorUK:
Order を終了するループで、これらの値を印刷します。DIPlus1 DIMinus1 Main0 Rsi は、 DoubleToStr() を使用して、正しい小数点以下の桁数を取得していることを確認してください。

ログに何が残りますか?
 
RaptorUK:
これをやってみて、ログに何が残りましたか?

コードを見せてもらえますか?

 
toi10005doi:

コードを表示してもらえますか?

冗談でしょう、たった一行でPrint()とDoubleToStr()を使っているだけです。

自分で書いて、ここに投稿してくれれば、時間を割いてレビューしますよ。
 
RaptorUK:
冗談でしょう、たった一行でPrint()とDoubleToStr()を使っているだけです。

自分で書いて、ここに投稿してくれれば、私の時間を割いて無料でレビューしますよ。

int start()
{
   int i ,times;
   string DIPlus1;
   string DIPlus0;
 
   string DIMinus1;
   string DIMinus0;
   
   string Main1;
   string Main0;
   
   string MACD_main;
   string MACD_signal;
   string Rsi;
   
   string err = 26;
   string x = 70;
   string xx = 30;
   
   double sl = 300;
   double tp = 50;
   
   int MagicNumber1=1234,MagicNumber2=4321;
//----
/*DIPlus1=DoubleToStr(  DIPlus1, 4);
DIPlus0=DoubleToStr(    DIPlus0, 4);
DIMinus1=DoubleToStr(   DIMinus1, 4);
DIMinus0=DoubleToStr(   DIMinus0, 4);
Main1=DoubleToStr(      Main1, 4);
Main0=DoubleToStr(      Main0, 4);
Rsi=DoubleToStr(        Rsi, 4);
//err=DoubleToStr(err,4);
//x=DoubleToStr(x,4);
//xx=DoubleToStr(xx,4);*/

//---
 
DIPlus1=iADX(NULL,0,14,PRICE_CLOSE,MODE_PLUSDI,1);
DIPlus0=iADX(NULL,0,14,PRICE_CLOSE,MODE_PLUSDI,0);
 
DIMinus1=iADX(NULL,0,14,PRICE_CLOSE,MODE_MINUSDI,1);
DIMinus0=iADX(NULL,0,14,PRICE_CLOSE,MODE_MINUSDI,0);

Main1=iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,1);
Main0=iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,0);

Rsi = iRSI(NULL,0,14,PRICE_CLOSE,0);

times = Minute() % 15 ==0 && Seconds() ==0;

//MACD_main = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0); 
//MACD_signal = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
   
//----
if(Minute() % 15 ==0 && Seconds() ==0)
{
  if( Main0 > err && Main1 < err && DIPlus0 > DIMinus0 && Rsi < x )

    
       OrderSend(Symbol(),OP_BUY,0.03,Ask,5,Ask-sl*Point,Ask+tp*Point,"",1234,0,Blue);
          
   

   if (Main0 > err && Main1 < err && DIPlus0 < DIMinus0  && Rsi > xx)
     
       OrderSend(Symbol(),OP_SELL,0.03,Bid,5,Bid+sl*Point ,Bid-tp*Point,"",4321,0,Red);
}
     
  //---
 int PositionIndex;    
 
int TotalNumberOfOrders;  

TotalNumberOfOrders = OrdersTotal();   

for(PositionIndex = TotalNumberOfOrders - 1; PositionIndex >= 0 ; PositionIndex --)  
   {
   if(  OrderSelect(PositionIndex, SELECT_BY_POS, MODE_TRADES) ) continue;   
   
   if( OrderMagicNumber() == MagicNumber2      
     && OrderSymbol() == Symbol()          
      && OrderType() == OP_BUY         
       || OrderType() == OP_SELL )  
       Print("DIPlus1",DoubleToStr(     DIPlus1, 4));
         Print("DIMinus1",DoubleToStr(  DIPlus1, 4));
          Print("Main0",DoubleToStr(    DIPlus1, 4));
           Print("Rsi",DoubleToStr(     DIPlus1, 4));  
     {if( DIPlus1 > DIMinus1 || Main0 < err || Rsi < xx)
                   OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);
     } 
   if( OrderMagicNumber() == MagicNumber1      
     && OrderSymbol() == Symbol()          
      &&  OrderType() == OP_BUY          
        || OrderType() == OP_SELL )  
        Print("DIPlus1",DoubleToStr(    DIPlus1, 4));
         Print("DIMinus1",DoubleToStr(  DIPlus1, 4));
          Print("Main0",DoubleToStr(    DIPlus1, 4));
           Print("Rsi",DoubleToStr(     DIPlus1, 4));
    { if( DIPlus1 < DIMinus1 || Main0 < err || Rsi > x  )
                   OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);   
   }
      {  if ( ! OrderClose( OrderTicket(), OrderLots(), OrderClosePrice(), 3 ) )               
         Print("Order Close failed, order number: ", OrderTicket(), " Error: ", GetLastError() ); 
    }           
    }
 return(0);
 }
   
あなたはこれを意味するのでしょうか?しかし、現在、それは順序を閉じません。
 
toi10005doi:
これはどういう意味ですか?しかし、今は注文を閉じない。
私は1行を追加すると言った ... ... それは必要なすべてだった。

あなたのコードを見てください。一行ずつたどって、何を追加したのか、なぜ壊したのかを見てください。if 文がどのように機能するか理解していますか? 中括弧{ }の 目的は理解していますか?