"トレーディングロボットのTORの書き方 "についての記事作成 - ページ 7

 
Andrey F. Zelinsky:

フローチャートは、ToRの中で最も無駄で、時間がかかり、現実的には実現不可能な部分です。

このことを理解するためには、小さな、そして非常に簡単な実験をすることができます。フリーランスのサービス開発者に、「MAインジケータを描くためのフローチャートを作る」というタスクを与えて、2つの基準で評価するのです。1)正しさ、2)わかりやすさ。

一度、頭で考えてもどうにもならない時に、とても助かりました......。

 
Artyom Trishkin:

一度、本当に助 かったんですよ。頭が真っ白になった時に...。

今、こんなことを言いましたね。"私の フローチャートは、開発者としてとても役立っています "。なお、あなたのフローチャートには、あなたのフローチャートを読んで作業する第三者は、本来想定されていません。

このスレッドでは、「トレーディングロボット用のTORの作り方」について議論しています。

この記事は、誰のために、どのような目的・目標で書かれているのか、私にはよくわかりません。

なぜなら、さまざまな程度の詳細があり、この詳細から目標/目的/成果というものが導き出されるからだ--つまり、TORについて語るには、まずa)顧客が開発者に期待すること、要求することを理解する必要がある。

フローチャートというと、お客様がイベント モデルを明確に理解し、プログラムの必要な構成を示すだけでなく、すべてがコード通りに実装されているかどうかを確認できることを意味します。この場合、お客さまが必要としているのは、むしろコーダーなのです。そしてこの場合、構造の正しさを含め、すべての責任を負うのはお客様です。

これはひとつのスキームです。このシナリオは、受注の何パーセントにあたるのでしょうか?

記事のレイアウトを読む

ラシード・ウマロフ

TORが十分に作成されていない、あるいは実際に存在しない場合、取引システムのルールが策定されていない、単に存在 しないことを示す場合がほとんどである。お客さまがトレーディングシステムと呼んでいるものは、実は単なるアイデアなんです。アルゴリズムのプログラミングの過程で非常にすぐにいくつかの未記録のニュアンスが現れるか、単に市場の特定の状況のためのアルゴリズムの欠如ので、あなたはこのような条件の下で作業を開始する ことはできません。このケースでは、プログラマが実際に代わりにクライアントのオプションを考え出す ようになる。

1つのことを除いて正しく書かれている--大部分のタスクは、開始、実行、完了される--曖昧な問題文の中で。ファジーなTORによる失敗率 --仲裁合意で簡単に確認できる。5~10%以下だと思います。

また、大多数のお客様に対するTORの推奨事項をお話すると、そのようなTORでは、フローチャートを作るという推奨事項は妥当なのでしょうか。

 

記事の現在のバージョン

トレーディングロボットを注文するために必要なもの

トレーディングロボットは、それに埋め込まれたアルゴリズムを実行するプログラムです。アルゴリズムは、イベントが発生した場合に実行する必要のある一連のアクションです。たとえば、アルゴリズム取引で最も一般的なタスクは、「新しいバー」イベントの定義です。このイベントの出現時に、ロボットは取引信号の出現をチェックし、それらに対して必要なアクションを実行します。

しかし、取引ロボットを作成または注文する前に、取引を行うための好ましい瞬間を決定するための明確なルールを備えた取引システムを用意する必要があります。最も複雑なトレーディングシステムの開発は、常に基本的なことから始まります。つまり、売買のためのトレーディングシグナルの開発から始まります。次に、さまざまなフォローアップとクロージングのオプションを追加できます。

あなたはあなたの取引戦略を開発するために取引端末の監視の後ろに何年も費やす必要はありません。現在、インターネットや本で何百もの実績のあるアイデアが公開されており、試すことができます。また、プログラミングスキルに完全に自信がない場合でも、これは障害にはなりません。フリーランスサービスは、適切な開発者を見つけ、行われた作業に対して安全に支払うのに役立ちます。

ただし、アルゴリズム取引の魅力的な要素に飛び込む前に、このトピックに関する有用な記事を読むことをお勧めします。

良い委託条件を持つことが重要なのはなぜですか?

エキスパートアドバイザーを注文または開発するときは、その技術要件を策定する必要があります。解決する必要のあるタスク、操作する条件、緊急事態で発生すること、必要な制御の種類などです。トレーディングロボットはプログラムであり、基礎となるロジックに従って明確に機能する必要があります。ただし、必要なアクションアルゴリズムをプログラミングする前に、それも明確に説明する必要があります。

取引戦略の説明は、委託条件の形式で発行する必要があります。そして、それがより良く、より明確になるほど、顧客としてのあなたとあなたの注文の執行者としてのプログラマーとの間の誤解が少なくなります。

委託条件で最も重要なことは、正式な明確な取引ルールの存在です。専門家を注文するつもりはないが、自分で書きたい場合でも、自分でこれらのルールを作成することから始めます。参照条件を作成し、エキスパートアドバイザーのテスト/最適化に関する項目を必ず含めてください。また、仮説を追加して、取引戦略の品質をテストします。最適なパラメーターを選択するためにどの基準を使用しますか。なぜこれらの基準が重要であると考えるのですか。

取引ロボットを作成するためのすべての手順を参照条件に含めます。これは、実行者だけでなく、数週間、数か月、または数年後のアルゴリズムの本質を理解するのに役立ちます。アルゴリズム取引は趣味ではなく、同じ単調な調査パスであり、その間に通過した段階を文書化する必要があることを忘れないでください。私にとっては、あなたのためにロボットを書くプログラマー以上のものです。

物事を整理するのが好きな官僚のスキルを開発します。あなたは間違いなくこれが必要になります。はい、プログラマーは明確な注文が大好きです。

参照の観点から何をすべきか

貿易のアイデア

取引戦略の本質を簡単に紹介するには、テクニカルオーダーの最初の段落を、そこに含まれるアイデア/仮説に当ててください。例:「価格が抵抗レベルに2回近づき、毎回ロールバックする場合、原則として3回目はそれを突破します。」ここでは、プロットされた抵抗/サポートライン、重ねられたインジケーター、および状況を示す署名を含むチャートを添付できます。アイデアを説明するために、特定の数値や計算アルゴリズムを指定する必要はありません。この段階では、次のことをどのように決定するかを説明する必要はありません。

  • 抵抗レベル、
  • レベルの内訳、
  • 「一般的に」の概念。

初期段階での小さなレベルの抽象化により、技術的な詳細ではなく、アイデア自体に集中することができます。この方法では、その後、さらに多くの種類のトレーディング戦略を生成できます。1つの戦略ブロックを別の戦略ブロックに、1つのインジケーターを別のインジケーターに置き換え、フィルターを追加または置換するだけです。同時に、アイデア自体は変更されず、トレーディングロボットの入力パラメーターの名前と値のみが変更されます。

さらに、アイデアの説明で使用されるすべての用語の説明を提供する必要があります。トレンドが戦略にとって重要である場合は、それがどのように決定されるかを明確に説明します。どの指標に基づいて、トレンドの方向と強さがどのように決定されるかを示します。これらの定義の数値特性は、エキスパートアドバイザーの入力パラメーターの基礎を形成し、戦略テスターで最適化するのはそれらです。それで、あなたの委託条件の最初のセクションに名前を付けてください-貿易の考え。

条項

用語を説明するために、参照条件-用語の別のセクションを作成することをお勧めします。その中で、用語ごとに個別の段落が書かれており、用語自体は、取引戦略の重要な概念を強調するために太字で書かれています。必要に応じて、用語の説明にイラストを追加します。このイラストには、理解するために最も必要なものを示す必要があります。

トレーディングシグナル

次に、3番目に重要なセクションであるTrading Signalsをコンパイルする準備が整いました。このセクションでは、どのような条件、市場の状況、およびインジケーターの読み取り値の下で購入が発生するかを説明しています。買いシグナルを生成するために必要な各条件を説明するには、シグナルの外観が依存する数値パラメーターを選択する必要があります。たとえば、 移動平均の場合、これは平滑化のタイプと期間になります。これらの重要なパラメーターは、将来のExpertAdvisorの入力パラメーターに組み込まれます。購入の条件とは正反対であっても、販売の条件を個別に説明してください。プログラマーがあなたとは異なって理解できる微妙な点が出てくることがあります。たとえば、購入の場合、条件「インジケーター> 0」が設定されます-販売のために何を書くか? 「スコア<0」または「スコア<=0」?

最も単純な取引のアイデアでさえ、取引信号の存在を確認する追加の条件とフィルターをすぐに取得し始めます。その逆も同様です。取引を禁止します。したがって、必要な指標と設定を視覚的に示す、市場の状況ごとに説明的なスクリーンショットを作成することが重要です。これにより、アドバイザーが一見明白な取引シグナルを見逃したり、間違ったタイミングで突然取引を行ったりした場合の状況に迅速に対処できます。

スクリーンショットとフローチャート

スクリーンショットやフローチャートを作成するための無料で便利なプログラムがインターネット上にたくさんあります。それらを操作するためのヒントのいくつかは、インジケーターを注文するときに参照条件を作成する方法の記事に記載されています。そこには、買いと売りのシグナルが表示された瞬間をチャート上に矢印で示すインジケーターを注文するためのヒントもあります。アドバイザーとは別に機能するこのようなインジケーターにより、オンラインと目視テストの両方で、トレーディングロボットの動作を簡単に確認および制御できます。

信号/注文/位置の寿命

取引戦略の2番目の重要な部分は、オープンポジションを終了し、保留中の注文を削除することです。さらに、トレーディングシグナル自体も時間またはいくつかのイベントの発生によってキャンセルされる可能性があります。また、トレーディングシグナルについては、どのような条件で売買がクローズされ、シグナル自体がキャンセルされる場合、発注がキャンセルされるかを明確に説明する必要があります。

オープンポジションと保留中の注文の維持

取引戦略でStopLossレベルとTakeProfitレベルを設定する必要がある場合は、計算アルゴリズムを提供してください。これらのレベルを柔軟に引き上げたり移動したりする必要がある場合は、そのような操作の条件も説明する必要があります。 SL / TPレベルは、新しいバーの開始時と各ティックの両方で変更できます。委託条件でこの瞬間を明示的に示し、取引戦略のテストモードの違いを理解する必要があります。記事「実際のダニでの取引戦略のテスト」を読むことをお勧めします。

自分で作成できない場合、利用規約はどこで入手できますか

不十分に作成された委託条件またはその実際の不在は、ほとんどの場合、取引システムのルールが策定されておらず、単に存在しないことを示しています。この場合、顧客がトレーディングシステムと呼ぶものは、実際には、原則として、単なるアイデアです。アルゴリズムのプログラミングの過程で、すぐに微妙な違いが説明されないか、特定の市場状況でアルゴリズムが存在しないことが明らかになるため、このような条件下で作業を開始することは不可能です。この場合、プログラマーは実際に顧客ではなくオプションを考え始めます。

その結果、請負業者は、自身の危険とリスクで、作業を完了し、顧客に取引ロボットを発行する場合があります。しかし、この場合、不明確なTORで新しい問題を議論する時間を無駄にすることに加えて、作業が仲裁に入る可能性もあります。そのような作業を受け入れて確認するときに、顧客は突然、取引が期待どおりに行われていないことに気づきましたが、説明できませんでした。そしてもちろん、この場合、彼は、委託条件の特定のポイントに違反し、ロボットを誤ってプログラミングしたことで請負業者を非難します。このような場合の仲裁は、両当事者の能力の違いを迅速に理解し、注文に添付された委託条件に基づいて決定を下します。フリーランス規則によると、注文の実行前および実行中の側の対応は考慮されません。

仲裁における紛争の主題を検討する場合、決定の基礎となるのは委託条件のみです。

生活の中で、このオプションも可能です。厳格な取引ルールがありますが、何らかの理由で、自分で委託条件を作成することはできません。たとえば、特定のことを正しく説明する方法がわからない場合や、数学、ニューラルネットワーク、機械学習、プログラミングなどの専門家の助けが必要な場合があります。この場合、フリーランスでも委託条件の作成を注文することができます。このため、「プログラミングコンサルティング」または「その他」のカテゴリが適しています。

これらの2つのカテゴリのいずれかを選択し、「トレーディングロボットを注文するためのTORの作成」という名前を付け、想像どおりに作業の初期コストを示します。経験豊富なトレーディングシステム開発者は、他のプログラマーが理解できるように、戦略のルールを正しく策定するのに役立ちます。同時に、スクリーンショットを使用して取引シグナルの設定を表示するために、チャート、インジケーター、およびグラフィカルオブジェクトを操作できる必要があります。

プログラマーはあなたの取引システムを理解し、可能であれば取引アルゴリズムの説明を書くのを手伝います。自分でいくつかの概念を定式化できない場合(たとえば、「インパルス」や「レベルからのリバウンド」)、彼は彼の経験に基づいて既成のアイデアを提供することができます。原則として、市場のあらゆる状況は、ある程度の自由な解釈で論理的に(そしてプログラム的に)説明することができます。そして、このバリエーションは常に特定のパラメーターで表すことができ、エキスパートアドバイザーで最適化することができます。

市場は、一方では繰り返されないため、理想的なパターンはありません。他方では、同様の状況が常に歴史の中で見られます。共同作業の結果は、戦略に従ってトレーディングロボットを注文するための準備が整った委託条件になるはずです。

使用する用語

原則として、取引システムには、市場の状態や価格変動の性質を説明するいくつかの基本的な重要な概念または用語があります。一般的に受け入れられている単純な概念を使用しているように思われる場合でも、それを明確に説明することをお勧めします。用語ごとに、説明の1つの段落を作成します。

たとえば、Bill Williamsによると、上昇傾向は、3つのアリゲーターラインすべてが下から上に青、赤、緑の順序で配置されている場合です。


ラリー・ウィリアムズによる上昇トレンドのもう1つの古典的な定義は、新しいピークが前のピークよりも高く、新しいボトムが前のピークよりも低くない場合です。


用語の説明では、チャートのスクリーンショットを使用できます。干渉することはありません。参照の用語自体では、太字の用語を強調表示します。パフォーマーにそれらに注意を向けさせ、何かが明確でない場合は質問します。

戦略の説明で特定の用語を使用する場合、これはすでによく知られていると主張して、請負業者を他の情報源(Webサイト、書籍、フォーラムなど)に紹介することは不可能です。ここですべてを説明する必要があります。現在、「Skypeで後で説明します」は許可されていません。 TORのすべての用語を書き留めるのに30分もかかりませんが、誤解によるエラーの修正に費やす時間を節約できます。

フリーランスの職務記述書に何を書くか

仕事を作成するときは、潜在的なパフォーマーがあなたが必要としているものを理解できるように、あなたの貿易アイデアの一般的な本質をいくつかの段落で説明してください。職務記述書は、取引システムの規則を開示したり、使用された指標に関する詳細を提供したりする必要はありません。

説明は次のようになります。

トレンド反転で取引するためのエキスパートアドバイザーを作成します。反転シグナルは価格アクションパターンになります。トレンドを判断するために、ADX、アリゲーター、MACDインジケーターが使用されます。インジケーターの選択はアドバイザーの入力パラメーターによって設定されます。

取引戦略の一般的な考え方

ここでは、ロボットがどの楽器で取引するか、トレンドと取引しているかどうか、どのように決定されるか、どの時間枠で取引するかを指定できます。トレンドとトレードする場合、エントリーはどのように発生しますか-ロールバック、新しい極端な突破など。

概して、金融市場には2つの取引戦略しかありません。動き続けることと平均に戻ることです。あなたのアイデアは、これら2つの戦略のいずれかに関連し、市場で、確認後、またはより良い価格で取引を開始する方法を説明する必要があります。

シグナルを待機するためのセットアップの説明

...その後のブレイクアウトでフラットを形成する必要があります/またはヨーロッパのセッションの終了を待ち、その動きの方向にのみ信号を受信する必要があります

信号の説明

...説明の技術的パラメータ-トレンド/プルバック/内訳-すべてが厳密に形式化されています

最初に購入信号と販売信号を別々にデバッグすることをお勧めします

アドバイザーがチャートにラベル/シグナルオブジェクトを配置するとよいでしょう

シグナルインジケーターは別に作った方がいいです

信号寿命

...シグナルが有効な期間-バー/時間/セッションの終了まで/日

注文と募集ポジション

...機能はありますか。たとえば、SL/TPをすぐに設定しません。

または、市場に参入するために何回試みますか。

または時間/セットアップ/パターンに応じて異なるoredermagic/ordercommentを設定します

他の何か

取引ポジション/注文の維持

...トレーリングストップはありますか?

TSをオンにしたとき

保留中の注文を価格の後ろ/反対に移動しますか

オープンポジションで現在の利益/損失を追跡する

他の何か

注文のキャンセルとポジションのクローズ

...時間/バーの数/期間の終わり/反対のシグナルの出現/セットアップの喪失によって注文を削除します

...時間/バーの数/期間の終わり/累積利益/反対のシグナルの出現/セットアップでポジションをクローズします

他の何か

注文のためのロット計算

....バランスから

修繕

累積利益から

