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

 
FinEngineer: 2012.12.22 11:40:32 Pair_delta_RSI (EURGBP,M1) 'Pair_delta_RSI.mq5' の配列は範囲外 (92,37)です。
というエラーが表示されることがわかりました。
さらに、2つのエラーを気にしているようですね。"計算されたデータが不足しています"、"配列が 範囲外です "と表示されます。)しかし、2つ目のエラーについては、何度も強調しているのに、なぜか何も書いていない(92行目のコード例を出していない)ですね。
 
Yedelkin:

コードを 正しく挿入してください。

そこでうまくいったのが、その「データ不足を解消するためのコードの一部」です。そして、最初のティックが到着したとき、RSIのデータはまだターミナルによって計算されていないことを正しく報告しました。エラーメッセージが出るのが嫌な場合は、上記の ように、OnCalculate()だけでなく、OnInit()でも計算データの有無を確認するようにしてみてください。つまり、OnInit()で選択したテクニカル指標のデータ算出を待ち、指標のデータ算出が保証された時点でOnCalculate()でのティック処理に移行するようにしてください。

追加する。結局、チェックコードの一部を削除しても、計算されるインジケータのデータ量は増えません :)

OnInit関数にこのチェックを入れましたが、この関数では'rates_total'が何であるかわかりません...エラーが表示されます...'rates_total' - undeclared identifier... どうしたらいいですか?
 
Yedelkin:
また、2つのエラーも気になりますよね。"計算されたデータが不足しています"、"配列が範囲外です "と表示されました。しかし、2つ目のエラーについては、何度も強調しているのに、なぜか何も書いていませんね(92行目のコード例を出していません)。
int limit;
   if(prev_calculated==0)
      limit=0;
   else limit=prev_calculated-1;
//считаем индикатор дельта рси
   for(int i=limit;i<rates_total; i++)
      DeltaRSI_Buffer[i]=RSI1_Buffer[i]-RSI2_Buffer[i];
   return(rates_total);
92行目のこの辺りです...コードの断片です...どこかでエラーがあるはずです)
 
FinEngineer: このチェックをOnInit関数に挿入したのですが、この関数内で'rates_total'が何かわからず、エラーが出てしまいます...'rates_total' - undeclared identifier... どうしたらいいでしょうか?
BarsCalculated()関 数の例は、以前アドバイスしたとおりに処理しましたか?rates_total はありません。
 
FinEngineer 92行目のこの辺り...ここにコードの一部がある...どこかに間違いがある...ことがわかった)

なるほど。ライン上

DeltaRSI_Buffer[i]=RSI1_Buffer[i]-RSI2_Buffer[i];
は、アレイの外 側に出口があります。そして、出力はRSI1_Buffer[i]にあります。 ...まだ答えにくいのですが、配列の外には出力がないはずです。
 
こんにちは、皆さん...どなたか、次のコードがmql5でどのように見えるか教えてください。
for (int i=3; i<Bars; i++)
{
Up=iFractals(NULL, 0, MODE_UPPER, i); if (Up>0) break;
}
 
i999i:
こんにちは、皆さん...どなたか、次のコードがmql5でどのように見えるか教えてください。
for (int i=3; i<Bars; i++)
{
Up=iFractals(NULL, 0, MODE_UPPER, i); if (Up>0) break;
}

この 記事は、その一助となるものです。

double iFractals(string symbol, int timeframe, int mode, int shift) を次のように変更します。

double iFractalsMQL4(string symbol,
                     int tf,
                     int mode,
                     int shift)
  {
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   int handle=iFractals(symbol,timeframe);
   if(handle<0)
     {
      Print("Объект iFractals не создан: Ошибка ",GetLastError());
      return(-1);
     }
   else
      return(CopyBufferMQL4(handle,mode-1,shift));
  }

 
ストラテジーテスターについての質問:利益を生む取引の最大割合でパラメータのセットを選択する必要がありますが、どのようにすればよいですか?バランス+最小DD」という最適化 基準は多少なりとも適しているように思いますが、乗数としての利益は他のすべてをブロックしてしまいます......。
 
f2011:
ストラテジーテスターに関する質問:利益を生む取引の最大割合を持つパラメータのセットを選択する必要がありますが、どのようにすればよいですか?バランス+最小DD」は最適化の基準 として多少なりとも適していると思うのですが、乗数としての利益は他のすべてを無効にしてしまう...。

残高とプロフィットトレードの割合に何か関係があるのでしょうか?

記事があったと思うのですが、「取引ロボットを最適化するための独自の基準の作り方 site:mql5.com」でググってみてください。

 
R0MAN:

残高とプロフィットトレードの割合に何か関係があるのでしょうか?

記事があったと思うのですが、「取引ロボットの最適化基準を自作する方法 site:mql5.com」でググってみてください。


見つけました、ありがとうございます。

https://www.mql5.com/ru/articles/286

Создание собственных критериев оптимизации параметров эксперта
Создание собственных критериев оптимизации параметров эксперта
  • 2011.06.24
  • Dmitriy Skub
  • www.mql5.com
Терминал МetaTrader 5 дает новые возможности для оптимизации параметров создаваемых экспертов. Кроме уже имеющихся в тестере критериев оптимизации, разработчики получили инструмент для создания собственных критериев. Это открывает поистине безграничные возможности в тестировании и оптимизации экспертов. В статье рассматриваются практические способы построения таких критериев - как простых, так и достаточно сложных.
理由: