記事"トレードロボットをオーダーするための要件定義を作成する方法"についてのディスカッション

コメントを加えるため、ログインしてくださいまたは登録するをしてください
MetaQuotes Software Corp.
モデレーター
198776
MetaQuotes Software Corp.  

新しい記事 トレードロボットをオーダーするための要件定義を作成する方法 はパブリッシュされました:

自分自身のトレーディングストラテジーを使用してトレードしていますか。 システムトレードのルールをアルゴリズムとして正式に記述できる場合は、自動化されたEAにトレードを委託することをお勧めします。 ロボットは、人間の弱点であるところの睡眠や食品を必要としません。 この記事では、フリーランスのサービスでトレードロボットを発注する際の要件定義の作成方法を示します。

なぜ、要件定義を持つことが重要なのでしょうか。

トレードロボットを発注または開発する際には、ロボットが実行するタスク、動作する条件、インシデントや緊急事態への対応、必要な制御メソッドなどの要件を策定する必要があります。 トレーディングロボットは、厳密にロジックに従うプログラムです。 アルゴリズムをプログラムするためには、その詳細を準備する必要があります。

トレード戦略の説明は、要件定義の形式で提供されます。 提供する詳細については、以下の誤解は、 (顧客) とプログラマ (オーダーの開発者) の間に発生します。

EAの要件定義の重要な部分は、明確なトレードルールを提示することです。 EA をオーダーするのではなく、自分で開発したい場合でも、ルールの定義から始める必要があります。 要件定義を準備し、EA のテスト/最適化関連ポイントを含めます。 トレード戦略の品質と安定性をチェックするために使用する仮説を追加し、最適なパラメータを選択するための基準を記述します。

すべての EA 開発ステージを要件定義に含め、アルゴリズムのアイデアが開発者にとって明確になり、数週間後、数か月後、または数年後に思い出すのに役立ちます。 アルゴリズムのトレードは趣味ではなく、すべての段階を適切に文書化する必要があります。 新しいアイデアをテストする必要があり、トレーディングシステムの開発日記は非常に便利になります。

要件定義の例

ここでは、MetaTrader5標準パッケージで利用可能なMACD サンプルEAの開発の要件定義の例です。

1. トレードシステムの考え方は次の通りです: 相場のエントリは、 MACD のメインとシグナル線が現在のトレンド方向にクロスするときに実行されます。

2. トレンドは、指定された期間 (InpMATrendPeriod) の指数移動平均に基づいて決定されます。 現在の EMA 値が前より大きい場合、トレンドは成長していると見られます (ema_current > ema_previous)。 あるいは、現在の EMA が前のEMAの下にある場合、そのトレンドは下がりつつあると考えられます (ema_current < ema_previous)。

3. トレーディングシグナル:

  • 買いシグナル: MACDメインラインが、シグナル線を上向きに横切る (MACD_current > signal_current & & MACD_previous < signal_previous).
  • 売りシグナル: MACDメインラインが、シグナルラインを下向きにクロスする(macd_current<signal_current && macd_previous>signal_previous). 以下の図は、買いと売りのケースを示しています。


4. ポジションは、逆のシグナルで閉じている: 買いポジションは、売りのシグナルで決済され、売りポジションは、買いシグナルで閉じています。

5. ポジションは、新しい足が現れるマーケットプライスで開かれます。 このEAは、始値を使用してテストするので、足内の操作を無効にするための関数を追加する必要はありません。

6. ポジションを開くための追加のフィルタ:

MACD のメインラインの絶対値は弱いシグナルを除外するために使用されます: この値が open_level (ポイント単位) より大きい場合にのみシグナルが確認されます。 シグナルの確認条件は次のとおりです。

  • 買いシグナルの確認: Abs (MACD_current) > open_level
  • 売りシグナルの確認: MACD_current > open_level

7. ポジションを閉じるための追加のフィルタ:

MACD のメインラインの絶対値は、ポジションの決済を確認するためにも使用されます: この値が close_level (ポイント単位) より大きい場合、シグナルが確認されます。 シグナルのクローズの確認条件は次のとおりです。

  • 買いポジションを閉じるための確認-MACD_current > close_level
  • 売りポジションをクローズするための確認-Abs (MACD_current) > close_level

8. テイクプロフィットで閉じる-ポジションの始値では、TPレベルは、ポイントで指定された始値から固定距離に設定されます。 この値は、InpTakeProfit インプットパラメータで設定されます。

9. ポジション管理

TrailngStopは利益を保護するために使用されます。 ポイントの利益が InpTrailingStop パラメータで指定された値を超えた場合、ストップロスが設定されます。 価格が利益方向に移動し続けている場合、ストップロスは与えられた距離で引きずるべきです。 ストップロスを損失方向に移動することはできません。 保護命令 (テイクプロフィット、ストップロス) のどれも誘発しなければ、ポジションは反対のシグナルによって閉じます。 他のポジションの決済メソッドは利用できません。

作者: MetaQuotes Software Corp.

コメントを加えるため、ログインしてくださいまたは登録するをしてください