過去N回の取引の結果に基づく

リスクから(距離SL)

他の何か

取引エラーと環境状態の処理

...取引注文を送信する際の詳細なログ

端末/接続/サーバーの再起動処理

メッセンジャー/メールによるフィードバック

バーの開口部とバーの内側での取引の違い

...信号は、バーの存続期間中に消えて表示される可能性があります

ダニ/スキャルピング戦略

...それが何であるかについての良い考えを持っている必要があります、ポイントのTakeProfit / StopLossが少ないほど、戦略はスプレッド/コミッション/ネットワーク遅延/利用可能な履歴の品質/ロボット自体の速度より重要です。

条件の悪化は戦略を殺す可能性があります

グリッド、マルタンガール、平均化、およびこれらの改善の欠点

...それらは何ですか、なぜそれらは人気があり、それらは一時的に戦略を伸ばすのにどれだけ役立つことができますか。悪い戦略の寿命を延ばすかもしれませんが、リスクは増加します

請負業者を選ぶときに何を探すべきか

...実質的な質問

感動するふりをしない

明確な期限を与える

2か月の話し合いの後ではなく、TOR内の不明確な場所をすぐに示します

優れたプログラマーは彼とあなたの時間を大切にします-それが彼がよく発達した一貫したTORを愛している理由です

プログラマーがあなたのためにできないこと

負けた戦略を収益性の高いロボットに変える

最適化して欠点を特定します

エラーなしでプログラムを作成します-エラーは発生します。それらを見つけて理解できる方法で説明するのがあなたの仕事です。


 

記事の現在のバージョン、セクションシグナルを待機するためのセットアップの説明は続き、さらに

トレーディングロボットを注文するために必要なもの

トレーディングロボットは、それに埋め込まれたアルゴリズムを実行するプログラムです。アルゴリズムは、イベントが発生した場合に実行する必要のある一連のアクションです。たとえば、アルゴリズム取引で最も一般的なタスクは、「新しいバー」イベントの定義です。このイベントの出現時に、ロボットは取引信号の出現をチェックし、それらに対して必要なアクションを実行します。

しかし、取引ロボットを作成または注文する前に、取引を行うための好ましい瞬間を決定するための明確なルールを備えた取引システムを用意する必要があります。最も複雑なトレーディングシステムの開発は、常に基本的なことから始まります。つまり、売買のためのトレーディングシグナルの開発から始まります。次に、さまざまなフォローアップとクロージングのオプションを追加できます。

あなたはあなたの取引戦略を開発するために取引端末の監視の後ろに何年も費やす必要はありません。現在、インターネットや本で何百もの実績のあるアイデアが公開されており、試すことができます。また、プログラミングスキルに完全に自信がない場合でも、これは障害にはなりません。フリーランスサービスは、適切な開発者を見つけ、行われた作業に対して安全に支払うのに役立ちます。

ただし、アルゴリズム取引の魅力的な要素に飛び込む前に、このトピックに関する有用な記事を読むことをお勧めします。

良い委託条件を持つことが重要なのはなぜですか?

エキスパートアドバイザーを注文または開発するときは、その技術要件を策定する必要があります。解決する必要のあるタスク、操作する条件、緊急事態で発生すること、必要な制御の種類などです。トレーディングロボットはプログラムであり、基礎となるロジックに従って明確に機能する必要があります。ただし、必要なアクションアルゴリズムをプログラミングする前に、それも明確に説明する必要があります。

取引戦略の説明は、委託条件の形式で発行する必要があります。そして、それがより詳細であるほど、顧客としてのあなたとあなたの注文の執行者としてのプログラマーとの間の誤解が少なくなります。

委託条件で最も重要なことは、明確な正式な取引ルールの存在です。専門家を注文するつもりはないが、自分で書きたい場合でも、自分でこれらのルールを作成することから始めます。参照条件を作成し、エキスパートアドバイザーのテスト/最適化に関する項目を必ず含めてください。また、仮説を追加します。これに基づいて、取引戦略の品質と安定性を確認します。最適なパラメーターを選択するためにどの基準を使用しますか。これらの基準が重要であると考える理由。

取引ロボットを作成するためのすべての手順を参照条件に含めます。これは、実行者だけでなく、数週間、数か月、または数年後のアルゴリズムの本質を理解するのに役立ちます。アルゴリズム取引は趣味ではなく、同じ単調な調査パスであり、その間に通過した段階を文書化する必要があることを忘れないでください。そして、あなたはあなたのためにロボットを書くプログラマーよりもさらにこれを必要としています。

物事を整理するのが好きな官僚のスキルを開発します。各トレーディングシステムの開発日記は、新しいアイデアをテストしたいときに役立つはずです。はい、プログラマーは明確な注文が大好きです。

委託条件の例

MetaTrader5ターミナルの配信に含まれるエキスパートアドバイザーの技術仕様をどのように設計できるかの例を挙げましょう。


参照の観点から何をすべきか

貿易のアイデア

利用規約の最初のセクションで、取引戦略の背後にある一般的な考え方を説明します。例:「価格が抵抗レベルに2回近づき、毎回ロールバックする場合、原則として3回目はそれを突破します。」ここでは、プロットされた抵抗/サポートライン、インジケーター、説明キャプションを含むチャートを添付できます。アイデアを説明するために、特定の数値や計算アルゴリズムに入る必要はありません。この例では、私たちがどのように決定するかをすぐに説明する必要はありません。

  • 抵抗レベル、
  • レベルの内訳、
  • 「一般的に」の概念。

初期段階での小さなレベルの抽象化により、技術的な詳細ではなく、アイデア自体に集中することができます。この方法では、その後、さらに多くの種類のトレーディング戦略を生成できます。1つの戦略ブロックを別の戦略ブロックに、1つのインジケーターを別のインジケーターに置き換え、フィルターを追加または置換するだけです。同時に、アイデア自体は変更されず、トレーディングロボットの入力パラメーターの名前と値のみが変更されます。

