どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 133

 
skyjet:


しかし、3,2,1本のバーを比較しているので、x >=1 に限定した計算になってしまうのでは?

また、同じ価格のバーは単に考慮されない、番号が割り振られないということでしょうか?

最適化パラメータを設定することにより、開始1、ステップ1、終了4、H1とH4では結果タブが単に空になり、D1では異なる数のバーで同じ収益性が分析されました。

もしかしたら、私が質問から理解したことと、あなたが言いたかったことは違っていたかもしれません。私の例では、3本と2本、2本と1本の始値を 比較していますが、3本と1本は比較されていません。比較した値が等しい場合、何も起こらず、次の比較に移ります。
なぜx>1なのか(>=ではない)。最初の反復では、Open[3]==Open[3-1]、すなわちOpen[3]==Open[2]が比較されます。OKです。2番目(x=2)では、Open[2]==Open[1]となります。OKです。3回目のイテレーションはありません。x>=1ではOpen[1]==Open[0]の比較となり、0 barとの比較となるため、OKではありません。
 
T-G:

プロフェッショナルは、あなたがいないとどこにも行けないんです。

機能を支援します。履歴にある最後の負け注文の数をプラス注文にカウントするもの。

例)履歴では、最後の注文がマイナスで3回、その後プラスで1回、マイナスで2回と表示される。

この関数は、最後の3つ(正順の前)を数える必要があります。

int Number=0;
//---
if (OrdersHistoryTotal()>0)
{  for (int i=OrdersHistoryTotal()-1; i>=0; i--)
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
      {  if (OrderProfit()<0.0)
         Number+=1;
         else break;
}  }  }
赤字だけで終了した注文はここにカウントされます。収益=0(ゼロ)の場合、カウントは中断されます。
 
paladin80:
赤字だけで終了した注文はここにカウントされます。収益=0(ゼロ)の場合、カウントは中断されます。
必ずしも読んだ順番通りにはいかないかもしれません。正確無比に、注文は2次元の配列にまとめられ、1次元目には閉店時間、2次元目には注文書が 格納されます。次に、配列を最初の次元でソートし、3つに切り詰めて、それらをチェックします(最後の3つ)。
 
chief2000:
前回の質問を言い換えて補足したい。
以下は、4つの要素を持つ配列のコードです。実は、配列の項目数は変数なんです。
ネストされたforループの数が可変になるように、配列1項目につき1つのforループになるようにコードを変更するにはどうすればよいでしょうか?
ありがとうございました。

int start() { 

   int Array[4]                                       = {1, 2, 3, 4};
   int x1, x2, x3, x4;
   int Array_Size                                  = ArrayRange(Array,0);


   for(x1=0; x1<Array_Size; x1++) {
      Print("Combination                       = ", Array[x1]);

      for(x2=x1+1; x2<Array_Size; x2++) {
         Print("Combination                    = ", Array[x1] + "   " + Array[x2]);

         for(x3=x2+1; x3<Array_Size; x3++) {
            Print("Combination                 = ", Array[x1] + "   " + Array[x2] + "   " + Array[x3]);

            for(x4=x3+1; x4<Array_Size; x4++) {
               Print("Combination              = ", Array[x1] + "   " + Array[x2] + "   " + Array[x3] + "   " + Array[x4]);
            }
         }
      }
   }


   return(0);
}


この状況を見て、私は疑問を抱くようになりました。ネストされたループの束が利用できる場合。計算はどのように行われるのですか?最も深いネストのものから、またはその逆?

すなわち、最初に計算される。

 for(x4=x3+1; x4<Array_Size; x4++) {
               Print("Combination              = ", Array[x1] + "   " + Array[x2] + "   " + Array[x3] + "   " + Array[x4]);

それとも反対側から?その仕組みを理解したい。

 
テクニカル 指標のレベルを考慮したEAの作り方。例えばcci。線が0レベルを超えている場合は、アクションを実行します。どうすればいいのか?
 
webip:
テクニカル指標のレベルを考慮したEAの作り方。例えばcci。行が0より大きい場合は、アクションを実行します。どうすればいいのか?

cciが0より大きい場合 ...cciが0より小さい場合、...

関数 iCCI()。

 

達人たちよ、問題を解決する方法を教えてくれ。オープニングとクロージングの差を計算するときに、プラスの数字が必要です。例えば、価格が上昇して始値 から終値を引くと、マイナスの数字が出ます。

 
artmedia70:

cciが0より大きい場合 ...cciが0より小さい場合、...

関数 iCCI()。



いいえ。関数はわかるが、コードにどう反映させればいいのかわからない。これはどうでしょう?

 if(iCCI() > 0)
  {
    //остальной код?
  }
 
Forexman77:

達人たちよ、問題を解決する方法を教えてくれ。オープニングとクロージングの差を計算するときに、プラスの数字が必要です。例えば、値段が上がって始値からマイナスを引くと、マイナスの数字が出ます。


doubleMathAbs() 倍精度)
この関数は,渡された数値の絶対値(モジュロ値)を返します。
 
hoz:

この状況を見て、私は疑問を抱くようになりました。ネストされたループの束が利用できる場合。計算はどのように行われるのですか?最も深いネストのものから、またはその逆?

すなわち、最初に計算される。

それとも反対側から?その仕組みを理解したい...。


先ほどの4サイクルの結果を見ると、一番内側のサイクルが1回トリガーされて1234となります。
理由: