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

 

こんにちは!私は3つのバー(3,2,1)の開始価格を 比較しています。価格が等しいバーをカウントしないようにするにはどうしたらよいですか?

for( x=<3;x--)
{
 if( Open[x]==Open[x] )
  {
    x+1;
   }
  if( Open[x]<Open[x] )
   {
   ,,,
   }
 
skyjet:

こんにちは!私は3つのバー(3,2,1)の開始価格を比較しています。価格が等しいバーをカウントしないようにするにはどうしたらよいですか?

for (int x=1; x<3; x++)
{
 if(Open[x]==Open[x+1]) continue;
 if(Open[x]<Open[x+1])
   {
   //--- action
   }
}
 
こんにちは、助けてください。私はH1でプレイしているのですが、H4のインジケーターを持っています。正しく表示されます。しかし、テスターでビジュアライズして動かすと、例えば年明けには、今現在の情報が表示されます。一般に、Strategy Testerでは動作しません。どうすればうまくいくのかまたは、それが解決されたトピックへのリンクを与えてください。
 
artmedia70:
空っぽとはどういうことですか?全く何も出力されないのか、それともアレイのセルにゼロがあるのか?


全くありません。

に入ったとしても 対象物 矢印とトレンドライン以外、まったく何もない......。

artmedia70 です。

なぜループの本体でiを増やしているのですか?

と、これ: i<=p, なぜ "or equal to" なのか?


疲れからかミスをした。このように修正しました。

for(i=0; i<p; i++)
      {
          pr("a[i][1] = " + a[i][1]);
      }

このコード片は、関数自体の中にあります。

//+-------------------------------------------------------------------------------------+
//| Закрытие ордеров, отсортированных по размеру лотов                                  |
//+-------------------------------------------------------------------------------------+
void ClosePosBySortLots()
{
   double a[][2];
   int p = 0;
   
   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
      if (OrderMagicNumber() != i_magic) continue;
      if (OrderSymbol() != Symbol()) continue;
      if (OrderType() < 2)
      {
         p++;
         ArrayResize(a, p);
         a[p-1][0] = OrderLots();
         a[p-1][1] = OrderTicket();
      }
   }
//   pr ("ClosePosBySortLots(): " + "p = " + p);
   if (p > 0)
   {
      ArraySort(a, WHOLE_ARRAY, 0, MODE_DESCEND);
      
      for(i=0; i<p; i++)
      {
          pr("a[i][1] = " + a[i][1]);
      }
      
      for(i=0; i<p; i++)
      {
         if (OrderSelect(a[i][1], SELECT_BY_TICKET, MODE_TRADES))
         {
             if (OrderCloseTime() == 0) ClosePosBySelect();
         }
      }
   }
}
 
hoz:


全くありません。

に入ったとしても 対象物 矢印とトレンドライン以外のオブジェクトが全くない...。


疲れからか、失敗したのは私です。このように修正しました。

このコード片は、関数自体の中にあります。

ビフォーアフター

if (p > 0)

p値未記入。

断層撮影の一連の流れは、私が書かないといけないのでしょうか?

 
artmedia70:

ビフォーアフター

p値を印刷しない。

エラーシーケンスを書いてあげないといけないのでしょうか?



実を言うと、そうなんです。とにかく、こんな状況なんです。

void ClosePosBySortLots()
{
   double a[][2];
   int p = 0;
   
   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
      if (OrderMagicNumber() != i_magic) continue;
      if (OrderSymbol() != Symbol()) continue;
      if (OrderType() < 2)
      {
         p++;
         ArrayResize(a, p);
         a[p-1][0] = OrderLots();
         a[p-1][1] = OrderTicket();
      }
   }
//   pr ("ClosePosBySortLots(): " + "p = " + p);
   pr("___p = " + p);   // Значение кол-ва позиций до if..
   
   if (p > 0)
   {
      pr("p = " + p);   // Значение кол-ва позиций после if..
      
      ArraySort(a, WHOLE_ARRAY, 0, MODE_DESCEND);
      
      for(i=0; i<p; i++)
      {
          pr("a[i][1] = " + a[i][1]);
      }
      
      for(i=0; i<p; i++)
      {
         if (OrderSelect(a[i][1], SELECT_BY_TICKET, MODE_TRADES))
         {
             if (OrderCloseTime() == 0) ClosePosBySelect();
         }
      }
   }
}

この方法でやってみたが、このチャートの部分でも何も出てこない。他の場所では0と表示されますが、1つのポジションが開いているときに、テイクで一気に閉じました。つまり、この分野ではコサコバはまるで......。

以下はスクリーンショットです。

今、これらの値をすべて印刷したほうがいいのでしょうか?

p++;
ArrayResize(a, p);
a[p-1][0] = OrderLots();
a[p-1][1] = OrderTicket();

まだまだ先がありそうですね。何しろ、そこにはすべてが明確に、そして普通に書かれているのですから。

 
hoz:


実は、そうなんです。とにかく、こんな状況なんです。

このように実行しましたが、チャートのこの部分でも何も出てきません。他の場所では0と表示されますが、1つのポジションが開いているときに、テイクで一気に閉じました。つまり、この分野では、コサコバはまるで...。

以下はスクリーンショットです。

今、これらの値をすべて印刷したほうがいいのでしょうか?

まだまだ先がありそうですね。なにしろ、そこにはすべて明確に、普通に書いてあるのですから。

配列にワラントデータを「充填」した直後に、配列に何が含まれているかを理解し、見ることができますか?いいえ、あなたは知らない、仮定するだけです。配列のすべてのセルの内容を、pr() ではなく、標準の Print() で SPRINT して、テスターのログを見て、配列に何が入っているか、すべてのセルで、それが満たされた直後の状態を確認してみてください。配列の内容が自分の考えと一致していることが確認できたら、pr()でそれを表示します。同じ結果が得られない場合 - それはあなたのpr()です、もしデータが一致するなら、次のステップでエラーを探します。
 
ログブックにロット関連のエラーがある(OrderSend error 4051)。この問題を解決する。もしかしたら、それが役に立つかもしれません。そうすれば、どうなるか。
 
hoz:
ログブックにロット関連のエラーがある(OrderSend error 4051)。この問題を解決する。もしかしたら、それが役に立つかもしれません。そして、その先にあるのは

タンクを見て、再起動して、もしかしたら役に立つかもしれない...。:-)

追伸:ここでは親切心で言っています。

 
これは1次元の配列で、サイズは様々である。
配列の 要素のすべての可能な組み合わせをループする方法は?
要素の順番は関係ない、つまり123==213==321...です。

以下は、4つの要素を持つ配列の例である。
[4] <=> { 1 2 3 4 }

1, 12, 13, 14, 123, 124, 134, 1234, 
2, 23, 24, 234, 
3, 34,
4