さらに、アイデアの説明で使用されるすべての用語の説明を提供する必要があります。トレンドが戦略にとって重要である場合は、明確な定義を与えてください。どの指標に基づいて、トレンドの方向と強さが決定されます。これらの定義の数値特性は、エキスパートアドバイザーの入力パラメーターの基礎を形成し、戦略テスターで最適化するのはそれらです。それで、あなたの委託条件の最初のセクションに名前を付けてください-貿易の考え。

条項

用語を説明するために、参照条件-用語の別のセクションを作成することをお勧めします。その中で、用語ごとに個別の段落が書かれており、用語自体は、取引戦略の重要な概念を強調するために太字で書かれています。必要に応じて、用語の説明にイラストを追加します。このイラストには、理解するために最も必要なものを示す必要があります。将来のエキスパートアドバイザーの入力パラメーターはイタリック体にすることができます。

トレーディングシグナル

利用規約の次のセクションは、3番目に重要なセクションであるトレーディングシグナルです。このセクションでは、どのような条件、市場の状況、および指標の読み取り値の下で購入が発生するかを説明します。買いシグナルを生成するために必要な各条件を説明するには、シグナルの外観が依存する数値パラメーターを選択する必要があります。たとえば、 移動平均の場合、これは平滑化のタイプと期間になります。これらの重要なパラメーターは、将来のExpertAdvisorの入力パラメーターに組み込まれます。将来のエキスパートアドバイザーの入力パラメーターはイタリック体にすることができます。

購入の条件とは正反対であっても、販売の条件を個別に説明してください。プログラマーがあなたとは異なって理解できる微妙な点が出てくることがあります。たとえば、購入の場合、条件「インジケーター> 0」が設定されます-販売のために何を書くか? 「スコア<0」または「スコア<=0」?

最も単純な取引のアイデアでさえ、取引信号を確認する、または逆にそれをキャンセルする追加の条件とフィルターをすぐに取得し始めます。したがって、使用されている指標と設定を視覚的に示すために、市場の状況ごとに説明的なスクリーンショットを作成することが重要です。これにより、アドバイザーが一見明白な取引シグナルを見逃したり、間違ったタイミングで突然取引を行ったりした場合の状況に迅速に対処できます。

スクリーンショットとフローチャート

スクリーンショットやフローチャートを作成するための無料で便利なプログラムがインターネット上にたくさんあります。それらを操作するためのヒントのいくつかは、インジケーターを注文するときに参照条件を作成する方法の記事に記載されています。そこには、買いと売りのシグナルが表示された瞬間をチャート上に矢印で示すインジケーターを注文するためのヒントもあります。アドバイザーとは別に機能するこのようなインジケーターにより、オンラインと目視テストの両方で、トレーディングロボットの動作を簡単に確認および制御できます。

信号/注文/位置の寿命

取引戦略の2番目の重要な部分は、オープンポジションを終了し、保留中の注文を削除することです。さらに、トレーディングシグナル自体も時間内にまたはいくつかのイベントが発生したときにキャンセルすることができます。トレーディングシグナルに関しては、説明する必要があります-どのような条件で売買がクローズされ、シグナル自体がキャンセルされるときに、発注された注文は削除されます。

オープンポジションと保留中の注文の維持

取引戦略でStopLossおよびTakeProfitレベルによるクロージングを使用する場合は、計算アルゴリズムを指定してください。これらのレベルを柔軟に引っ張ったり動かしたりするために、条件とトレーリングアルゴリズムを説明してください。 SL / TPレベルは、新しいバーの開始時と各ティックの両方で変更できます。委託条件にこの点を明示し、取引戦略のテスト方法の違いを理解する必要があります。記事「実際のダニでの取引戦略のテスト」を必ずお読みください。

自分で作成できない場合、利用規約はどこで入手できますか

不十分に作成された委託条件またはその実際の不在は、ほとんどの場合、取引システムのルールが策定されておらず、単に存在しないことを示しています。この場合、顧客がトレーディングシステムと呼ぶものは、実際には単なるアイデアです。このような状況で作業を開始することは不可能です。コードを作成する過程で、すぐに微妙な違いが考慮されなかったり、市場で予期しない状況に対応するアルゴリズムがなくなったりするためです。この場合、プログラマーは実際に顧客ではなくオプションを考え始めます。

その結果、請負業者は、自身の危険とリスクで、作業を完了し、顧客に取引ロボットを発行する場合があります。しかし、これにはそれぞれの新しい問題について話し合う時間が失われ、仲裁に取り掛かる可能性が高くなります。実行された作業を受け入れて確認するときに、顧客は突然、トランザクションが期待どおりに行われていないことに気づき、それを正しく説明できなかったためです。そしてもちろん、この場合、顧客は、委託条件の特定のポイントに違反し、ロボットを誤ってプログラミングしたことで請負業者を非難します。このような場合の仲裁は、両当事者の能力の違いを迅速に理解し、注文に添付された委託条件に基づいて決定を下します。フリーランスルールによると、論争の的となる状況を検討する際の側の対応は考慮されていません。

仲裁における紛争の主題を検討する場合、決定の基礎となるのは委託条件のみです。

生活の中で、このオプションも可能です。厳格な取引ルールがありますが、何らかの理由で、自分で委託条件を作成することはできません。たとえば、特定のことを正しく説明する方法がわからない場合や、数学、ニューラルネットワーク、機械学習、プログラミングなどの専門家の助けが必要な場合です。この場合、委託条件の作成を注文することもできます。フリーランスでは、このための「プログラミングコンサルティング」や「その他」などのカテゴリがあります。

