初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 795

 
Alexey Viktorov:
whileループ中にインジケータが再計算されるのは間違いないですか?
はい、コメントを入れました。 それとも、まだ再計算が行われたことの証明にはならないのでしょうか?
 
007yurik:
はい、コメントを載せて ください。 それとも、まだ再計算したことを証明していないのでしょうか?

デバッグモードでValue[]を見る必要がある

In Commentはループの外側で変更することができます。この状況に遭遇して確認したわけではありませんが、何か、再計算されず、値が変化しないような気がするのです。そして結果的に、ループから抜け出せなくなるのです。

 
Alexey Viktorov:

デバッグモードでは、Value[] valuesを参照してください。

In Commentはループの外側で変化する可能性があります。このような状況に遭遇して確認したわけではありませんが、何か、再計算されず、値が変化しないような気がするのです。そのため、ループから抜け出せなくなります。

これは何か不条理な感じですね。デバッグでは、値は正しいのですが、条件の成立にかかわらず、ループが必ず1回実行されます。 あきらめようかと思います。
 
007yurik:
これでは意味がない。デバッグではValue[]の値は正しいのですが、条件を満たすかどうかにかかわらず、ループは常に1回実行されます。 Whileを断念しようと思います。

また、Value[] 配列の値が正しいか どうかは、どのように判断しているのでしょうか?どのように記入するのですか?

 
Vladimir Karputov:

また、Value[] 配列の値が正しいか どうかは、どのように判断しているのでしょうか?どのように充填するのですか?

私の理解が正しければ、インジケーターハンドル付き)
 
007yurik:
私の習熟度がダミーに等しいことを念のため、正しく理解していれば、インジケータ・ハンドルを使用することにする)

まずValue配列を埋めてから、中身を比較するという逆の手順でやればいいと思うんです。

 
007yurik:
これは何かナンセンスですね。デバッグではValueは正しいのですが、条件を満たすかどうかにかかわらず、ループは常に1回実行されます。 Whileを放棄することになりそうです。

全てはプログラムに書かれている通りです

 bool pravda=false;

   if(pravda || Ind[0]<=-0.7)
   pravda=true;
   
   {   
      
      while(Value[2]<Value[1])
         {
         if(CopyBuffer(InpInd2_Handle,1,SignalBar,3,Value)<=0) {Recount=true; return;}                 
          }
          
         if(BuyPosOpen) BUY_Open=true;     
                                                  
         if(SellPosClose) SELL_Close=true;
         UpSignalTime=datetime(SeriesInfoInteger(Symbol(),InpInd_Timeframe,SERIES_LASTBAR_DATE))+TimeShiftSec;
         }

CopyBufferが エラーで実行された場合、Recountにtrueをセットしてループを抜ける。

だから、それは......なかったのループになります。

 

馬鹿に説明してくださいよ。
課題は、サブウィンドウにゼロラインを引くことです。シンプルな白の実線。

私がやらないことは、縞模様になるんです。レベルを設定し、インジケータラインを設定し、グラフィカルなオブジェクトを挿入しましたが、まだ縞模様になっています。
理由は明快で、ストライプのグリッド線が上から表示されるからです。しかし、ここで不思議なことに、水平のゼログリッド線だけが上にあり、垂直のグリッド線はインジケーターの下にあるのです。

ここで、サブウィンドウにシンプルな白抜きゼロラインを描くにはどうしたらよいでしょうか。

 
そして、「返事がなければ、スポルトロットに手紙を出します」!
 
User_mt5:

馬鹿に説明してくださいよ。
課題は、サブウィンドウにゼロラインを引くことです。シンプルな白の実線。

私がやらないことは、縞模様になるんです。レベルを設定し、インジケータラインを設定し、グラフィカルなオブジェクトを挿入しましたが、まだ縞模様になっています。
理由は明快で、ストライプのグリッド線が上から表示されるからです。しかし、ここで不思議なことに、水平のゼログリッド線だけが上にあり、垂直のグリッド線はインジケーターの下にあるのです。

ここで、サブウィンドウにシンプルな白抜きゼロラインを描くにはどうしたらよいでしょうか。

今の状態のスクリーンショットをお願いします。