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

 
回答してくださった皆さん、本当にありがとうございました!!皆さんのオプションを試してみますね。
 
Alexey Viktorov:

このエニュメレーションを行うと

のような書き方をしてみてください。

あなたはいつも通り、私の問題を解決する最善の方法を提示してくれました

 
Alexey Viktorov:

なぜint型に変換するのか?mql5ではH1から、列挙値が 分数と一致しないため。そして、逆に多くの混乱を招くことになると私は考えています。

あなたの方法もうまくいきそうです! ありがとうございます。

 
Alexey Viktorov:

それで?ENUM_TIMEFRAMES列挙で何か違うものがあるのでしょうか?それとも、メモリが 足りなくなるのが怖いのでしょうか?そんなことで悩むなんて...。


ps;ああ、なんとタイピングが遅いのでしょう...))))。私が1行打っている間に、Kira27さんがこんなに打ってくれて......。 そして何か、これがmql4で使われるんじゃないかと疑っています。

IN MQL5 )))

 
以下のスクリプトを試してみてください、うまくいきます))
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   enum frame1 // перечисление именованных констант
     {
      m1  = (int)PERIOD_M1,
      m5  = (int)PERIOD_M5,
      m15 = (int)PERIOD_M15,
      m30 = (int)PERIOD_M30,
      h1  = (int)PERIOD_H1,
      h4  = (int)PERIOD_H4,
      d1  = (int)PERIOD_D1,
      W1  = (int)PERIOD_W1,
      MN1 = (int)PERIOD_MN1
     };
   double T = iHigh(NULL,(ENUM_TIMEFRAMES) d1,0);

   Alert("Frame= ", (ENUM_TIMEFRAMES)  d1," iHigh= ",T);

  }

その結果、次のようになります。 分単位の日のint値は1440ですが、動作はhihが正しいです。

 
Alexey Viktorov:

それで?ENUM_TIMEFRAMES列挙で何か違うものがあるのでしょうか?それとも、メモリが 足りなくなるのが怖いのでしょうか?そんなことで悩むなんて...。


ps; あ、なんかタイピングが遅い...))))私が一行打っている間にKira27さんがwow......と打った。 そして何か、これはmql4で使われるんじゃないかと思う。

あなたのやり方でも同じ結果になります)))

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   enum frame1 // перечисление именованных констант
     {
      m1  = PERIOD_M1,
      m5  = PERIOD_M5,
      m15 = PERIOD_M15,
      m30 = PERIOD_M30,
      h1  = PERIOD_H1,
      h4  = PERIOD_H4,
      d1  = PERIOD_D1,
      W1  = PERIOD_W1,
      MN1 = PERIOD_MN1
     };
 
   double T = iHigh(NULL,(ENUM_TIMEFRAMES) d1,0);
   
   Alert("Frame= ", (ENUM_TIMEFRAMES)  d1," iHigh= ",T);
  }

 
Kira27:

あなたのやり方でも同じ結果になります)))

疑わなかった :-)))

 
こんにちは。

MQL4で書かれた関数をMQL5で置き換えるのを手伝ってください。

double iHig(datetime ds, datetime de)
  {
   //Alert(iBarShift(Symbol(),PERIOD_CURRENT,ds),"  ",ds);
   return
      High[
         iHighest(Symbol(),PERIOD_CURRENT,MODE_HIGH,
                  iBarShift(Symbol(),PERIOD_CURRENT,ds)-iBarShift(Symbol(),PERIOD_CURRENT,de)+1,
                  iBarShift(Symbol(),PERIOD_CURRENT,de)
                 )
          ];
  }

問題は、MQL5には定義済みの変数 Highがなく、この変数をどのように、あるいは何に置き換えたらいいのかがわからないことです。

 
Sprut 185:
みなさん、こんにちは。

MQL4で書かれた関数をMQL5で置き換えるのを手伝ってください。

問題は、MQL5には定義済みの変数 Highがなく、この変数をどのように、あるいは何に置き換えたらいいのかがわからないことです。

MQL5には時系列がある

iHigh,

iLowです。

など

ヘルプセクション: 時系列データおよび指標データへのアクセス/.
 
Kira27:

MQL5には時系列がある

iHigh,

iLowです。

など

ヘルプセクション: 時系列データおよび指標データへのアクセス/.
情報ありがとうございます、最初見つけられませんでした......。この変数は名前が違うだけだと判明しました。
理由: