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

 
現在のタイムフレームの次のバーオープン時刻を 取得するにはどうすればよいですか?試行錯誤
Time[1]+2*PERIOD_CURRENTが、がらくたを与える...。
私が理解する限り、Timeは1970年から分単位で時間を与えますか?
 
RomanRott:
現在のタイムフレームの次のバーの開始時刻を 取得する方法を教えてください。試行錯誤
Time[1]+2*PERIOD_CURRENTが、がらくたを与える...。
私が理解する限り、Timeは1970年から分単位で時間を与えるのでしょうか?

数秒後には、この知識をもとに、数式を修正することができます。

 
Aleksey Vyazmikin:

数秒後に、この知識で、数式を修正します。

くそ、PERIOD_でって ことなんだけど...。一行で済まない
 
RomanRott:
現在のタイムフレームの次のバーの開始時刻を 取得する方法を教えてください。試行錯誤
Time[1]+2*PERIOD_CURRENTが、がらくたを与える...。
私が理解する限り、Timeは1970年から分単位で時間を与えるのでしょうか?

Alert(Time[0]+_Period*60);PERIOD_CURRENTは 0、ゼロ、ブランク、使用チャートのタイムフレームを表す表記です。

 
RomanRott:
現在のタイムフレームの次のバーオープン時刻を 取得するにはどうすればよいですか?するようにしました。
Time[1]+2*PERIOD_CURRENTが、がらくたを与える...。
私が理解する限り、Timeは1970年から分単位で時間を与えますか?
Time[0]+PeriodSeconds()です。
 
RomanRott:
くそ、PERIOD_でってことなんだけど...。一行で済まない

  datetime time0 = Time[0]; 
   datetime time1 = Time[0]+PeriodSeconds(0)*1;   //1 = нужное кол. баров в будущее
   
  Comment("Время открытия тек. бара = ",time0,
  "\n","Время открытия след. бара(в будущее) = ",time1 );

以上


お先にどうぞ

 
Artyom Trishkin:
Time[0]+PeriodSeconds()です。
はい、ありがとうございます
 
RomanRott:
はい、ありがとうございます

どういたしまして。

マルチプラットフォームのコード

void OnTick()
  {
   ENUM_TIMEFRAMES timeframe=PERIOD_CURRENT;    // Таймфрейм графика (текущий, можно задать нужный)
   string   symbol=Symbol();                    // Символ графика
   datetime time_open_curr=0;                   // Время открытия текущего бара
   datetime time_open_next=0;                   // Время открытия следующего бара
   int      number_next_bar=1;                  // На сколько баров в будущее рассчитывать время
   //---
   time_open_curr=TimeOpen(symbol,timeframe,0); // Здесь 0 - текущий бар заданного графика
   //--- Если получили время текущего бара, рассчитаем время следующего
   if(time_open_curr>0)
      time_open_next=time_open_curr+PeriodSeconds(timeframe)*number_next_bar;
  }
//+------------------------------------------------------------------+
//| Возвращает время открытия бара shift                             |
//| периода графика timeframe                                        |
//| на символе symbol_name                                           |
//+------------------------------------------------------------------+
datetime TimeOpen(string symbol_name,ENUM_TIMEFRAMES timeframe,int shift)
  {
   datetime array[]={0};
   if(CopyTime(symbol_name,timeframe,shift,1,array)==1) return array[0];
   return 0;
  }
//+------------------------------------------------------------------+
 

可変長のパラメータを持つ関数を書くにはどうしたらいいですか?

 
RomanRott:

可変長のパラメータを持つ関数を書くにはどうしたらいいですか?

例えば?