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

 
Leo59:

テスターのログに何かprint()が出ない。どうやるんですか?

以下は、Expert AdvisorのOnInit()のコードです。

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   SymbolSelect("EURJPY",true);
   Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
   SymbolSelect("USDJPY",true);
//---
   return(INIT_SUCCEEDED);
  }


そして、ブレークポイントを設定し(ステップ1)、ヒストリー上でテストを実行 します(ステップ2)。

OnInit()

で、テスターではこのような結果になりました。

2016.11.23 13:02:24.191 2016.06.13 00:00:00   OnInit, 2016.06.13 00:00
 

Vladimir Karputov:

次に、ブレークポイントを設定し(ステップ1)、ヒストリーテストを実行 する(ステップ2)。

不思議なことに、あなたが "2 "の数字で指しているこの青いボタンは、私の場合、アクティブではありません。MT4を使っているからでしょうか?
 
しかし、それにもかかわらず、そのようなことが書かれていれば


クライアント端末のストラテジーテスターでは、一部機能の操作に制限があります。

関数 Print() および PrintFormat()

EAパラメータの最適化時のパフォーマンス向上のため、関数Print()、PrintFormat()は実行されません。ただし、OnInit() ハンドラ内でこれらの関数を使用した場合は例外です。これにより、エラー発生時のエラー原因検索を容易にすることができます。


OnInit() ハンドラ 内の Print() 関数が通常通り動作しないのはなぜですか?

また、一般的に、最適化モードのinit()における他のユーザー定義関数について教えてください。
 
Leo59:
不思議なことに、あなたが "2 "で指した私の青いボタンはアクティブではありません。MT4を使っているからでしょうか?

そう、だから私はHISTORYでどんなEAでも自由にテストできるのです。例えば2016.06.20から2016.11.11までのタイムフレームを選び、静かに、ステップバイステップで、デバッグして変数の変化を観察することができますが、あなたはそんなことはできません。

では、サポートが終了した古い端末に居座り続ける価値はあるのだろうか。それとも、最新のMetaTrader 5を使うべきでしょうか?実は、MetaTrader 5にはすでにヘッジ機能が搭載されています。

 
Vladimir Karputov:

そう、だから私はHISTORYでどんなEAでも自由にテストできるのです。例えば2016.06.20から2016.11.11までのタイムフレームを選び、静かに、ステップバイステップで、デバッグして変数の変化を観察することができますが、あなたはそんなことはできません

では、サポートが終了した古い端末に居座り続ける価値はあるのだろうか。それとも、最新のMetaTrader 5を使うべきでしょうか?結局のところ、MetaTrader 5にはすでにヘッジがあります:MetaTrader 5の取引プラットフォームにはヘッジがあります

MT4でデバッグを行い、変数の変化を段階的に観察することができるのはなぜですか?私は何を間違えているのだろう?
 
Artyom Trishkin:
なぜ、MT4で、落ち着いて、一歩一歩、デバッグして、変数の変化を見ることができるのでしょうか?私は何を間違えているのだろう?
速読や意図的な読み飛ばしなど、何を間違えているのでしょうか?
 
Dear!!!!

実質的な質問です。

OnInit() ハンドラ内の Print() 関数が通常通り動作しないのはなぜですか?また、一般的に、最適化モードでのinit()の他のカスタム関数についてはどうでしょうか?

 
Leo59:
Dear!!!!

実質的な質問です。

OnInit() ハンドラ内の Print() 関数が通常通り動作しないのはなぜですか?また、一般的に、最適化モードでのinit()の他のカスタム関数についてはどうでしょうか?

全ては上記で説明した通りです。効いて効きまくった。一例を示しました。

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

初心者の方からの質問

ウラジミール・カルプトフ さん 2016.11.23 12:07

以下は、EAのOnInit()のコードです。

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   SymbolSelect("EURJPY",true);
   Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
   SymbolSelect("USDJPY",true);
//---
   return(INIT_SUCCEEDED);
  }


さらにブレークポイントを置いて(ステップ1)、ヒストリーのテストを開始 しました(ステップ2)。

OnInit()

そしてテスターでは、このような結果が得られました。

2016.11.23 13:02:24.191 2016.06.13 00:00:00   OnInit, 2016.06.13 00:00

 
Vladimir Karputov:

以上、すでに説明したとおりです。それが功を奏し、効果を発揮しているのです。そして、例を挙げました。


ウラジミールさん、あなたの例では、ブレークポイントを使って、ターミナル上のテスターからではなく、MetaEditorからテストを実行していますが、これは標準的なものではありません。

もう一度言います。

1.OnInit() ハンドラ内の Print() 関数が通常通り動作しないのはなぜですか?

2.init()内の他のユーザ関数は、最適化モードではどのように動作するのでしょうか?

 
Leo59:
ウラジミール、あなたの例では、ブレークポイントとMetaEditorからのテストの開始ではなく、端末のテスターからでは標準ではありません。

もう一度。

1.OnInit() ハンドラ内の Print() 関数が通常通り動作しないのはなぜですか?

2.init()内の他のユーザ関数は、最適化モードではどのように動作するのでしょうか?

端末の電源を入れたことがないような気がします。

Expert AdvisorのOnInit()のコードを以下に示します。

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   SymbolSelect("EURJPY",true);
   Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
   SymbolSelect("USDJPY",true);
//---
   return(INIT_SUCCEEDED);
  }

ステップ・バイ・ステップステップ1 - 端末からテスターを起動し(シングルパス)、履歴を可視化しながらテストする。

ステップ1

ストラテジーテスターでは、次のような結果が得られました。

ステップ2

理由: