MQL5 Wizardで生成されたExpert Advisorで開く、閉じる。 - ページ 6

 
Andy:

M1のEURUSD; ティックではなくバーで; 18:00MSKからテスト; (スクリーンショットを挿入できません)。


一点一点、丁寧にお読みください。

ティック生成モード、テスト日: から ...へ。テスターからの回線名と同時にログの入力の画面。一般的には、詳細な説明。


 
Andy:

スクリーンショット以外はすべて書かれています(私の言葉を信じてください)。


上記をお読みください。EVERYTHINGを書かれるまでは、返信はいたしません。

 
Andy:

なぜ私の投稿を削除したのでしょうか?

EURUSD on M1; not tick but by bars; test from 18:00 MSC.

ここでは、18:15の弱気ローソク足がロングライン上にあり、ログではショートになって います。



ファイルを更新しました("0 "のパターンも出力されるようになりました)。


追加:Strategy Testerの 使用 - ターミナルを一度に拷問する必要はありません :)

ファイル:
 
Andy:

なかったのですか、どのようなものがあったのですか?


CSignalMA::LongCondition と CSignalMA::ShortCondition 関数のファイルを開いてみて ください。そして、そろそろストーブの時間なので失礼します。

 
Andy:

行には正しく(long)書かれていますが、ログにはshort(pattern1)と書かれています。


以下の情報をご提供ください。

  1. 取引口座の種類:ネッティングまたはヘッジ
  2. ストラテジーテスターの スクリーンショット「設定」「パラメータ」タブ
  3. 線は正しい(長い)が、ログは短い(パターン1)」とはどういうことか、具体的に記述してください。

 
Andy:
ネッティング口座とヘッジ口座の場合、デフォルトの設定は正しいのですが(スクリーンショットを作成する必要はありません)、パッチ1を実行する場合、ラインはすべてを正しく(ロング)書き込みますが、実際にはエキスパートアドバイザーのログはショートで、逆もまた然りです。ファイルを実行すれば、ターミナルとテスターで同じになるはずですので、ご自身で確認してみてください。それから、この線はどうやって消すのですか?

位置が逆になったとき、つまりその瞬間に2本の縦線が できるのですが、これを確認すると、最後の2本の線が同じ時間になることがわかります。視覚化するために、縦線をオブジェクト「OBJ_ARROW_UP」「OBJ_ARROW_DOWN」に置き換えてみました。

ステップ1

и

ステップ2

2枚目のスクリーンショットでわかるように、2つのシグナルがあり、買いシグナルが当選したことがわかります(売りポジションがクローズされ、買いポジションがオープンされました)。

EAを生成する際に、「インジケータ『Moving Average』+OBJ_ARROW_UP_DOWN のシグナル」というモジュールを探します。


ファイル:
 
Andy:

そして、パターン1では、ローソク足が強気であるにもかかわらず、指標が下落している(指標ラインからの 反発が弱い)ので、売りシグナルが出るはずです。

この2つのシグナルは、1つは1(売り)から、もう1つはどこ(買い)からのもので、どのパターンからのものでしょうか?


あとは、signalsモジュールとCExrertクラスの両方の内部構造を見るために、ログに何を書き込むか考えたいと思います。

 
Andy:

そして、パターン1では、ローソク足が強気であるにもかかわらず、指標が下落している(指標ラインからの 反発が弱い)ので、売りシグナルが出るはずです。

この2つのシグナルは、1つは1(売り)から、もう1つはどこ(買い)からのもので、どのパターンからのものでしょうか?


ウラジーミル・カルプトフ

今後は、signalsモジュールとCExrertクラスの両方の内部動作を示すために、ログに他に何を書くか考えてみます。


信号モジュールバージョン1.001 -信号の方向パターン番号信号強度、計算式を出力(印刷)するようになりました。

   double            DiffMA(int ind)                     { return(MA(ind)-MA(ind+1));  }
   double            DiffOpenMA(int ind)                 { return(Open(ind)-MA(ind));  }
   double            DiffHighMA(int ind)                 { return(High(ind)-MA(ind));  }
   double            DiffLowMA(int ind)                  { return(Low(ind)-MA(ind));   }
   double            DiffCloseMA(int ind)                { return(Close(ind)-MA(ind)); }

出力例です。

2017.01.13 00:00:18   ShortCondition: m_pattern_0 12247, result 80, Open(1.06259), Close(1.06229), MA(1.06475)
***
2017.01.13 17:00:00   LongCondition: m_pattern_0 26715, result 80, Open(1.06451), Close(1.06449), MA(1.06302)
2017.01.13 17:00:00   LongCondition: m_pattern_3 5648, result 60, Low(1.06199)-MA(1.06302)<0.0
ファイル:
 
Andy:
これから新しいファイルを試しますが、前のファイルでは-弱気ローソクが上昇インジケータを横切る状態で、パターン0からの売りと1からの買いの2シグナルで、売りトリガとなりました。

そのような質問はお受けできません。詳細な説明をする:STRATEGY TESTERのスクリーンショット:「設定」タブ、「パラメータ」タブ。不一致を発見した日付:TESTERログファイルからの抜粋、目視 テストの瞬間のスクリーンショット。


これらの必要なデータを提供しない限り、これ以上の議論は無意味であり、私か他の誰かがあなたの状況を明確にレビューできなければならないからです。

 
Andy:

また、なぜ一度に2つのパターンがトリガーされるのでしょうか(スクリーンショットでも)?


これは人生であり、誰も確率論(M1のような非常に小さな時間枠では、バーの価格と指標の値はお互いに非常に近いです - ので、いくつかのパターンが同時に検出されたときの状況が可能である)をキャンセルしたからです。H1でストラテジーテスターを 実行すると、状況がより明確になります。