エラー、バグ、質問 - ページ 2931

 

10では、端末のメモリ消費量が多いことが示されています。Windows Serverでは、もっと少なくなります。

どうやら、メモリ消費量の計算はOSに依存するようです。

 
fxsaber:

知っていても、頭の中で全レイヤーをもう一度呼び起こさなければならないような機能です。

ここで 私は、自己申告による存在判定を行った。TFを切り替えても効果があるようでした。

あまりピンと来なかったのですが、このセリフから判断すると

    const int Total = ::IndicatorParameters(handle, Type, Params);
    ::IndicatorRelease(handle);

    uchar Bytes[];

    for (int i = 1; i < Total; i++)
    {
      ::ArrayCopy(Bytes, _R(Params[i].double_value).Bytes, ::ArraySize(Bytes));
      ::ArrayCopy(Bytes, _R(Params[i].integer_value).Bytes, ::ArraySize(Bytes));
      ::ArrayCopy(Bytes, _R(Params[i].string_value).Bytes, ::ArraySize(Bytes));
    }

インジケータ名(0番目のパラメータ)がシグネチャの作成に使用されないのは非常に奇妙である。

 
fxsaber:

10では、端末のメモリ消費量が多いことが示されています。Windows Serverでは、もっと少なくなります。

どうやらメモリ消費量の計算はOSに依存するようです。

むしろ、サーバー軸でのメモリ確保が最適です。
 
Stanislav Korotky:

あまりピンと来なかったのですが、このセリフから判断すると

の場合、インジケータ名(パラメータ0)はシグネチャの作成に使用されないので、非常に奇妙です。

return("::" + (string)::ChartID() + (string)INIT_SYNC::crc64(Bytes) + ::MQLInfoString(MQL_PROGRAM_NAME));
 
fxsaber:

はい、遭遇したことがあります。Validateは最初のパスを開始し、次のパスは開始しない。スタートボタンで起動しない。

デバッグ済み - 実行されます。リリースでデバッグを行い、全てうまくいっているはずなのですが、うまくいきません。


そこで、特別にデバッグ版を立ち上げてみました。スタートボタンも問題なく押せます。

バグの原因がわからなかった。

へぇー最近この回答を見たんだ。

私のローカルエージェントが起動しないのだと理解しているのですが、なぜわからないのでしょうか。最新バージョンのターミナルでは、より良く起動するようです。

 
fxsaber:

10では、端末のメモリ消費量が多いことが示されています。Windows Serverでは、もっと少なくなります。

どうやら、消費メモリの計算はOSに依存するようです。

Windows Serverでは、どうもサーバーがおかしいような気がしています。

正確には、グラフィック設定が 常にリセットされ、メモリ不足に左右される。同時に、ディスパッチャではすべてが正常のようです。vpcが限界なのか、mt5がもっと貪欲なのか、どちらかです。

 
Print(PERIOD_H4);

16388という 結果になる。逆の手順で、値16388を 代入して、ピリオド名PERIOD_H 4の文字列を得るにはどうしたらよいでしょうか。組み込みの関数があるのか、それとも自分でコンバータを書いた方がいいのか?ビルトイン関数がない場合、カスタム関数はどのようなものでしょうか?キーと値の一致のような書き方は必要でしょうか?

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Периоды графиков - Константы графиков - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
x572intraday:

16388という 結果になる。逆の手順で、値16388を 代入して、ピリオド名PERIOD_H 4の文字列を得るにはどうしたらよいでしょうか。組み込みの関数があるのか、それとも自分でコンバータを書いた方がいいのか?ビルトイン関数がない場合、カスタム関数はどのようなものでしょうか?キーと値の一致のような書き方は必要でしょうか?

Print(EnumToString((ENUM_TIMEFRAMES)16388));
 
fxsaber
Print(EnumToString((ENUM_TIMEFRAMES)16388));

あることがわかった。それは安心ですね。ありがとうございます。

 

インジケータ設定画面のメニューから、両方のタイムフレームとその数を選択できるようにしようとしています。

enum PERIOD
  {
   NO_PERIOD=0,      // NOT USED
   P1=PERIOD_H1,     // H1 
   P2=PERIOD_H2,     // H2 
   P3=PERIOD_H4,     // H4 
  };

input PERIOD TIMEFRAME_1=P1;
input PERIOD TIMEFRAME_2=P2;
input PERIOD TIMEFRAME_3=P3;

ENUM_TIMEFRAMES PArray[3]={P1,P2,P3};

で、選択された期間がそのままPArrayに行くようにしたいのです。しかし、上記の例から、ユーザーが入力した値ではなく、プログラムであらかじめ設定した値を配列に代入していることがわかりました。また、コンパイラは警告を発生させます。

implicit conversion from 'enum PERIOD' to 'enum ENUM_TIMEFRAMES'        test.mq5        23      28
   'ENUM_TIMEFRAMES::PERIOD_H1' will be used instead of 'PERIOD::P1'    test.mq5        23      28
implicit conversion from 'enum PERIOD' to 'enum ENUM_TIMEFRAMES'        test.mq5        23      31
   'ENUM_TIMEFRAMES::PERIOD_H2' will be used instead of 'PERIOD::P2'    test.mq5        23      31
implicit conversion from 'enum PERIOD' to 'enum ENUM_TIMEFRAMES'        test.mq5        23      34
   'ENUM_TIMEFRAMES::PERIOD_H4' will be used instead of 'PERIOD::P3'    test.mq5        23      34

最後の行を入れ替えようとすると

ENUM_TIMEFRAMES PArray[3]={TIMEFRAME_1,TIMEFRAME_2,TIMEFRAME_3};

の場合、コンパイラは完全にエラーを発生させます。

'TIMEFRAME_1' - constant expression required    test.mq5        23      28
'TIMEFRAME_2' - constant expression required    test.mq5        23      40
'TIMEFRAME_3' - constant expression required    test.mq5        23      52

また、NO_PERIOD=0はPERIOD_CURRENTを 意味し、それは必要なく、falseやEMPTY_VALUEのようなものが必要ですが、全く合いませんね。

どうすれば直るのか?

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Периоды графиков - Константы графиков - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5