参議院の実施について議論。 - ページ 6

 
Ivan_Invanov:
こんにちは。このEAのマーケットエントリーシグナルは 何なのか、コードのどこにあるのか、教えてください。

カスタムインジケータのシグナルモジュールをライン接続し

//--- available signals
#include <Expert\Signal\SignalMA.mqh>


このインジケーターの売買シグナルを確認 することができます。


この時点で十分な情報があり、それを消化する必要があります。また、以下の記事もおすすめです。

Документация по MQL5: Стандартная библиотека / Модули стратегий / Модули торговых сигналов / Сигналы индикатора Moving Average
Документация по MQL5: Стандартная библиотека / Модули стратегий / Модули торговых сигналов / Сигналы индикатора Moving Average
  • www.mql5.com
Цена пересекла индикатор сверху вниз(цена Open анализируемого бара выше линии индикатора, а цена Close - ниже), но индикатор растет (слабый сигнал на отбой от линии индикатора). Цена пересекла индикатор нижней тенью (цены Open и Close анализируемого бара выше линии индикатора, а цена Low ниже) и индикатор растет (сигнал на отбой от линии...
 

みんな、ここで質問

パラメータ最適化の制約が重ならないようにするには、どのような方法が正しいのでしょうか?不要なオーバーシュートが多すぎるのです。

input  int                Profit_Lev1        = 5;           // |     1-я фиксация прибыли 
sinput string _p1="";//---
input  int                Profit_Lev2        = 7;           // |     2-я фиксация прибыли 
sinput string _p2="";//---
input  int                Profit_Lev3        = 10;          // |     3-я фиксация прибыли


利益確定は3段階あり、1回目は2回目、3回目より高くてはならず、2回目は3回目より高くてはならない

//+------------------------------------------------------------------+
//| Проверяет внешние параметры                                      |
//+------------------------------------------------------------------+
bool CheckInputParameters()
  {
     if(Profit_Lev1 >= Profit_Lev2  || Profit_Lev1 >= Profit_Lev3 || Profit_Lev2 >= Profit_Lev3)
       {
         Print(_Symbol,
               ": 1-й уровень профита ("+IntegerToString(Profit_Lev1)+") "
               "должен быть больше 2-го и 3-го уровня профита ("+IntegerToString(Profit_Lev2)+"   "+IntegerToString(Profit_Lev3)+")!");
         return(false);
        }                     
//--- Параметры корректны
   return(true);
  }

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  { 


//--- Проверим внешние параметры
   if(!CheckInputParameters())
      return(INIT_PARAMETERS_INCORRECT);


//--- Инициализаия прошла успешно
   return(INIT_SUCCEEDED);
  }


最適化を開始する

ログにエラーがたくさん出るようになったので、もしかしたらロボットをリセットするようなことがあるかもしれない


ただ、ロボットは20分で最適化が止まりますが、制限を指定せず、1回目が2回目より高くてもいいというところで、成り行きに任せると、1日以上最適化がフル稼働しているということです。

TPのレベルごとにアルゴリズムのポイントやシフトという形で他のロジックがあるので、一つずつ行って飛び越えないようにしてほしいです。

 
Konstantin Seredkin:

みんな、ここで質問

パラメータ最適化の制約が重ならないようにするには、どのような方法が正しいのでしょうか?不要なオーバーシュートが多すぎます。


利益確定は3段階あり、1回目は2回目、3回目より高くてはならず、2回目は3回目より高くてはならない。

利益レベル」ではなく、「ベースレベル」「ベースレベルよりの2レベル」「2レベルよりの3レベル」を導入する。

それだけです。フルオーバーシュートを行います。

もし、3つのレベルがある一定の範囲に収まるようにしたい場合は、変数「範囲幅」と2つの「レベル間の境界」を導入する。ここで、最初の境界は範囲の何分の1か、2番目の境界は範囲の残りの部分(最初の境界の後)の何分の1かである。

私ならこうする...。

 
Georgiy Merts:

利益水準」ではなく、「基本水準」「基本水準を上回る第2水準」「第2水準を上回る第3水準」の3つを導入する。

それだけです。フルオーバーシュートを行います。

もし、3つのレベルがある一定の範囲に収まるようにしたい場合は、変数「範囲幅」と2つの「レベル間の境界」を導入する。ここで、最初の境界は範囲の何分の1か、2番目の境界は範囲の残りの部分(最初の境界の後)の何分の1かである。

私ならこうする...。

1段目を2段目と3段目で確認しても、3段目を1段目と2段目で確認しても、意味は同じなので違いはないのでしょうか。
 
Konstantin Seredkin:
だから、和集合の場所の変化から、私は2番目と3番目の最初のレベルをチェックすること、その3番目のレベルは、最初と2番目のチェックと、同じ意味の違いになります。

1段目が2段目より大きい場合などに無効なパラメータがありますが、提案バージョンではこれらのチェックがなくなり、すべてのセットが正しくなります。

 
Konstantin Seredkin:
では、1段目を2段目と3段目で確認しても、3段目を1段目と2段目で確認しても、意味は同じなのでしょうか?

問題は、「重ならない」ことをどう超えるか、というようなことでした。例えば1段目が10%の範囲であった場合 - 残りの90%で計測されるため、2段目が登ることはありえないのです。

 
Georgiy Merts:

問題は、「重ならない」ことをどう超えるか、というようなことでした。例えば1段目が10%の範囲だとしたら--残りの90%で計測するのだから、2段目がそこに登ってくることはありえない。

まだ理解できていない。

静的変数だけでなく、外部変数に3つのテイクプロフィットを 設定しました。


ロボットは3ロットを取引する

100pipsで1ロット決済したい=これが最初の利益水準です。

200ロット以上=2段階目の利益

300ロット以上=3段階目の利益


しかし、最初のレベルでは、ロボットはBreakevenにストップロスを設定します。

2段階目では、このストップを最初の利益水準に移行する。

Breakevenがなければ、たとえ1番目のレベルが300、2番目のレベルが50ポイント、3番目のレベルが150であっても、オプティマイザーがこれらのレベルをどのように選択するかは重要ではありません。

しかし、Breakeven法では正確な順序が必要なので、オプティマイザが次のように選択するのは避けたい。

300 50 150

50 300 150

など

ただ、普通に行きたいんです。

50 100 200

150 160 170

など

入力されたパラメータが正しいかどうかのチェック

//+------------------------------------------------------------------+
//| Проверяет внешние параметры                                      |
//+------------------------------------------------------------------+
bool CheckInputParameters()
  {
     if(Profit_Lev1 >= Profit_Lev2  || Profit_Lev1 >= Profit_Lev3 || Profit_Lev2 >= Profit_Lev3)
       {
         Print(_Symbol,
               ": 1-й уровень профита ("+IntegerToString(Profit_Lev1)+") "
               "должен быть больше 2-го и 3-го уровня профита ("+IntegerToString(Profit_Lev2)+"   "+IntegerToString(Profit_Lev3)+")!");
         return(false);
        }                     
//--- Параметры корректны
   return(true);
  }

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  { 


//--- Проверим внешние параметры
   if(!CheckInputParameters())
      return(INIT_PARAMETERS_INCORRECT);


//--- Инициализаия прошла успешно
   return(INIT_SUCCEEDED);
  }

最適化の際、大量のランでスキップがあったと書き込みがあり、適用できない設定をリセットしてくれるのは良いのですが、オプティマイザーが数分動作しただけでシャットダウンしてしまいます。

このチェックは、何か別の方法でプレイしなければならないのでしょう。

あなたの提案することは、例を挙げないと理解できない。

 
Konstantin Seredkin:

まだ理解できていない。

静的変数だけでなく、外部変数に設定した3つの利益を取り 込むための


ロボットが3ロット取引している

100pipsで1ロット決済したい=これが最初の利益水準です。

200ロット以上=2段階目の利益

300ロット以上=3段階目の利益


しかし、最初のレベルでは、ロボットはBreakevenにストップロスを設定します。

2段階目では、このストップを最初の利益水準に移行する。

Breakevenがなければ、たとえ1番目のレベルが300、2番目のレベルが50ポイント、3番目のレベルが150であっても、オプティマイザーがこれらのレベルをどのように選択するかは重要ではありません。

しかし、Breakeven法では正確な順序が必要なので、オプティマイザが次のように選択するのは避けたい。

300 50 150

50 300 150

など

ただ、普通に行きたいんです。

50 100 200

150 160 170

など

入力されたパラメータが正しいかどうかのチェック

最適化の際、大量のランでスキップがあったと書き込みがあり、適用できない設定をリセットしてくれるのは良いのですが、オプティマイザーが数分動作しただけでシャットダウンしてしまいます。

このチェックは、何か別の方法でプレイしなければならないのでしょう。

例がないと、何を提案しているのかがわからない。

入力では、レベルそのものを設定するのではなく、レベル間の距離を設定する。

input uint firstLevel=20 ; // пунктов от цены до первого ТП

input uint secondDistance=30; // пунктов от первого ТП до второго

input uint thirdDistance=50; // пунктов от второго ТП до конечного

そうすると、オプティマイザーは物理的にレベルスワップができなくなります

 

こんにちは、yandex cloud上のvmマシンにmt4で自動売買するEAをリモートでセットアップしている人がいます。もし私が間違っていなければ、私のハードディスクにシーピー

P.s. 鈍重な言葉で申し訳ない、私はこれらの専門用語や本質を理解していない。

 

こんにちは。

EAを書く ことにしました。この点については、EAが注文を開く際に使用するシグナルを変更する必要があります。例えば、DeMarkerというインディケータが、下から上へ0.3(買い)、上から下へ0.7(売り)を越えたときのみ、Expert Advisorが注文を出すようにしたいのですが。SignalDeMarker.mqh(価格が上昇することに「投票する」、価格が下落することに「投票する」というコメントがあるコード部分)を修正 する必要があると理解してよいでしょうか。