これらの2つのカテゴリのいずれかを選択し、作業に「トレーディングロボットを注文するためのTORの作成」という名前を付け、想像どおりに作業の初期コストを示します。経験豊富なトレーディングシステム開発者は、他のプログラマーが理解できるように、戦略のルールを正しく策定するのに役立ちます。同時に、スクリーンショットを使用して取引シグナルの設定を表示するために、チャート、インジケーター、およびグラフィカルオブジェクトを操作できる必要があります。

プログラマーはあなたの取引システムを理解し、可能であれば取引アルゴリズムの説明を書くのを手伝います。自分でいくつかの概念を定式化できない場合(たとえば、「インパルス」や「レベルからのリバウンド」)、彼は彼の経験に基づいて既成のアイデアを提供することができます。原則として、あらゆる市場の状況は、変動パラメーターを備えたいくつかの単純なモデルを使用して論理的に(そしてプログラム的に)記述することができます。そして、この変動は特定のパラメーターで表すことができ、それをエキスパートアドバイザーで最適化します。

市場は、一方では繰り返されないため、理想的なパターンはありません。他方では、同様の状況が常に歴史の中で見られます。共同作業の結果は、戦略に従ってトレーディングロボットを注文するための準備が整った委託条件になるはずです。

使用する用語

原則として、取引システムには、市場の状態や価格変動の性質を説明するいくつかの基本的な重要な概念または用語があります。参照条件で一般的に受け入れられている単純な概念を使用しているように思われる場合でも、それを明確に説明することをお勧めします。用語ごとに、説明の1つの段落を作成します。

たとえば、Bill Williamsによると、上昇傾向は、3つのアリゲーターラインすべてが下から上に青、赤、緑の順序で配置されている場合です。


ラリー・ウィリアムズによる上昇トレンドのもう1つの古典的な定義は、新しいピークが前のピークよりも高く、新しいボトムが前のピークよりも低くない場合です。


用語の説明では、チャートのスクリーンショットを使用できます。干渉することはありません。参照条件自体では、太字で入力した用語を強調表示することをお勧めします。これにより、後で請負業者が疑問がある場合にテキストですぐに見つけることができます。

用語を説明するとき、請負業者は他の情報源(ウェブサイト、本、フォーラムなど)を参照することはできず、これがすでによく知られていることを正当化します。ここですべてを説明する必要があります。TORでは、「後でSkypeで説明します」という形式の松葉杖は許可されていません。利用規約のすべての規約を書き留めるのに30分もかかりませんが、誤解によるエラーの修正に費やす時間を節約できます。

フリーランスの職務記述書に何を書くか

仕事を作成するときは、潜在的なパフォーマーがあなたが必要としているものを理解できるように、あなたの貿易アイデアの一般的な本質をいくつかの段落で説明してください。職務記述書は、取引システムの規則を開示したり、使用された指標に関する詳細を提供したりする必要はありません。

説明は次のようになります。

トレンド反転で取引するためのエキスパートアドバイザーを作成します。反転シグナルは価格アクションパターンになります。トレンドを判断するために、ADX、アリゲーター、MACDインジケーターが使用されます。インジケーターの選択はアドバイザーの入力パラメーターによって設定されます。

取引戦略の一般的な考え方

ここでは、ロボットがどの楽器で取引するか、トレンドと取引しているかどうか、どのように決定されるか、どの時間枠で取引するかを指定できます。トレンドとトレードすると、ロールバック、レベルのブレイクアウトなど、どういうわけかエントリが発生します。

概して、金融市場には2つの取引戦略しかありません。動き続けることと平均に戻ることです。あなたのトレードアイデアは、これら2つの戦略のいずれかに関連している必要があり、トレードがどのように開かれるかを説明する必要があります-市場で、ブレーク/プルバックの確認後、またはより良い価格で。

シグナルを待機するためのセットアップの説明

信号自体は単純で、アルゴリズムを使用して簡単に記述できます。たとえば、「吸収」や「ピンバー」などのパターンはよく知られており、人気があります。しかし、原則として、そのような形式化された数値だけで収益性の高い戦略を構築することは不可能です。そのようなパターンは、トレンドの逆転を決定するために使用されます。これは、「弱気の飲み込み」パターンを待つためのセットアップが上昇トレンドの存在になることを意味します。

したがって、委託条件では、トレーディングシグナル自体を説明するだけでなく、それに必要な設定を形式化する必要があります。

信号の説明

特定の条件が満たされると、売買の合図が表示されます。たとえば、古典的な買いシグナルは、価格が下から移動平均を超えたときです。このような信号を記述するときは、次のパラメーターを指定する必要があります。

  • 移動平均タイプ-SMA、EMA、 VIDYAなど
  • 移動平均期間
  • 一部の平均の追加パラメータ。たとえば、 AMAの場合。

また、「価格が平均を超える」という考え方も明確にする必要があります。シグナルは平均を超えた瞬間にすぐに現れる場合があります。または、ろうそくが平均レベルを突破するだけでなく、その上で閉じるのを待つ必要があります。コードの記述方法はこれだけでなく、ストラテジーテスターでエキスパートアドバイザーをテストするときに使用する必要があるティック生成モードにも依存します。

したがって、「トレンド」、「レベル」、「ブレイクアウト」、「キックバック」、「交差点」などの概念を明確に説明する必要があります。これは、ティック、バー、終値での作業を意味するかどうかです。これらのすべての概念には、戦略テスターで最適化する数値パラメーターを含む正式な説明が必要です。たとえば、トレンドの強さはADXインジケーターを使用して測定できますが、一目の均衡表インジケーターはこれには適していません。

トレーディングシステムで使用される条件とフィルターが多いほど、トレーディングプログラムは複雑になります。このような戦略には多くの入力パラメーターがあり、膨大な数の最適化パスが必要になることは言うまでもありません。また、MetaTrader 5のストラテジーテスターでは、 遺伝的アルゴリズムMQL5クラウドネットワークにより、パラメーターの最適化時間を数万倍も高速化できますが、この場合に受信されるデータの量は雪崩のように増加します。

