MQL5 Wizard - 日中時間フィルターを使用した2つのEMAのクロスオーバーに基づくトレードシグナル:
著者MetaQuotes Software Corp.
良い記事ですが、いくつか説明をお願いします:
**** 0:00から5:59までの間だけポジションをオープンすること。BadHoursOfDay=16777152=1111111111111111000000bの値を設定することで可能です。 その他の取引時間はすべて「悪い」ので、6:00からその日の終わりまで新規ポジションのオープンを禁止する方が良いでしょう。****
詳細が必要です:
- この「16777152」という値をどのように計算/定義するか、他の「始値/終値」または「始値」のみに定義するか。
- 複数のITFに対してどのように決定を下すか:例えば、TOKYO/LONDON/NYの開場時間など。
ここでいくつかの詳細が必要である:
- この「16777152」という値をどのように計算/定義するのか、他の「オープニング/クロージング」または「オープニング」時間のみに対してどのように定義するのか?
この例では、新規ポジションのオープンに対するフィルターが実装されています。(SL/TPによってクローズされることを想定しています)。
16777152のバイナリ表現です:

この例では、時間によるフィルターを使用し、"悪い "時間は対応するビット=1でマークされています。同じことがBadMinutesOfHourでもできます。
バイナリ値の変換にはcalc.exeを使うことができる:

- 複数のITFをどのように判断するか:TOKYO/LONDON/NYの営業時間?
3つの別々のフィルター(TOKYO,LONDON,NY)を使いたい場合は、CSignalITFクラスのインスタンス(我々の場合はm_time_filterが1つだけ)をシグナル・クラスに追加します。
ストラテジーテスターの時間フィルターはどのように最適化しますか?
最適な時間フィルターは、Strategy Testerの BadHoursOfDay入力パラメーターの最適化を使って見つけることができます。パラメーターの開始値と終了値を指定すれば、遺伝的最適化アルゴリズムを使って最適な時間帯を見つけてくれます。
2つ目の方法は、損失取引の時間を手動でチェックし、BadHoursOfDayパラメータのビットで「マーク」することです。
実際、これによって戦略を調整し、取引アイデアの「論理的」な理由を考慮することができます。例えば、オシレーターは横ばいの方がうまく機能する。横ばいの理由は、ニュースの不在、セッション/通貨ペアの特性などである。
この例では、新規ポジションオープン時のフィルターを実装しています。(SL/TPによってクローズされることが前提)。
16777152のバイナリ表現は次のようになります:
この例では、時間によるフィルターを使用し、"悪い "時間には対応するビット=1が付けられています。同じことがBadMinutesOfHourでもできます。
calc.exeを使ってバイナリ値を変換することができます:
3つの別々のフィルター(TOKYO,LONDON,NY)を使いたい場合は、シグナル・クラスにCSignalITFクラスのインスタンス(我々の場合はm_time_filterが1つだけ)を追加します。
このハウツーには感謝しますが、なんという頭痛の種でしょう :( MT4でできるように、単純にStartHour/EndHour/StartMinute/EndMinuteのような、もっとユーザーフレンドリーなものを使うことはできないのでしょうか?なぜこのような複雑なバイナリーモードを使うのですか?
パラメータのバイナリ表示にはいくつかの重要な利点があります。例えば、Strategy Testerでパラメータ空間を探索することができます(0から開始、16777215から終了、ステップ1)。試してみてください。
最適な時間帯が見つかったら、日数を調べることができます。ただし、時間フィルターは低いタイムフレーム(H1以下)に有効であることに注意してください。
より「フレンドリー」な方法が必要な場合は、独自の売買シグナルクラスを作成することができます(MQL5 Wizard: How to Create a Module of Trading Signalsを 参照)。
パラメータのバイナリ表現には、いくつかの重要な利点がある。例えば、Strategy Testerでパラメータ空間を探索することができます(0から開始、16777215を終了、ステップ1)。試してみてください。
最適な時間帯を見つけたら、日数を調べることができます。ただし、時間フィルターは低いタイムフレーム(H1以下)に有効であることに注意してください。
もっと "フレンドリー "な方法が必要な場合は、独自の売買シグナルクラスを作成することができます(MQL5 Wizard: How to Create a Module of Trading Signalsを 参照)。
最良の時間フィルターは、Strategy TesterのBadHoursOfDay入力パラメーターの最適化を使って見つけることができます。パラメーターの開始値と終了値を指定すれば、遺伝的最適化アルゴリズムを使用しているため、それほど時間を必要とせず、最適な時間帯を見つけることができます。
2つ目の方法は、損失取引の時間を手動でチェックし、BadHoursOfDayパラメータのビットで「マーク」することです。
実際、これによって戦略を調整し、取引アイデアの「論理的」な理由を考慮することができます。例えば、オシレーターは横ばいの方がうまく機能します。横ばいの理由は、ニュースの不在、セッション/通貨ペアの特性などです。
もし間違っていたら訂正してほしいのですが、仮に私が悪い分をフィルタリングしたいとすると、1152921504606846975個のオプションをふるいにかける必要があるということでしょうか?
こんにちは。
MA、EMA、WMAから選択する平均を作ることは可能でしょうか?
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
MQL5 Wizard - ザラバフィルター付きの2つの指数平滑移動平均のクロスによるトレードシグナル:
MQL5 Wizardは、エキスパートアドバイザーを自動生成することができます。詳細はCreating Ready-Made Expert Advisors in MQL5 Wizardを参照してください。
2つの移動平均に基づいたトレードシグナルMQL5 Wizard - Trade Signals Based on Crossover of Two Exponentially Smoothed Moving Averagesトレンドがあるとき、移動平均は効果的です。しかしそれ以外の場合はダマシが発生します。この手法を改善する方法として、時間フィルターを活用する方法があります。(例として、為替のヨーロッパ時間のときに新規ポジションをたてるなど)
時間フィルター付きの2つの指数平滑移動平均 (fast EMA と slow EMA)のクロスに基づいた手法を検証してみましょう。この手法は(MQL5 Wizard で生成する際)"Signals based on crossover of two EMA with intraday time filter"です。
トレードシグナル:
この手法は CSignal2EMA_ITF classに実装されています。
このトレード手法は、予約注文に基づいており、価格レベルは移動平均の値によって計算され、ATR単位が使われます。
作者: MetaQuotes Software Corp.