[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 550

 

おはようございます。初心者にどのような方向から掘ればいいのかアドバイスしてください。問題は解決していない。要は、こういうことです。

H4では、バーが下から上にブレイクし、そこで実際にクローズするので、これは買い条件となります。買取ります。今、我々はいくつかのポイント、またはクローズ(この瞬間まで、すべてが私のためにシンプルで明確だった)、次のバー(これは動作しません)まで煙に行くには、大体10を取る必要があります。注文が閉じられるとすぐに新しい注文が開かれる(条件は満たされている)、次のバーまで取引しないようにするにはどうしたらよいでしょうか。

解決方法は簡単そうで、身近に感じるのですが、知識(頭脳)が不足しています))。私は549ページを読んでいないことを認めなければならないし、すでに誰かが尋ねたのなら...。あまり悪口を言わないように))))

お願いします

 

よくあるご質問

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

ハイ、助けてください!一番わかりやすいのがわからないんです(((

double LotsAllPos(int op) { { { LotsAllPos(int op)

int i;

double ll=0;

for (i=0; i<OrdersTotal(); i++){

if (OrderType()!=op) continue;

if (OrderSymbol()!=sy) を続ける。

if (OrderMagicNumber()==Magic || OrderMagicNumber()==Magic+1) ll+=OrderLots().OrderMagicNumber()==Magic+1);

}

return(ll)です。

ここでは、シンボルとタイプ別に合計したボリュームを返す必要があります。

for (i=0; i<OrdersTotal(); i++) {
 if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
   if (OrderType()!=op) continue;

....
   }
 
Sepulca:


よろしくお願いします。
 

どのような問題が考えられるか教えてください。変数newlotsは0.2である。

EA を実行すると、まず Print 1 に 1 0.2 というメッセージが表示され、次に注文を開く条件が発生し、注文は開かれますが、その前のPrint 2関数では メッセージが表示されません。これに加えて、注文を開くたびに表示されていた、注文が送信された旨の標準メッセージがログに表示されない。

しかし、それはまだ最悪の事態ではありません。主な問題は、変数newlotsが0.2に等しく、注文は0.1のボリュームで開くことです。これは、変数newlotsとしてボリュームではなく、関数で明確に指定されているので、全く可能ではありません。

  Print("1 ",newlots);
  
  if(условие)
    {
    if(buytime != Time[0] && buys == 0 && sells == 0)
      {
      Print("2 ",newlots);
        if(OrderSend(Symbol(),OP_BUY,newlots,Ask,Slippage,0,0,0,MagicNumber,0,BuyColor) > 0)
          {
          buytime = Time[0];
          }
      }
    }

// пробовал даже вот так, в этом случае выводятся только первые два сообщение, причем значение выводится что newlots все таки равен 0.2, но третье сообщение
не выводится, и ордер открывается с лотом 0.1.


Print("1 ",newlots); - равен 0.2


Print("2 ",newlots); - равен 0.2

Print("3 ",newlots); - не выводится сообщение, и далее ордер открывается с лотом 0.1



Print("1 ",newlots);
  if(((Ask > (MA1+3*Point*a)) && (Open[0] < (MA1+3*Point*a)) && (Ask < (MA1+5*Point*a))) || ((Low[0] < (MA1+3*Point*a)) && (Bid > (MA1+3*Point*a)) && (Bid < (MA1+5*Point*a))))
    {
    Print("2 ",newlots);
    if(buytime != Time[0] && buys == 0 && sells == 0)
      {
      Print("3 ",newlots);
        if(OrderSend(Symbol(),OP_BUY,newlots,Ask,Slippage,0,0,0,MagicNumber,0,BuyColor) > 0)
          {
          buytime = Time[0];
          }
      }
    }

 
sss2019:

どのような問題が考えられるか教えてください。変数newlotsは0.2である。

EA を実行すると、Print 1 が最初に 1 0.2 というメッセージを表示し、次に注文を開く条件が発生し、注文は開かれますが、その前にある Print 2 関数にはメッセージが表示されません。これに加えて、注文を開くたびに表示されていた、注文が送信された旨の標準メッセージがログに表示されない。

しかし、それはまだ最悪の事態ではない、主な問題は、変数newlotsは0.2に等しく、順序は0.1のボリュームで開くことです。それは明らかに変数のnewlotsその代わりに、関数に記載されているため、それが起こるかもしれませんボリュームを。


オーダーの開始はコードのどこにあるのですか?OrderSendは どこにあるのですか?

その部分において、あなたが示した条件は実行されず、その結果、あなたのプリント2、ひいてはこの条件におけるOrderSendも0.2ロットの注文を開くことはありません。

別のOrderSendが実行されています。

 
zxc:


注文の開始はコードの他のどこですか?OrderSendは他にどこがありますか?

ご指摘の箇所では、条件が満たされていないため、プリント2、したがって、この条件でのOrderSendも開かれません - ロットが0.2の注文は開かれません。

別のOrderSendが実行される。


さあ、どうぞ。

if(OrderSend(Symbol(),OP_BUY,newlots,Ask,Slippage,0,0,0,MagicNumber,0,BuyColor) > 0)

私のEAにはOrderSendが 1つだけあり、条件が満たされ、不明瞭な出来高で注文が開かれます。

 

EAがセットになっている場合、どのフォルダに入れればいいのか教えてください。ありがとうございます。

 

こんにちは。

ファイルからの読み込みで、1行(一般的にはもっとありますが、それは問題ではありません)、ファイルの終わりを見ないかのように、ループしています。

int qq=0;
 while (FileIsEnding(h3)==false)
 {
  int uu=0;
  while (FileIsLineEnding(h3)==false)
  { 
    Histxmas[qq][uu]=StrToDouble(FileReadString(h3));
    Print("Histxmas[",qq,"][",uu,"]=",Histxmas[qq][uu]);
    uu+;
  }
  FileSeek(h3,0,SEEK_END);   
  qq++;
  Print("Бро зациклился, покажи мне кюкю",qq);
 }