したがって、トレーディングロボットを開発およびデバッグするときは、いくつかのルールに従うことをお勧めします。

  • シグナルを視覚的にデバッグおよびチェックするには、エキスパートアドバイザーはシグナルの発生時にチャートにラベル/オブジェクトを配置する必要があります。これにより、履歴をデバッグできるだけでなく、チャート上のシグナルを視覚的に観察することもできます。多くの場合、アルゴリズムは非常に複雑になるため、システムのルールを策定したトレーダーにとっても、その作業を理解するのは困難になります。また、Signalsを視覚的に表示することで、チャート上で取引を開始する瞬間をすぐに確認できます。
  • さらに正しい解決策は、最初に矢印を使用してチャート上で売買シグナルをマークするインジケーターを作成することである可能性があります。これにより、1つの複雑なプログラムよりも2つのプログラムを別々に作成およびデバッグする方が簡単なため、エキスパートアドバイザーの作成が簡素化されます。ロボットはトレードのみを行い、インジケーターは描画のみを行います。この場合、アドバイザコードは不要な機能から保護されます。さらに、それらで行われる取引よりもはるかに多くのシグナルが存在する可能性があります。たとえば、購入のシグナルを受信すると、通常は市場に参入し、さらにアルゴリズムに従って、購入のシグナルはチェックされなくなります。また、別のインジケーターがある場合は、オープンポジションの存在に関係なく、すべてのシグナルを表示するロジックがあるため、すべての購入シグナルが表示されます。
  • 売買シグナルは、参照条件で個別に説明するだけでなく、戦略テスターで個別にデバッグすることも望ましいです。多くの場合、買いと売りは相互に関連しています。つまり、オープン買いポジションがある限り、すべての売りシグナルは無視されます(もちろん、ロングポジションが売りシグナルによってクローズされていない場合)。最初にBuySignalsを個別にテストし、次にSell Signalsをテストすると、基礎となるロジックの正確性を最も純粋な形式で確認できます。

戦略パラメータを購入用と販売用に別々に最適化することもできるので、後でアルゴリズムを単一の取引ロボットに組み合わせることができます。そのため、最適なパラメータの検索に費やす時間が減り、ミスが減ります。この場合、インジケーター/インジケーターと中間エキスパートアドバイザーの作成に追加料金を支払う必要があります。しかし、良い取引のアイデアはそれだけの価値があります。そうではありませんか?

信号寿命

一部のトレーディングシステムでは、シグナルの出現はポジションの即時オープンを意味しません。原則として、そのような戦略では、追加の信号からの確認/許可が必要です。たとえば、レジスタンスレベルのブレイクアウト後、最良の状態に入るには、価格がブレイクレベルにロールバックするのを待つ必要があります。この場合、時間的要因が発生します。「レベルが壊れてロールバックを待機している」信号が有効な時間またはバーの数です。おそらく、5バー以内のプルバックを待つか、トレーディングセッションが終了するまで待ってから、シグナルがキャンセルされるのは理にかなっています。

「TimetoLive」パラメーターを追加すると、取引シグナルの品質を向上させることができる追加のフィルターを導入できます。

注文と募集ポジション

トレードオーダーの送信を担当する関数を作成するときは、事前に追加機能について検討するのが理にかなっています。たとえば、取引結果と最適化結果をさらに分析するために、取引ロボットでさまざまなMagicNumbersとコメントを指定できます。 MagicNumberには、入力の時間と曜日、取引パターンの番号、およびMagicNumberに含まれるデータのコンテキストで追加の分析を実行できるようにするその他の重要な情報を入力できます。したがって、エキスパートアドバイザーで複数の取引戦略を実装し、一度に1つの最適化を実行できます。次に、失敗したエントリ時間または失われたパターン/シグナルを取り除きます。 Expert Advisorでこのような機能を利用したい場合は、パターン/セットアップ/信号ごとにMagicNumber計算アルゴリズムを明確に定義する必要があります。

さらに、トレードオーダーが最初に正常に実行されるとは限りません。初めてポジションを開閉できなかった場合を予見する必要があります。この場合、アドバイザーは何をすべきですか?一時停止するか、新しいダニが到着するのを待ちますか?トレードオペレーションを完了するために何回の試行が許可されていますか?このような場合、EAはどのような情報を記録する必要がありますか?エントリはどの形式にする必要がありますか? DDoS攻撃を作成しないために、問題に関するメッセージをトレーダーに送信する必要がありますか?

ターミナルでの取引履歴をすばやく分析するには、取引要求に書き込むことができるコメントを使用します。ただし、場合によっては、トレードサーバーがこのフィールドに独自の情報を書き込むことを忘れないでください。したがって、ロボットが独自の毎日の取引ログを書き込んでいれば、それは不必要ではありません。これは、理解できない状況を整理するのに役立ちます。

取引戦略でStopLossおよびTakeProfit保護レベルを使用している場合は、それらの計算のアルゴリズムとそれらを設定する手順を提供してください。たとえば、StopLossを設定する必要があるのは、価格が特定のポイント数だけ有利な方向に移動した場合のみであることが判明する場合があります。 SLおよびTPレベルがポジションのオープンに成功した後にのみ設定される場合、ポジションのオープンがどのようにチェックされるかを指定します-トレードリクエストを送信した直後または次のティックで。

取引ポジション/注文の維持

古典的なルールは「利益を流し、損失を減らす」です。アルゴリズム取引に変換すると、これは「オープンポジションごとに保護ストップロスを設定し、TakeProfit注文を使用して潜在的な利益を制限する」ことを意味します。

