エキスパート: 5_8 MACross - ページ 3

 
Shara1:

こんにちは、ウラジミール。あなたのExpert Advisorで買い、売りを別々にし、トレンドでドールを作ることは可能ですか?

ありがとうございます。

私はまだこのコードの編集をプラチナ化して いません。

 
Vladimir Karputov:

私はまだこのコードの編集を単純化していない。

ウラジミール、ヒントをください。テスターで実行した後、レポートではなぜかパラメータが逆になっています:mafastperiod-42とmaslowperiod-12です。実際には、速い方が遅い方より小さいはずです。回実行しましたが、2回ともこのような結果になりました。

ありがとうございました。

 
Shara1:

ウラジミール、ヒントをください。テスターで実行した後、レポートではなぜかパラメータが逆になっています:mafastperiod-42とmaslowperiod-12です。実際には、速い方が遅い方より小さいはずです。回実行しましたが、2回ともこのような結果でした。

ありがとう。

"速い"、"遅い"-これらは単なるラベルであり、パラメーターの言葉によるラベリングに過ぎない。しかし、結局のところ、すべてのパラメーターは数字なのだ。そして、遺伝的最適化をオンにして何千もの結果の中から検索するのだから、そのような意識の逆転を排除することはできない。)数字というのは、「遅い」とか「速い」とか、どう呼んでもいいんだ。

特別に「遅い」は「速い」以上にはならないとか、「速い」と同じにはならないとかいう制限をつけることもあるし、つけずに面白い結果になることもある。

 
Vladimir Karputov:

"速い"、"遅い"......これらはすべて、パラメーターを言葉でラベリングしたラベルにすぎない。しかし結局のところ、パラメーターはすべて数字なのだ。そして、遺伝的最適化のスイッチを入れて何千もの結果の中から検索するのだから、そのような意識の逆転は除外されない :) 。数値は、「遅い」とか「速い」とか、どう呼ぼうとどんな数値にもなり得る。

私は、「遅い」は「速い」と同じかそれ以上にはならない、というような禁止事項を設けることもあるし、設けずに面白い結果を得ることもある。

このEAでそのような禁止を設定するにはどうしたらよいでしょうか?

ありがとうございました。

 
Shara1:

そして、このEAにそのような禁止事項を設けるにはどうすればいいのか?

ありがとうございます。

OnInit()に2つのパラメーターの比較を書きます。条件が満たされない場合、エラーでEAをアンロードします。

 
Vladimir Karputov:

OnInit()に2つのパラメーターの比較を書く。条件が満たされない場合、エラーでEAをアンロードします。

ありがとうございます。

私には今のところ実現不可能です。このコードを編集する 予定はないのですか?

 
ウラジミール、あなたのこのEA:https://www.mql5.com/ja/code/19578「遅い」は「速い」以上にはならない、または等しくならないといった禁止事項が あるのか教えてください。なければ、それを見ることができるリンクを教えてください。
ma-shift Puria method
ma-shift Puria method
  • 投票: 14
  • 2017.12.13
  • Vladimir Karputov
  • www.mql5.com
В основу советника положен метод Пуриа с небольшими вольностями. Используется сигнал не пересечения быстрой MA медленной, а их движение в одну сторону, подтверждение при пересечении MACD своей нулевой линии и крутизной движения быстрой MA, выраженной в количестве пипсов на тик (параметр Shift (vertically) between MA Fast and MA Slow). Обычный...
 
Shara1:
ウラジミール、あなたのこのEA:https://www.mql5.com/ja/code/19578「遅い」は「速い」以上にはならない、または等しくならないといった禁止事項が あるのか教えてください。なければ、それを見ることができるリンクを教えてください。

このEAにはそのような保護機能があります:

//+------------------------------------------------------------------+
//| エキスパート初期化関数|
//+------------------------------------------------------------------+
int OnInit()
  {
   if(InpTrailingStop>0 && InpFractalTrailing)
     {
      Print("If we use \"Fractal trailing\" - we do not use \"Trailing stop\"!");
      Print("If we use \"Trailing stop\" - we do not use fractal \"Fractal trailing\"!");
      return(INIT_PARAMETERS_INCORRECT);
     }

ここでは、パラメータがゼロより大きいかどうかをチェックし、フラグがあります。

 

しかし、EMAクロスコンテストヘッジコードでは、2つの移動平均インディケータの2つの平均期間の保護がすでにあります:

   if(InpShort_ma_period>=InpLong_ma_period)
     {
      Print("\"MA short: averaging period\" can not be greater and equal to \"MA long: averaging period\"");
      return(INIT_PARAMETERS_INCORRECT);
     }
 
Vladimir Karputov:

しかし、EMAクロスコンテストヘッジコードでは、2つの移動平均インディケータの2つの平均期間の保護がすでにあります:

つまり、この行の後に必要なのは -int OnInit()

を挿入します。

 if(InpShort_ma_period>=InpLong_ma_period)
     {
      Print("\"MA short: averaging period\" can not be greater and equal to \"MA long: averaging period\"");
      return(INIT_PARAMETERS_INCORRECT);
     }

このようになります。

//+------------------------------------------------------------------+
//| エキスパート初期化関数|
//+------------------------------------------------------------------+
int OnInit()
  {
 if(InpShort_ma_period>=InpLong_ma_period)
     {
      Print("\"MA short: averaging period\" can not be greater and equal to \"MA long: averaging period\"");
      return(INIT_PARAMETERS_INCORRECT);
     }

ありがとうございます。