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

 

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

自分自身のトレーディングストラテジーを使用してトレードしていますか。 システムトレードのルールをアルゴリズムとして正式に記述できる場合は、自動化された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.

 
ありがとう、とても感謝している。祝福を!
 
Humbledracsansh:
ありがとう、とても感謝している。祝福を!
ありがとう
 
仕様書に使用できるデータ形式は?PDF、wordは不可です。JPGは可能ですが、説明文が長い場合はご遠慮ください。
 
baerliner:
仕様書に使用できるデータ形式は?PDF、wordは不可です。JPGは可能ですが、説明が長い場合はご遠慮ください。

ここではドイツ語が話せます。:)

テキストはテキストとして投稿できます。編集ラインを見てください。Aaの下にいろいろあります。Ctrl+Sでテンプレートとコードを常にフォーマットできます。

 

上記はフリーランサーの仕様についてです。私は現在2つの簡単な仕事を発注しています。私は今、それぞれの仕事のためにプログラマを選択し、価格と時間の横に仕様を添付しなければならないポイントにいる。ここで彼はJPGファイルだけを取ります。最初の仕事では、要件をjpg形式のハードコピーとして保存しました。2回目の注文も 同じように処理できた。しかし、私には別の仕事がある。ここではグラフィックが必要だ。正確な説明は数ページを要するだろう。非常に時間がかかるので、適切なフォーマットで行いたいと思います。では、仕様書にはどのフォーマットを使えばいいのでしょうか?

 
baerliner:

上記はフリーランサーの仕様についてです。私は現在2つの簡単な仕事を発注しています。私は今、それぞれの仕事のためにプログラマを選択し、価格と時間の横に仕様を添付しなければならないポイントにいます。ここで彼はJPGファイルだけを取ります。最初の仕事では、私は単に要件をjpg形式のハードコピーとして保存しました。2回目の注文も同じように処理できた。しかし、私には別の仕事がある。ここではグラフィックが必要だ。正確な説明は数ページを要するだろう。非常に時間がかかるので、適切なフォーマットで行いたいと思います。では、仕様書にはどのフォーマットを使えばいいのでしょうか?

おそらくzipファイルだと思います。
 
アップロード可能なファイルは書かれていないのですか?
 
Zipファイルは魔法の言葉です。ありがとう。うまくいったよ。ねぇ、その後ろにそう書いたらどう?:-)そして、この機会にフリーランスに関する記述を更新してもらえないだろうか。残念ながら、もう最新版ではありません。説明文とスクリーンショットが現在の姿と一致していないので、以前のバージョンのままなのでしょう。だから、私はバカな問い合わせをしたのだ。しかし、プログラミング・サービスのアイデアは本当に素晴らしい。つの注文が うまくいくことを願っています。
 
baerliner:
Zipファイルは魔法の言葉です。ありがとう。うまくいったよ。ねぇ、その後ろにそう書いたらどう?:-)

私はMQを守らなければならない。


そう書いてあるじゃないか :-)



 

クリスチャン:

投稿/投稿に添付できるファイルの種類のことではありません。検索」機能には、どのファイルタイプが検索されるかが含まれています。私はフリーランサーの仕事を投稿するときの機能を 意味します。たくさんのテキストファイルやサンプルファイルを添付できるんだ。私もそうしてきた。その後、プログラマーを探す場合は、(価格と実装時間に加えて)仕様を明示的にオファーとして伝えなければならない。この時点では、どのファイル・タイプが必要なのか/許可されるのか、私にはまったくわかりませんでした。もちろん、フォーラムへの投稿と同じように言えばいいのだろうが、私はそれほど明白だとは思わなかった。その後、上記の仕様に関する注意事項を読みましたが、そこにもどのファイルタイプが仕様に許可されているかは書かれていませんでした。

しかし、それはもはや重要なことではない。私は今、正しい情報を手に入れ、すべてをプログラマーに送ることができた。これでプログラマーがうまくプログラムを組んでくれれば、私は満足だ。