MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 571

 
PolarSeaman:

現在時刻からバーの開店時刻を 引くということでしょうか。

//+------------------------------------------------------------------+
//| Количество секунд, остающихся до закрытия свечи                  |
//+------------------------------------------------------------------+
long SecondsToCandleClose(const string symbol_name,const ENUM_TIMEFRAMES timeframe)
  {
   datetime array[];
   return(CopyTime(symbol_name,timeframe,0,1,array)==1 ? PeriodSeconds(timeframe)+array[0]-TimeCurrent() : 0);
  }
//+------------------------------------------------------------------+
 
PolarSeaman:

OnCalculate()をOnTimer()に挿入することは可能ですか?

ローカルタイムとカレント タイムを同期させる方法がわからない、ヘルプにも載って いない。

この2つは異なるイベントハンドラです。OnCalculate() は新しいティック、OnTimer()はタイマー起動時に設定された時間でトリガーされます。

 
PolarSeaman:

この分しか確認できないし、24時間寝ないといけないし。)

そうなるとタイマーがないとダメなんです。

 
Artyom Trishkin:

ありがとうございます。あとは、チックがない状態で、誰として、それを機能させるか。

        if(SecondsToCandleClose(Symbol(),0)<=60)
              {
               if(open[i]>close[i] && high[i]-low[i]>=100*Point)
                 {
                  BufferUP[i]=low[i]-distance*Point;
                 }
              }
 
PolarSeaman:

OnCalculate()をOnTimer()に挿入することは可能ですか?

ローカルタイムとカレント タイムを同期させる方法がわからない、ヘルプにも載って いない。

ティックの瞬間、TimeCurrent()-TimeLocal()の差をカウントします。
- これはブローカーに対するオフセットです。このオフセットが後で変更された場合、すべてを再計算する必要があります。
- D1バーの 開始時または出現時に、必要なすべての時間をローカルタイムに再計算する。
- タイマーで「カウント」した時間を待つと同時に、非同期化、ブローカーとの切断、ローカルアローの再設定をチェックするのです。

 
Ihor Herasko:

この2つは異なるイベントハンドラです。OnCalculate()は新しい刻みで、OnTimer()はタイマー開始時に設定された時間でトリガーされます。

なるほど、OnTimer()でインジケータは動きますか?

 
PolarSeaman:

ありがとうございます。 あとは、ダニがいない状態での動作を確認する必要があります。

OnTimer()内に挿入する必要があります。しかし、やはり歴史には使えません。だから、すぐにiの代わりに0を入れなさい。

 
PolarSeaman:

なるほど、OnTimer()でインジケータは動きますか?

OnTimer()イベントは、インジケータで動作します。しかし、OnTimer()に全コードを入れるべきではありません。キャンドルの終了までの残り時間を追跡する役割を担う部分だけが存在するはずです。他のすべてはOnCalculate() で動作する必要があります。

 
Taras Slobodyanik:

チックになった瞬間に...

まあ...ダニが来なかったらどうする? ダニがいない状態で「スタート」する必要があります。

 
Ihor Herasko:

でも、やはり、ネタには使えませんね。

申し訳ないが、なぜできないのか理解できない。