ストップのサイズは取引の結果に大きな影響を与える可能性があり、トレーダーは利益を最大化するためにSL/TP注文を出すためのそのような最適な距離を見つけようとします。ただし、考えられるすべてのSL / TPサイズの大まかな列挙は、履歴に同じように適合します。市場のボラティリティ、トレンドの方向性、サポート/レジスタンスレベルの近さを考慮した距離計算アルゴリズムを使用してみてください。

SL / TPのサイジングがどうあるべきかわからない場合は、既存のトレーディングシステムを調べることができます。多くのアルゴリズムトレーダーは、あなたのアイデアに従って取引ロボットを作成するために使用できる独自の既製のライブラリを持っています。

利用規約で次の点をよく考えて説明してください。

  • StopLossレベルとTakeProfitレベルを使用して、それらの距離を計算するためのアルゴリズム:
  • トレーリングストップを使用する必要があるかどうか、オンになっている場合、どのステップでプルアップされるか、ステップ計算アルゴリズム。
  • 保留中の注文を使用してポジションを入力する場合、それらを再配置する必要がありますか、またどのアルゴリズムで行う必要がありますか。
  • オープンポジションで変動する利益/損失を追跡する必要があるかどうか、指定された利益/損失のレベルに達したときにポジションを閉じる必要があるかどうか。
  • 他の何か。

注文のキャンセルとポジションのクローズ

ポジションと注文を管理する別の方法も可能です-時間と反対のシグナルの出現によって。利用規約に削除と終了のオプションを追加できます。

  • オープンポジションでの変動利益または損失の所与の値による。
  • 価格が保留中の注文を開く現在のレベルから指定された距離を移動したとき(実際、これはその瞬間がすでに失われていることを意味します)。
  • 指定された時点で;
  • 与えられた数のバーを通して;
  • 指定された時間間隔の終了時。
  • 反対方向の信号が現れたとき。
  • 良好なセットアップ/パターンが消えたとき。

注文のためのロット計算

一部のトレーダーは、トレーディングロボットを作成するときに、すぐにポジションサイズ制御機能を追加します。 EAを最適化するときに追加の入力パラメーターを使用すると、履歴の特定のセクションに調整される可能性があるため、初期段階でロットを計算するためにEAに資金管理アルゴリズムを含めることはまだお勧めしません。

トレーディングシステムに従ってロボットの最初のバージョンを作成する場合は、一定のロットでテストして最適化することをお勧めします。履歴のフォワードテストと数か月間の実際の取引の後でのみ、アルゴリズムの長所と短所を確認したときに、資金管理について考えることができます。

ポジションを開くときにロットサイズを計算するためのいくつかのアプローチは次のとおりです。

  • 利益または損失に関係なく、固定ボリューム。
  • ボリュームは、残高またはエクイティのサイズによって異なります。
  • 受け取った利益/損失の結果に応じて;
  • 過去N回の取引の結果に基づく(マーチンゲールとアンチマーチンゲールのさまざまなバリエーション)。
  • 保護的なStopLoss注文がトリガーされたときのリスク率に応じて;
  • リスクベースの計算のための他のオプション、たとえば、 Vinceメソッドによる。

いずれにせよ、EAにロットサイズ計算を追加する前に、トレーディングシステムがランダムトレーディングよりも有利であることを確認する必要があります。そうでなければ、あなたはしばらくの間自分自身を欺くでしょう。負けたシステムは、お金の管理だけでは利益のあるシステムに変えることはできません。

取引エラーと環境状態の処理

トレーディングロボットは24時間稼働する自律型プログラムであるため、その動作を監視・確認する手段を提供する必要があります。 Expert Advisorの「ブラックボックス」は「Experts」ログになり、 Print()関数を使用してすべてのメッセージが表示されます。一般に、実行のために注文を送信する前に、シグナルの外観、パターンとセットアップ、現在の市場価格と取引要求パラメーターを記録することをお勧めします。

トレードリクエストの実行に失敗した場合は、その結果をログに記録する必要があります。トレードサーバーの応答コードを分析することで、トレーディングエラーの原因を理解して修正することができます。委託条件に説明してください:

  • ログエントリが作成されるすべての状況。
  • それぞれの場合に反映されるパラメータ。
  • 希望する録音フォーマット、例:時間、数値データ、区切り文字などを示します。

トレードオーダーを送信し、その実行結果を処理する際の詳細なログは、時間とお金を節約します。

初心者のアルゴリズムトレーダーが忘れがちな重要なポイントは、端末を再起動したり、インターネットを失ったり、トレードサーバーに接続したりする状況です。このような場合、インスタントメッセンジャーや電子メールを介してロボットとのフィードバックについて考えることは害にはなりません。

バーの開口部とバーの内側での取引の違い

...信号は、バーの存続期間中に消えて表示される可能性があります

ダニ/スキャルピング戦略

...それが何であるかについての良い考えを持っている必要があります、ポイントのTakeProfit / StopLossが少ないほど、戦略はスプレッド/コミッション/ネットワーク遅延/利用可能な履歴の品質/ロボット自体の速度より重要です。

条件の悪化は戦略を殺す可能性があります

グリッド、マルタンガール、平均化、およびこれらの改善の欠点

...それらは何ですか、なぜそれらは人気があり、それらは一時的に戦略を伸ばすのにどれだけ役立つことができますか。悪い戦略の寿命を延ばすかもしれませんが、リスクは増加します

請負業者を選ぶときに何を探すべきか

...実質的な質問

感動するふりをしない

明確な期限を与える

2か月の話し合いの後ではなく、TOR内の不明確な場所をすぐに示します

優れたプログラマーは彼とあなたの時間を大切にします-それが彼がよく発達した一貫したTORを愛している理由です

プログラマーがあなたのためにできないこと

負けた戦略を収益性の高いロボットに変える

最適化して欠点を特定します

エラーなしでプログラムを作成します-エラーは発生します。それらを見つけて理解できる方法で説明するのがあなたの仕事です。