エキスパートアドバイザーの注文と希望の結果の取得方法

Andrey Khatimlianskii | 15 12月, 2015

はじめに

自動トレーディングは、新しい勢いを増しています - MQL5付きの MetaTrader 5のリリースが終了しました。自動トレーディングチャンピオンシップ 2010を引き継ぐことに成功し、そのトレーディングプラットフォームの新バージョンは、ブローカーにより活発に促進されています。MetaTrader 5の前任者 - MetaTrader 4 - は何百の証券業者や何百万の世界中のトレーダーに未だ活発に使用されています。

そのような人気にもかかわらず(むしろ、そのせいで)、平均てきなトレーダーの熟達度合いは増す増す低下し、その他の分野のように、量は、質に転化しませんでした。もし自動トレーディング(トレーディングとプログラミングのつながり)を考えると、その状況はより悪くなり、誰もコンピュータープログラミングの学士を持たず、多くの人にとって、技術志向の人であっても、プログラミングをマスターするのはとても困難なものです。また、単純にプログラミングに興味のない人のことを忘れてはいけません。"最善を尽くさなければならない" - というが、これは否定できない。

次第に、今回のトピックに近づいてきました。MetaTraderプログラミングサービスに対する需要があり、その需要は成長し続けます。需要があり、供給があり、これは市場の法則です。実際は、お金を稼ぎたいプログラマーと戦略を自動化したいトレーダーは十分な数存在します。しかし、悲しいことに、彼らのコミュニケーションは、常に相互の利益につながりません - 満足していないカスタマーとともに、コンセプトを説明し疲れたプログラマーが多数存在します。

この記事は、「カスタマーとプログラマー」のコミュニケーションにて生じる問題を扱います。まずは、トレーダーに対するものであり、異なる精神構造の人々を対処する経験にかけています。しかし、プログラマーにとってこの記事がとても役に立つものであることはまちがいなく、関係は常に二つの側面を持ち、ジョイントベンチャーの成功は常に双方に等しく依存します。


内容

  1. アイディアの実証
  2. 錯覚の除去
  3. ゴールの設定
  4. 語彙の同調化
  5. 必要条件明記の準備
  6. 候補者/開発者の選択
  7. 騙されないようにするには
  8. 結果のチェック
  9. フィードバックの提供


1. アイディアの実証

アイディアの実証カスタマーの苛立ちの主な共通の原因として、戦略の喪失があります。準自動化エキスパートアドバイザーやインジケーターではなく、完全なトレーディングシステムの場合、トレーダーはエキスパートアドバイザーから期待する唯一のものは、利益を生むトレードです。

彼らはプログラマーから長く待った手紙を受け取り、クライアントターミナルを立ち上げ、テストを開始します、そして、素晴らしいアイディアがデポジットの損失につながる様を見ます。再びパラメーターを確認し、履歴データを更新し、再びデポジットが失われていきます。そして、プログラマーに抗議の手紙を書き、忍耐強い人は結果をテストし、問題が何かを探ろうとします。しかし、事実は変わりません。信じたアイディアは利益の出ないものだったのです。

様々な可能なオプションが存在しています。不器用なプログラマーを責めたり、作業に支払いもせず、別のプログラマーを見つけようとし始める人もいます。状況を改善する方法を見つけ、「少々の変更」を頼む者もいます。(小さい変更のため無料で頼みます。)まちがいを当然のものだと考え、責任をプログラマーに押し付けない人もいます。しかし、この章は、彼らに対して書かれたものではなく、自己批判を持った人には必要ありません。

これは、単純に結果であり、取り外す必要はなく、問題の原因を発見し除去する方が合理的です。問題は、トレーダーが怠惰すぎて、アイディアをチェックしないことです。そのために、履歴データの任意のインターバルを選択し、日ごとに戦略がどのように作動し、結果がどうなっているのかを監視する必要があります。テストのビジュアルモードではより簡単で素早く行われます(これはMetaTrader5にてすぐに使用できるようになると思います)しかし、そのテストは、リアルタイムで実行できますーデモアカウントでで1、2週間の作業です。

すべての戦略が履歴データでテストできるというわけではありません。個人的な経験から、アイディアの実証をチェックするのは時間の消費が激しいです。チャート上にペンを持って何時間も座るよりもエキスパートアドバイザーにいくらか支払う方が簡単だと理解できます。しかし、その結果は実装のためのテストされていないアイディアを送信する際に、とても不愉快な驚きとなるでしょう。

プログラマーは戦略の利益性には責任を持たず、彼らの作業はあなたの認めるアルゴリズムを処理するプログラムを記述することであると覚えていおいてください

時折、プログラマーは、あなたのシステムの脆弱性を指摘しますが、彼の良心に基づきます。彼は、失敗からあなたを助ける責任はなく、あなたのアイディアをチェックする必要もありません。EAを注文する際、戦略にとても自信があるか、これは試みでしかなく、結果に驚かせられないと理解する必要があります。

中間の結論としては、実装を注文する前に何度も戦略をチェックする必要があります。


2. 錯覚の除去

Escherの不可能なキューブ私たちは見たいものだけを見ます。そして、ヨットと、海の島とお金いっぱいのスーツケースを欲しいと思っています。チャートを見て、成功するインジケーターシグナルしか見ません。目を閉じ、口座の0の数を数えましょう。そして、そのプログラムがちょうどそのアルゴリズムに基づき作動し、錯覚を与えます。

二番目に大きく、頻度の高い失望の原因は、 困惑と自己欺瞞です。最初のステップを取ると決定し、アイディアをチェックするなら、そのプロセスを批判的に取る必要があります。多くの失望が、この段階で避けられます - バラ色のメガネを外し、戦略を賢くみてください。

とても共通の状況:インターネットにて戦略について読み、そのためのエキスパートアドバイザーを作成することに決めました。チャートを見て、計算の正しさを確かめ、「これだ!」と思うのです。その状況はこのすばらしいインジケーターをダウンロードすることによりさらに悪くなります。そのインジケーターにより戦略が作動し、90%の作業がすでに完成し、あとほんのすこしで作業がすべて終了するという錯覚に陥っています。

もしこの時点で、「なぜこの戦略は公的な場所でダウンロードできるのか」という単純な質問を自分にすれば、(もしくは、なぜ著者は使用する代わりに売っているのだろうかと考える)、すると今の私のカスターマーが半数ほどになると思います。しかし、もちろん、そうではありません。しかし、それをチェックすることから妨げるものは何でしょうか?あなたの個人的な資金を何に費やすのでしょうか?

あなたの自身の錯覚の罠から抜け出す幾つかのルールがあります。すべての問題を解決はしませんが、大半の共通のミスからは解放できます。

  1. ソースコードのないインジケーターに懐疑的になりましょう!

    • わずかに、それらがどのように動くかを理解できるようになります。そして、誰も将来の行動の普遍性を保証できません。
    • 古いシグナルの再描画や不適切な動作につながるコードエラーから、計画的な詐欺や作業時間、口座番号の制限など様々なものを含みます。

    たとえ、プログラミングを全く理解できなくとも、知り合いのプログラマーにそのプログラムを「試してもらう」ことはできますーエキスパートアドバイザーを注文する前に直接確かめましょう。

  2. リアルタイムでそのインジケーターの動作を監視しましょう!

    • そのインジケーターがオンライン上でどのように動くかを知らずに履歴からそのシグナルを考察するのは合理的ではなく、役に立たない図になります。
    • ほとんどすべてのインジケーターは最後のバーにて値を変更しますーこれが普通です。履歴にて、これらの変化は見えず、そのインジケーターデータは完成されたバーに描画されることを理解してください。そのシグナル(矢印、インジケーター/価格線の交差)は出現後次のバーでのみ使用されます。もしエキスパートアドバイザーのテスト中に(バーのクロージングを待たずして)そのシグナルを使用しようとして、たくさんの矢印や交差点があるが、バーのクローズ時には多くが消えています。チャートにポジションを見ることができますが、一致するシグナルではなく、バーの情報を追跡する際のみ見ることができます。
    • 幾らかのインジケーターは、最後においてではなく、幾つかの以前のバーにおいて値を変更します。時折、インジケーターの本質(例. フラクタルの形成時、右側に2つのバーがある必要があり、そのジグザグの最後のセクションに新しいセクションの条件が満たされるまで長い間再描画されます)しかし、そのような行動は計画的な詐欺の証拠です-多くのインジケーターが履歴データに基づく美しい描画のために作成され、トレードで使用することは不可能です。
      もしそのインジケーターが最底辺で買うシグナルを示し、頂点で売るようなシグナルを発信すれば、これはとても良いインジケーターではなく、むしr、「過去を予想する」ものであることが示されます。
    • オンラインチャートを何時間も座って監視する必要はなく、多くのインジケーターはビジュアルテストモードにてテストされます。しかし、テストにおける最も信頼のおける方法は、デモアカウントで稼働し、監視することです。そのチャートにインジケーターを貼り付け、少々待機し、再び貼り付けます。(同じパラメーターで)- もしそれが「本当」であれば(以前の値の再描画を使用しないもの)、そのインジケーターの両方のコピーにおける図が同一のものになります。もしそのインジケーターの新しいコピーが異なるシグナルを示すと、その履歴におけるシグナルを分析するには役に立ちません。
  3. 異なる履歴のインターバルにおいて戦略をチェックします!

    • 無意識にとても自信のある履歴のインターバルをテストのために選んでいることが良くあります。インジケーターのシグナルによる入り口であるか、注文のグリッドや、パターン認識ツールであるかにかかわらず、戦略が利益を生むインターバルが常にあります。しかし、すべての履歴データにおけるエキスパートアドバイザーをテストする際、最も成功しないインターバルを見ることになります。確かめてみてください。
    • 履歴の幾つかのランダムなインターバル例えば、2009年10月、2008年1月を取り、あなたの目で調べ、利益と損失シグナルの比率を計算しましょう。その他の商品やタイムフレームでのシグナルの質を見てみましょう。もしそのアイディアが核としてあるのであれば、その他の条件でも当てはまります(わずかに修正されたインジケーターパラメーターや損切りレベルにて)
    • 一回のチェックのためにシステムのパラメーターを変更しないでください。もし8月を見ている間に特定のインジケーターパラメーターを使用し、9月に移り、他のパラメーターを取得するなら、単純に馬鹿げたことです。チェックは同じ条件下にて行われる必要があり、さもなければ見たいものしか見なくなります。そのシステムパラメーターが常に同じである必要があるとは言いませんが、もし変更したいなら、変更の基準を考える必要があります。履歴に基づき結論づけることがシンプルですが、将来どうなるでしょう?
    • その戦略において履歴の最も複雑なインターバルを見つけ、それに基づきシステムをテストしてください。一般的な戦術として、チャネルの使用、次のポジションのオープンでのロットの二重化によって支えられながらの後方への移動の待機は、履歴の幾つかのインターバルにおいては上手くいきます。しかし、その市場は、チャネルや強いトレンドにて長期的な動きを持ち、両方のシステムが定期的にデポジットの損失につながります。あなたのシステムにとって危険になる履歴のインターバルを見つけ、このインターバルでのトレーディング時に問題を監視しましょう。
      そして、忘れてはいけない点は、将来より長いフラット、より極端なトレンドの動きがあり、その市場が継続的に変化するということです。常に「安全マージン」を確保してください。
  4. 頭上のコスト(スプレッド、スワップ、コミッション、マージン必要項目、注文の導入における最小の除去)を考慮しましょう。

    • 多くの長期間の戦略において、幾つかの点によるエラーは関連性がないので、すべてのこれらの費用が重要ではありません。しかし、自動トレーディングの開発トレンドは、より多くの戦略が高頻度のトレードと小さい利益にて開発され、2ポイントのスプレッドの上昇か、10ポイントのストップレベルが気づけるようになります。
    • すべてのMetaTraderチャートの全て(バージョン4・5)は、Bid価格を使用して作成され、ロングポジションのオープンとショートポジションのクローズはAsk価格によって実行されます。トレードを行う際、スプレッドを考慮に入れることは、不便ですが、トレードのすべての結果を取得でき、そこからトレード数を引き、スプレッドによりかけることができます-実情に近づけることができます。
    • 履歴を分析する際、数年前トレード条件がかなり異なっていました。その1999のチャートは、もし現在のスプレッドを用いてトレードする場合、戦略を売りつけるには理想的です。しかし、1999年では、スプレッドが3・4倍長いです!もしそれぞれの取引からその期間の実際のスプレッドを引いた際、取得した利益から何も残りません。その状況は、そのほかの条件にて類似しており、数年前、その最大の使用可能なレバレッジは1:100で、未決注文を行う距離はポイントにて図られます。
    • トレード条件は新しいリリースで変化し、注文の実行は、遅延しスリッページを持ちます。履歴にて「輝かしい新システム」を生み出し、ミクロアカウントにてテストしてはいけません。もし2ポイントスレッドを評価するなら、そのシステムはかなり変更されますが、そのポジションは5秒後にオープンされ、損失なしにポジションをクローズできないほどに広がってしまいます。
    • 常にトレード条件と関連して、「安全マージン」を持っています。あなたのシステムがスプレッドのわずかな変化や、数秒のポジションのオープンの遅れにより壊れてしまう場合、「本当の戦い」では生き残れないでしょう。
      スプレッドは多くの戦略におけるデポジットの損失の理由であることを覚えていてください。つまり、50%の確率の取引方向の選択であり、その戦略をできる限り改善し、スプレッドが結果に影響を及ぼさないようにしましょう。

もしすべてのチェック後、システムを固く信じ、自動化したいのであれば、さらに進めることができます。


3. ゴールの設定

ゴールの設定エキスパートアドバイザーをなぜ必要か考えたことはありますか? ストラテジーテスターでアイディアを少し試したいだけでしょうか?もしくは。ミクロリアルアカウントで準備のできた戦略を試したいのでしょうか?いいえ、二年間システムでトレードを続け、$100000のデポジットの実際のアカウントでエキスパートアドバイザーを稼働します。

これらの質問はほとんど聞かれません。一般的にその答えは少々のことのみに影響します:技術的必要用件の詳細、候補者/開発者その選択、そして作業コストのみであるということは理解できます。しかし、もし考えてみると、異なるアプローチの違いはとても重要です。

多くの場合、プログラマーはストラテジテスターのためにエキスパートアドバイザーを記述するか否かは気にしません(少数のチェックと、例外のハンドリングなしで)。もし彼が長い間MQLで記述し、プログラムの安定性に何も不満を受け取っていないのであれば、彼はいかなるアルゴリズムの実装における基礎を持っていおり、ストラテジーテスターバージョンも実際のアカウントのためのバージョンも記述する上でアプローチは変わりません。

しかし、たとえそのような人と働けたとしても、技術的必要用件を記述する際、違いを感じるでしょう。

例を用いて説明します:

  1. 状況1- 単純にアイディアをテストする必要があります (どこかで見て、聞いたことがあるでしょう). その意味は:

    • 実際のアカウントで稼働させることは計画しておらず、すべてのチェックや例外の処理は行われる必要はありません。
    • そのエキスパートアドバイザーはテストし、最適化され、最大限のパフォーマンスを成し遂げる必要があります(堅実さを引き換えに)
    • 大抵、最初のバージョンをチェックした後、改善が必要であり、エキスパートアドバイザーは簡単に拡張される必要があります。
    • そのアルゴリズムのボトルネック(最小値で注文を設定することで、ポジションのオープンやクローズの順序、最大ロット制限の迂回、接続切れ後の作業開始)は、最終バージョンにてどれが関連性を保ち続けているのかわからないため、処理される必要はありません。
  2. 状況2- 戦略の準備が整い、 実際のアカウントのために正当なエキスパートアドバイザーが必要です。以前のバージョンから、以下の点で異なります:

    • すべてのトレーディング処理は、できる限り正しくある必要があり、ユーザー定義のパラメーターの値はテストされる必要があるが、すべての値は作業プロセスの中で計算されます。
      トレード要求の「質」は、あなたのアカウントとサーバーの「関係」に直接影響を与えますーもしそのサーバーが間違ったトレード注文により破壊されると、アカウントを損傷し、状況をコントロールできなくなってしまいます。

      重要なエラーの場合、ユーザーに知らせる必要があります(スクリーン上や、Eメール、スカイプ、ICQ、SMSなどを通して行います。)

    • そのパフォーマンスのスピードに対して、その作業の堅実さは、前面に押し出されました - もし追加のチェックが可能なエラーを防ぐことを助ければ、エキスパートアドバイザーに含まれる必要があります。たとえテストや最適化を遅くしても(リアルタイムで業務を進める際、実行スピードは、明白ではありません。)
    • さらなる改善は、たとえ必要でもマイナーなものですしたがって、拡張性のための必要な条件は明記されました。
    • すべてのアルゴリズムの「ボトルネック」は、徹底的に考えられ、処理される必要があります. エラーが発生する最小限の状況です。(不幸にもそれらの供給を作成できません。)

      • エキスパートアドバイザーは、一時的な接続停止、アカウントへの再接続、クライアントターミナルリセットごも通常の作業を回復することができます。
      • もし未決注文を設定できないなら、追跡される必要があり、価格レベルが達せられる時に、市場価格で実行されます。
      • もしNのうち市場価格でのポジションをオープンできないなら、最大許容可能スリッページは、拡大される必要があります。
      • アルゴリズムによって提供されていないレベルでの未決注文の実行にて、スリッページとともに、すべての依存する注文のレベルは、調整される必要があります。
      • そのデポジットのサイズで稼働するすべての関数(ロットの計算など)は通常、バランスとの非トレード関連処理も受け付ける必要があります。

      そのリストは長く続きます。そのようなニュアンスの無限さがあり、それぞれの戦略はそれぞれの詳細を持ちます。

    • さらには、追加の必要用件があり、エキスパートアドバイザーは、異なる証券業者と同調し、使用可能な証券や、その名き、その他のサーバーの設定(未決注文の最大数、損切りレベル、逆方向でのポジションのオープン)などを考慮する必要があります。
  3. そして、状況3 - エキスパートアドバイザーを $100 000のデポジットの実際のアカウントを稼働させる準備が整いました。実際のアカウントにおいて、以前のバージョンと比較して、何か変更点はあるのでしょうか?すべてはあなたの先見性に依存します。

    • より多くのログファイルの作成や、グラフのスクリーンショットの保存を行うことは絶対的に害はありません。問題や議論を分析する上でとても役に立ちます。
    • もしエキスパートアドバイザーを専用サーバーにて稼働することを計画するなら、別のコピーとの連携のコントロールの可能性を想像できます。例えば、同時にエキスパートアドバイザーを専用サーバーにて稼働させ、自宅のコピー版が、5分かそこらの間、「サーバー」のコピーの接続切れの場合、状況を管理できるようにします。
    • EAの動作を継続的に関してできないのであれば、アカウントとトレードに関する1時間ごとのレポートの受け取りを実装できます。重要なエラーは、どの場合においても送信されます。
    • 電話を使用している時でさえ、そのトレードのプロセスを管理できるようになりたいのであれば、「フィードバック」を実装できます - それは、エキスパートアドバイザーにSMSやEメール、ICQを通してコマンドを送信する機能です。(コメントにコマンドの詳細を付け加えます。)

違いがわかりますでしょうか?これは、メソッドの一部分でしかなく、これらの要素は無限に広がります。そして、まだ言及していない多くの詳細があります!

詳細を検討した後、アルゴリズムの詳細を考えることは、エキスパートアドバイザーの目的や顧客の必要項目に依存することが明確になります。

すべてのニュアンスの実装の質をプログラマーには求めることはできません。そのような質の標準がまだ存在していません。したがって、エキスパートアドバイザーが必要な理由を決定し、異なる状況でどのように動作するか考え、技術的必要用件でこれを言及してください。

(不当なストップや孫引きなど)シンプルなエラーのハンドリングは、自尊心のあるEA開発者によって追加されます。しかし、この「標準の動作」はあなたの特定の戦略に適しているとは保証できません。

例えば、もし計算されたレベルに設定できない場合、ストップロスレベルを最小許容可能距離に設定することはベストな方法ではありません。そのほかの注文やポジションの最大ロスはそれに依存しています。なので、もし実際のアカウントのためにEAを作成するなら、作業の準備段階で、最大のシナリオ量を考えてください。

プログラマに可能な状況のリストを準備してもらい、そのハンドリングのアルゴリズムを作成してもらえます。しかし、あなたの戦略の分析や改善、アルゴリズムの作成などは、エキスパートアドバイザーの記述に直接関連しないことを忘れないでください。個別の作業であり、その結果はエキスパートアドバイザーのコードではなく、アルゴリズムのテキストです。この作業に対して追加の支払いを要求します。彼は時間を捧げているので。ほかのプログラマにアルゴリズムを頼むこともできますが。

そして、すべてのプログラマーが実際のアカウントを扱う経験があるとは限らないことを忘れないでください。基本的に、すべての驚くべき要素を知りません。おそらく、すべての会社や、すべての種類のアカウント、すべての証券、異なる市場条件を扱ったことのある人は一人もいません。経験を共有し、プログラマーに経験を共有してもらい、すべてに対して保証されているとは思わないでください。これは不幸にも非現実的です。

最も重要な部分に近づきました - 技術的な必要用件の準備です。しかし、少しの逸脱を行う前ではありません。


4. 語彙の同調化

会話を始める前に、コミュニケーションをとる相手がどのような人か理解しましょう。"その線の反対側"には全く異なる人がいて、所有する知識は全く異なります。

"使用する語彙を同調する"まで (共通の言語、用語を見つけ、定義する)共通のゴールに向けた動きは困難を極めます。初歩的なことでも、シンプルなエキスパートアドバイザーの開発が関係の確認にたくさんの日数が費やされるほどの困惑を生み出します。

遠回りをしましょう。

蛇口を変える必要があると想像してください。配管工を呼び「顔を洗うために使用するものを壊しました!片手でつけられる新しいものが欲しいです」と言います。おかしく聞こえませんか?しかし、トレーダーから送られるタスクの幾つかはより馬鹿げているのです。

この配管工の立場になってみてください。ええ、適切にどうなっているか理解しますが、このタスクに関して何もできません。テレパシーでしか、どのような蛇口が欲しいか理解できません。

これを別の方法で行ってみましょう。呼び出し、言います:「新しい蛇口をバスルームで必要です。 "温冷水のためのパイプの直径は13mmで、パイプからシンクの底までの距離は20cmです。水圧の調整や水温は、片手で行われる必要があります。複数のモデルから選びたいと思います。

ビンゴ!やっと配管工は、以下のことを知りました: a) 蛇口の取っ手が必要である ; b) 二つのバルブで、片手でコントロールしたい ; c) 20-25cmの長さで、直径13mmのホースを接続する必要がある。家に着けば、幾つかの選択肢を提供し、仕事を素早く行うことができます。

MQLで記述するたくさんのプログラマーは、トレーディングの知見があり、カスタマーとコミュニケーションし、エキスパートアドバイザーをプログラムすればするほど、その分析のアプローチの多様性をより理解します。さらに、多くは自分のために戦略を作成していますので、トレーディングの文章を学び、主題のフォーラムに参加したことがあります。

しかし、それに頼りすぎないでください。「最後2フラクタルでフィボグリッドを伸ばして下さい」という日々使用するフレーズも、熟練していない技術者を行き詰まらせます。共通して使用されるフレーズ「ロックのトリガーの後、」もしくは「ロンドンの開始時に、損得無しのレベルに設定してください」を使用すると、結果的に質問などで数時間とられることが保証されます。

共通の「MA」が「36の平滑化期間の移動平均の技術的インジケーター」と呼ばれる必要があるというわけではありません。しかし、常に話しかける人が異なる知識や視野を持っていることを忘れないでください。

中間結果としてー幾つかのコツ:

  1. 省略や専門用語無しにシンプルで理解できる単語を用いてあなたを説明して下しあ。
  2. 共通の用語を使用してください。もし幾つかのツールやイベントを呼び出す方法を知らない場合、リファレンスや教科書の言い回しを使用してください。
  3. 詳しく完全い説明してください。明確に何を考えているかについて話してください。しばしば自分だけに明確であることがあります!
  4. 最後に、その他の人があなたを理解したことを確認してください。質問をするか、その業務をまとめもらうよう頼み、同じことを話していることを確認してください。

EAの作成者の方へ。もし間違ってトレーダーの方にのみ関係するものであると考えた方には、失望させるかもしれません。技術的に有能な人間とひて、すべての作業プロセスが正しいことに責任を持っています。そして、成功に対して責任を持ちます。

かなりのトレーダーが正確に、正しく業務をまとめることができませんーこれが事実です。6年間のEA記述経験から、二人のクライアントのみを覚えており、彼らのタスクはとても驚嘆するもので、MQLにただ移されるだけのすでに出来上がったプログラムでした。多くの人々が、「何が欲しいか理解しており」、「その考えを表現できる」とタグ付けされます。彼らのアルゴリズムを読み、将来のプログラムがどのように動くかを理解しました。しかし、カスタマーの大半は、トレード初心者であり、EAの動作を明確に示す必要性に恐怖するだけでなく、アルゴリズムという言葉に恐れています。

しかし、少し心理学者になり、あなたのパートナーのレベルを判断し、それに応じた単語やコンセプトを使用してください。あなたの知性をぶつけないでください。可能であれば、すべてのプログラミングのニュアンスを議論中は排除してください。その人はサイクルが何か、バーのナンバリングがどこから始まるのか、ファイルに情報を保存するその関数がどの条件下で実行されるか知る必要もありません。

これは、そのカスタマーが「赤ちゃん言葉」で話される必要があり、EAが少しの反対で書き換えられる必要があるというわけでありません。それは不可能です!しかし、良い技術者であるだけではなく、良い会話パートナーであることを心がけてくださいー感謝してくれるだろうと思います。

それでは最後に最も重要な部分ーアルゴリズムの作成にたどり着きました。それでは始めましょう!


5. 必要条件明記の準備

タスクの準備

あなたのトレードに関係のない従兄が、あなたの準備したアルゴリズムを用いて、トレードできるようにしましょう。

この古典的なフレーズはよい技術的な明記を表しています。

  1. このタスクは、自己充足的である必要があります(あなたのシステムに馴染みのない人にも理解出来る)
  2. このタスクは、できる限り詳しく述べられている必要があります(未熟なトレーダーでさえも理解出来る程度で)

いかに、その「トレーディングに関係のない」というフレーズがカテゴリ化され、強調されているでしょうか。実際、さらに、そのシステムの本質に加えて、トレーディングの基礎やターミナルの使用の説明は難しいです。古典的なフレーズに再度戻ってしまいます。

二ヶ月前にMetaTraderをインストールしたあなたの従兄、そして、デモアカウントにてトレードをした人そのすべてを知っています。

しかし、これは本質を変えません!もしあなたがアルゴリズムを10人の異なる人々に与え、システムにてトレードするよう頼むと、全く同一の結果を取得する必要があります。そのような経験をどれくらいの人が自慢できるでしょうか?


5.1. どこから始めるべきか?

初めから開始していきます。一般的な考えを記載し、何が欲しいか理解してください。プログラムにおけるあなたのゴールと必要用件を忘れないでください。

あなたとあなたのシステムについての一般的な説明を加えると、プログラマーはあなたの意図の真剣さを評価し、作業の適切な量を想定することができます。

そのようなエントリの数例:

MetaTrader 4のインジケーターが必要です。そのタスク - チャートのサブウィンドウにて、任意の通貨ペアのチャートを描くことです。そのインジケーターは、4と5の数字に取り組み、非標準のシンボル名です。(例: EURUSDFXF)

MetaTrader5のエキスパートアドバイザーが必要です。単一通貨にてトレードすると、そのエントリシグナルは、カスタムインジケーターに基づいています。(コードが添付されています。)ポジションのクローズ - SL、TP、リバースシグナルによるすべてのポジションは、トレール注文に続き、別のインジケーターに基づきます。(そのコードも取得可能です。)そのロットは、バランス率として計算されます。
実際のアカウントを扱うためにエキスパートアドバイザーを完成させる必要があります - 必要なチェックを押し、接続失敗の後、標準の処理を修復し、エラーのあるポジションをオープンします。
チャンネルを違反するストラテジーをテストするためにEAを必要とします。インジケーターによってチャネルの領域を決定します;失敗取引の後の未決注文による市場の入り口 - 特定の係数のロットの拡大最初の注文設定が認められた際に、日のうちの作業時間を決定する必要があります。そして、MetaTrader4のコードがあります。

その作業の一部は全く難しくはありません。しかし、不幸にもこの部分は、すぐに終了します... 一般的な考えの説明であり、ただのイントロダクションでしかないということを忘れないでください。プログラムを書くためには、より多くのことを必要とします。


5.2. タスクをまとめるには?

実際、そのアルゴリズムは、最も重要な部分です。(特にでプログラマーでない人にとって)まとめることは難しく、多くの作業を必要とします。

論理的なサブセクションにそのアルゴリズムを分割し、すべてのシステムの構成を一つの知能的な文に転換しようとしないでください。

エキスパートアドバイザーを記述する上で、以下の論理セクションに区別できます(数字や内容は、戦略によります。)

  1. 一般的条件:作業時間(一週間のうち特定の日や時間)、実行の命令(例えば、ボタンを押すことでのトレードの開始など)、一般的に全体の作業に関連するその他の作業や履歴の深い分析に必要なもの。

  2. 市場エントリシグナル(最初のポジションのオープンか、最初の注文の設定)は、インジケーター、特定の価格パターン、時間やユーザーのコマンドに基づきます。これは、最初の入り口への制限も加えます - これは、時間、その他のインジケーター、長い損失期間の後、受け入れられないトレード条件の間や、使用可能な資金の不足などによるものです。ロット計算や損切り、利食いのレベルのメソッドは、個別に明記される必要があります(もしすべてのポジションにおける計算のルールが同じであれば、それらを独立した節に分けることができます)

  3. 未決注文のトリガーやポジションのSL/TPの処理(必要であれば)例えば、逆指値注文時の指値買い注文の除去、指値注文が行われる際の追加の指値売りの設定、損切り発生後大量に売るためのポジションのオープンなどです。

  4. 追加のポジションのオープンや、追加の注文におけるシグナル(もしオープンポジションがあれば)例えば、それはその他のインジケーターのシグナルによるか、オープンポジションが特定の利益や損失に達した際に行われます。損切りや利食い、ロットの計算におけるルールがあります。(上記で記述するものとは異なる場合です)

  5. ポジションや注文のトレール - 個別に最初のもの - 追加のものすべて(もしルールが同じであれば)例えば、(価格の動きが反対の方向である際に)未決注文を市場から引き上げることや、ポジションのトレールストップ、特定の利益に達した際の部分的なポジションのクローズ

  6. クローズにおけるシグナル、ポジションリバース未決注文の除去におけるルール

  7. アカウントの状況に関連したものような一般的な条件 - すべてのポジションのクローズ、ドローダウンと明記された際の作業の停止、特定のレベルへのバランスの拡大とデポジットのパーセント利用の削減などです。これらの条件は、最初のポイントに適用されますが、最終的にそれらを記載する方が簡単です。

  8. そして、最終的には、幾つかのチャートに関する情報、ポジションのオープン・クローズの価格レベルの矢印の描画、記事の詳しい情報、未決注文実行時のメールの送信、そして、トレードに関してではなく、インターフェースに関するすべてが必要とされます。

もしインジケーターについてであれば、すべてがかなり簡単になります - そのロジックはより原始的であり、複雑ではありませんが、一方で幾つかの微妙な点があります。

概要としては以下のようになります:

  1. 必要なデータ:分析済み証券リスト、使用された証券の履歴の深度、タイムフレーム、トレードサーバーのタイムゾーン
  2. 描画種類(線、シグナル矢印、ろうそく足チャート、ジグザグおようなセクション、幾何学的な図形など)
  3. メインのアルゴリズムから異なる際の最初の値の計算におけるアルゴリズム
  4. 個別バーから公式を取得することが難しい場合のシングルバーの計算や、計算プロセスの記述のための基礎アルゴリズム
  5. そして、必要であれば:オーディオシグナル、スクリーンショットの保存、メールへの通知の送信など

理論から実践に移り、幾つかのタスクを終了しましょう:

MetaTrader 4のインジケーターが必要です。作業:チャートのメインウィンドウでの任意の通貨ペアのチャート描画そのインジケーターは、4と5の数字に取り組み、非標準のシンボル名です。(例: EURUSDFXF)
  1. 設定にて、証券名を明記してください (シンボルパラメーター)。それは表示されている必要があります。(例: "GBPUSD_m"). もし名前が明記されていないのであれば、インジケーターが貼り付けられるチャートのシンボルを使用してください。もし「Market Watch」ウィンドウにそのようなシンボルがなければ、エラーメッセージ付きのウィンドウを表示する必要があります。
  2. そのインジケーターは日本のろうそく足として描画される必要があります。成長、降下するろうそく足の色、影は、入力パラメーターとして設定される必要があります。(個別に-上方、下方)
  3. 各バーのOHLC値の計算は、公式によって行なわれます」
    • Open (indicator) = 1 / Open (symbol);
    • Close (indicator) = 1 / Close (symbol);
    • Low (indicator) = 1 / High (symbol);
    • High (indicator) = 1 / Low (symbol).
  4. 全「ラウンド」価格 (1.3200, 1.3300, 1.3400, 1.3500, ...)、つまり、100ポイントの4の数字の倍数にて、水平線を引く必要があります(色などは入力パラメータに設定される必要があります)

これはエキスパートアドバイザーでは少し難しくなります。

MetaTrader 5のエキスパートアドバイザーが必要です。シグナル通貨におけるトレードをし、その市場エントリシグナルは、カスタムインジケーターに基づきます。ポジションのクローズ - SL、TP、リバースシグナルによるすべてのポジションは、トレール注文に続き、別のインジケーターに基づきます。(そのコードも取得可能です。)そのロットは、バランス率として計算されます。
  1. ポジションのオープンのためのシグナル - iSignalArrowインジケーターの矢印(全インジケーターパラメーターは調整可能であるはずです。)
    • ロングポジションは、もしインジケーターの矢印が最後に閉じられたバーの(チャートの下)を指しているのであれば、オープンになります。
    • ショートポジションは、もしインジケーターの矢印が最後にクローズされたバーの (チャートの上)を指しているのであれば、オープンになります;
    • 現在のバーの矢印は無視され、完了したバーのみが分析されます。
  2. そのポジション量は、現在のバランス率として計算されます: Lot = Balance/MarginRequired * LotPercent / 100 ただし:
    • Balance - 現在の口座バランス
    • MarginRequired - 1ロットのサイズのポジションのオープンに必要なマージン;
    • LotPercent - 入力パラメーター(ロットの計算におけるパーセンテージ)

      例えば、LotPercent = 5の1:100のレベレッジの際、EURUSD(1.3900の価格)におけるロットは:10 000 / 1 390 * 5 / 100 = 0.3597 です

      取得された結果は、普通のルールによって最も近い正しい値にされます(0.36まで - もしDCが0.01か0.4まで - もしロットステップが0.1の場合 - の正確さのロットを許容すればです。)

  3. StopLoss (SL)とTakeProfit (TP) - は、固定され StopLossTakeProfitのパラメーターによって調整できます:
    • そのレベルは、4つの数字にて明記されます:
    • そのレベルはオープンポジションに関連して計算されます (Ask価格 - ロングポジションにおいて、 Bid価格 - ショートポジションにおいて);
    • もしその値が低すぎれば、そのストップは最小の距離にて設定されます。
    • 0 値が明記されれば、そのストップは使用されません。
  4. すべてのオープンポジションはiTrailingLineインジケーターに続きます。(すべてインジケーターパラメーターは調整可能である必要があります。):
    • ロングポジションはオープンになり、そして、インジケーター線は現在の価格の下にある場合、そのストップはインジケーター線のレベルに移動します;
    • ショートポジションはオープンでそして、そのインジケーター線は現在の価格よりにある場合、そのストップは、インジケーター線のレベルに移動します。
    • そのインジケーター値は、完成されバーから取得され、その現在のバーは使用されます。つまり、その修正はバーごとに一度以上存在します。
    • SLへの移動は、ポジションの利益の方向にのみ許されています - 長いポジション上 ショートポジション下です;
    • もし線のレベルでSLを設定できなければ、最小の許容可能距離にて設定される必要があり(しかし、利益の方向での移動の以前のルールでコンパイルします)
    • トレールストップの特徴は、調整可能である必要があります (AllowTrailing = true/false パラメーター).
  5. もしオープンポジションがあり、反対のシグナルがあれば、オープンポジションは閉じられる必要があり、新しいものはオープンにする必要があります(反対の方向にて)

    新ポジションにおいて、ロットの計算はオープンポジションのクローズ後に呼ばれるべきです。

  6. その他:
    • エキスパートアドバイザーを稼働させる際に特定のパラメーターに使用されるインジケーターを貼り付けます。
    • ポジションのオープン/クローズとSLの修正に関する情報ははJounarlに保存される必要があります;
    • もしエラーがあれば、エラーが記載されるメッセージが表示されます。

この形式で、そのアルゴリズムはプログラマーに送られれます - そのシステムについての詳細を含み、MQLに「翻訳」されることができます。しかし、そのほかの注文と混同させず、最後まで考えましょう。


5.3. 何を覚えておく必要があるのか?

何を覚えておく必要があるのか?これらのアルゴリズムに基づいて記述されプログラムは、理想的な条件の下うまく作動します - 個別なクライアントターミナルにて、アカウントへのシングルアクセス、ユーザーかそのほかのプログラムの干渉なしで行います。

そのような環境の例 - ストラテジーテスター、接続損失エラーや、突発的なクローズされたポジション、そして、そのほかのトレーディングエキスパートアドバイザーがありません。しかし、そのような条件は極端にレアであり、そのプログラムは、「外部世界」にて処理を行います。

異なる設定や異なるシンボルでのプログラムの複数のコピーを稼働したいと思い、そのターミナルを再スタートさせ、アカウントにて手動でトレードを行い、異なるアカウントからターミナルから接続します。

あなたのゴールはストラテジーテスターのプログラムをテストするよりも、より大きなスケールを持つのであれば、外部世界との連携のルールを紹介します:

  1. どのようにエキスパートアドバイザーは、ポジション か、そのほかのエキスパートアドバイザーに反応すべきでしょうか?

    普段人々は、その3つのオプションのうち1つを選びます;

    • 完全に全てのそのほかのポジションを無視してください。もしそのシステムが自己充足的であれば、その他のエキスパートアドバイザーのトレーディング行動はシステムに影響しません。
    • 「手動の」ポジションを扱ってください。もしエキスパートアドバイザーが手動でオープンポジションに伴うよう設計するならば、エキスパートアドバイザーのポジションと関連すべきではなく、独自のポジションをオープンしません。その作業は、手動のトレーディングを助けることです(損切りを移動し、シグナルでポジションをクローズしてください。)
    • 普遍的なソリューションは、ユーザーに選択肢を与えることです:ポジションを扱うか、特定の条件を満たすポジションに同伴することです。(特定のシンボルにおいて、特定のマジックナンバーにて)

    MetaTrader 5では、トレードを「独自」や「その他」に分類することは特に関連しています - ターミナルは、例え、幾つか異なるエキスパートアドバイザーの取引から収集されたとしても、そのシンボルの合計ポジションのみを表示します。完全な取引のアカウンティングの実装(シングルシンボルにおいて複数のEAの通常の処理において)はその実装においてより難しく、より高価です。エキスパートアドバイザーは通常エキスパートアドバイザーを扱うか否かにかかわらず、候補者/開発者をチェックしてください。

  2. どのようにエキスパートアドバイザーは、その他のトレーディングアカウントへの接続に反応すべきでしょうか?実際のアカウントにて作動させるための必要があるのでしょうか?

    多くのトレーダーは注意の不足による損失について自慢します- リアルアカウントへの突然的な接続、エキスパートアドバイザーでのターミナルの起動、エキスパートアドバイザーの変更などです。これらは、そのアルゴリズムにて考慮することで避けることができます。例:

    • 実際のアカウントでEAを作動させた際に、トレードを認めるチャート上にボタンを作成する必要があります。その作業は、ユーザーがクリックした後に開始する必要があります。
    • アカウントを変更する際、EAはこれについてユーザーに忠告し、新しいローンチが実行されるまでに作業を停止させる必要があります(代替案 - 作業を続けるかユーザーに尋ねることです。)
    • もし外部パラメーターにて変化があった際にEAによってオープンされたポジションがあれば、EAは設計されたアルゴリズムに沿ってポジションを修正する必要があります。ー例えば、もし StopLossの値の変更があれば、すべてのオープンポジションのStop Lossを修正する必要がありますが、トレール注文によって移動されていない場合のみです。普遍的なレシピを提供することができず、それぞれのパラメーターは個別に記載される必要があります。さらに、異なる戦略において同じパラメーターにおける変化の異なる反応があります。
  3. 類似したパラメーターにてプログラムのコピーを作動させる必要がありますでしょうか?もしエキスパートアドバイザー

    が複数のインジケーターのコピーを稼働させ、一つのみのパラメーターの値を変更することで、チャートにグラフィックオブジェクトを設置するのであれば、このパラメーターの名前を含んだ値を含む名前を持つ必要があります。-さもなければ、以前のものの結果を破壊することになります。エキスパートアドバイザーの場合、普段特別のパラメーターが追加され - ExpertIdやMagicNumberなど、そのほかのパラメーターと同じもので、EAの複数のコピーを同時に実行することができます。どの設定やどの組み合わせにおいて、プログラムを独自に稼働させる能力があるのか、を明記してください。すべての状況がプログラマーの手によって提供されるというわけではありません。

  4. 同じアカウントに接続している状態でのEAの別の口座への統合はどのように実装されるべきでしょうか?エキスパートアドバイザーはファイルかターミナルのグローバル変数にデータを格納することができるでしょうか?

    多くのプログラムにおいて、中間情報を保存する必要はなく、アルゴリズムは、現在の通貨ペアの履歴データや、アカウントのトレーディング履歴に基づきます(このデータは、アカウントに接続したターミナルならどこからでも取得できます。)しかし、ファイルに幾らかの情報を保存し、次の起動時に取得することは時折必要とされています - 時々、これにより実行スピードを加速させることができ、それなしに実行可能なプログラムを作成することはできません。EAの遷移時に特別な必要用件をプログラマーに伝え、このプロセスを特別に記載することを頼んでください。

すべては不幸にも提供されません。例えば、(そのほかのEAによってオープンされたポジションのために)もしポジションのオープンに必要なマージンが十分でなければ、シグナルをスキップするか、より小さい量にてオープンする必要があります。

もしそのほかのEAがトレーディングの文脈を閉めると、あなたのEAはトレードできなくなってしまいます。そして、もし未決注文の最大数において制限があれば、新しい注文が設定することができなくなります。しかし、多くのインジケーターがあなたのアルゴリズムにて提供されるため、これ以上状況をひどくはしません。経験を得れば、EAのそれぞれのバージョンはより使用しやすくなるでしょう。


5.4. 理解を単純化するには?

情報は、もし図示されていればより簡単に理解されます

シンプルな戦略を理解するために、テキストでの詳細があれば十分ですが、システムが不慣れで、複雑であれば、プログラマーを助けようと幾つか対策を行ってください。

  1. そのアルゴリズムの様々なポイント(シグナル発生時刻、トレール注文の市組の詳細、未決注文の設定)を示すスクリーンショットを作業に貼り付けます。たとえ、そのアルゴリズムの文章の複製で会ったとしても、簡潔なコメントつきでグラフを提供することを遠慮しないでください。
  2. そのタスクのテキストをフォーマット化してください:ロング ショートポジションのための色に使用し、 外部変数をハイライト表示し、 重要なポイント公式をマークします。そのテキストが読みやすくなるのに加えて、 その部分をうまく切り抜けることができるようになります。
  3. を提供します。具体的な数字にて示される等式は、よりわかりやすかったです。
  4. そのアルゴリズムのパラグラグやサブパラグラフに数字を振ってください - 議論の際に参照できるようになります。"ポジション2.1.4のエラーは、「二番目のロングポジションの損切りレベルが計算された場所のエラー」よりかなり短くより正確でした。”


5.5. テキスト、ボイス、ビデオ?

テキスト、ボイス、ビデオ?クライアントが作業を送ってくる代わりにその戦略の120ページの議論へのリンクや、70ページの本、30分のビデオ講義を送ってくる際はとても面白く感じます。実際に、プログラマは世話する必要のないすべての時間を持って、これを勉強する時間を取ってくれます。この情報の役に立つ部分は、1ページ半のアルゴリズムにフィットするという事実か、これをまとめることが難しいという事実、どっちが関係者の不安をかきたてないでしょうか

すでにこの資料を研究しており、それが何か理解し、戦略が如何に作動するか知っているのであれば、そのアルゴリズムを公式化してください。その「浪費物」(情報の80パーセントを示す)を除去し、ぎこちない停止、注意散漫にさせる議論、輝かしい将来の話、テスト結果の監視を除去し、候補者/開発者は、プログラムを記述する上で本当に必要なもののみを受け取ります。

しかし、その本や講義が何に関するものかまだ知らず、これが本当に自動化トレーディングシステムを作成する上で十分なのかわからないので、質問を異なった形で公式化しましょう。「この戦略に基づいてエキスパートアドバイザーを記述する上でいくらのコストがかかるのか」戦略がある際に尋ねてみましょう。

そして、この場合ある一定の情報量があります。それは質です(公式化に従順であるか否か、など)は、未知のものです。そのプログラマーが「そのアイディア」のために勉強することに興味があるか否か尋ね、そうでないのであれば、「長い議論」の中から、トレーディングシステムにおける十分なルールを記述する上でいくらほど必要か聞いてみましょう。質問の形式でさえ候補者・開発者とあなたの関係性を示します。

すべてのプログラマーがある戦略の議論に関して数ページも読むことに興味はなく - その他のアイディアをすでに十分持っており、新しい情報は読む必要がありません。

トレンド線の構築や、その役割についての講義を聞きたいとすべての人が思いません。これは退屈であることが多く、さらに、公式化することは難しいです。幾つかの瞬間は、文字通り工夫を課するものであり、推測され、実験の中で選択され、追加の情報を探し、研究する必要があります。一般的に、そのプロセスは、とてもやりごたえがあr、創造的でな作業ではあります。

スカイプや電話にてコミュニケーションをとりたい人を個別に言及したいと思います。口頭で戦略を説明したいという思いは、ただ単に(キーボードを叩くなど)余分なアクションをとりたくないという思いから来るのではなく、 著者の戦略の理解の欠如によるものです。

もし推測や著者の直感に基づくのであれば、トレーディングルールを築くのは不可能です。感情的で悲惨なストーリを構築することはとても困難です。そして、長いビデオ講義と同様、プログラマは常にこれらの「暴露」を聞くことに興味を持ちません - プログラムを書く上で、アルゴリズムが必要であり、誰かが書く必要があるためです。

現代の技術の重要性を過大評価することは難しく - 音声やビデオ、モニターからの画像を見せてコミュニケーションする際の共通の言語を見つけることはとてもたやすいです。しかし、議論すべき内容があれば、その会話はより生産的になります - 紙に考えをまとめ、議論に置いて必要な項目リストを作成しましょう。

上記から導ける結論は以下です:

もしその詳細から明確な戦略アルゴリズムを導き出せるのであれば、自身で行い、必要な情報のみをプログラマーに提出しましょう。
もし公式化のプロセスが複雑で、かなりの作業を要するものであれば、プログラマーが無料でやると考えないでください。

どの作業をすべきかもう理解しており、特定の実行者を選択することについて進むことができることを願っています。


6. 候補者/開発者の選択

実行者の選択プログラマーの選択における質問は、その選択が問題として現れるやいないや極めて重要な者となります。すべてのカスタマーができる限り少なく支払いたく、そして、最も高い品質結果を求めています。そのソフトウェアは最高のプロに記述され、同時に無料であることが理想です。これはただ理想であり、高価なプロと初心者の中をかき分ける必要があります。

あなたの最初の 仕事を実装してくれる開発者を選択する際に、以下の基準を評価することをアドバイスします:

  1. MQL4/MQL5でのパブリックプログラミング経験

    もしEA開発者が一週間前に市場に参入したのであれば、一週間で去っていくかもしれません。二年間の経験を持つ「プロ」は、突然いなくなるかもしれませんが、この可能性はずっと低いものです。開発者とのコミュニケーションの損失は、新しい注文を作成することを脅かすだけではなく、

    • サポートの損失を意味します。(エラーのないソフトウェアはなく、ひどくテストされたプログラムしかありません)
    • 最小の改善を行う複雑さ(その他の人のコードが常に扱いづらく、他の人は少しの変更もかなりの量を要求します)
  2. 実際のカスタマーからのフィードバック.

    それは真実の基準です。もし実際の人に使用されるプログラムを書いていれば、それはつまり作動するということです。さもなければ、プロフェッショナリズムの欠如を晒すフィードバックを発見することとなります。

    もしプログラマーのサービスを使用したトレーダー友達がいれば、アドバイスをもらえるよう頼んでみてください - 少なくとも、期待された結果を得ることができるでしょう。

  3. オンラインでの対応.

    数日間答えを手紙で待ちたい人はいないと思います。2時間でさえ長すぎるかもしれません。

    その人を監視してみてください - 彼が頻繁に「オンライン」か、メッセージに即座に対応するかをチェックしてください。将来これがかなりの時間を節約させる要因となります。

  4. コミュニケーションメソッド.

    現在インターネットを通してコミュニケーションする方法は様々に存在しています:Eメール、ボイス・ビデオチャットプログラム、プライベートメッセージなどです。ある人は一つのメソッドに精通していますが、一方で他の人は別のものに詳しいこともあります。良いコミュニケーションのために、双方にとって快適なメソッドを選択する必要があります。

    一つ以上のプログラムをインストールすることは問題ではありませんが、必要がないのでやりたくない人もいますライブコミュニケーションを必要としているなら、準備が整っているか開発者に相談してみてください。特に電話で話したい、直接会いたい場合は前もって調整してください-すべての人が「オフライン」で作業を行うことに同意しません。

  5. 協力条件.

    注文を行う前に、協力における条件を規定しておくことが必要です:

    • 「フリーランス」 サービスを通して作業を行うことができますか?この質問に対する肯定的な答えは、その他多くを無効化します。
    • 前金が必要ですか、そうであればいくらでしょうか?
    • プログラムはどのようにチェックされますか?デモ版をいただけますか?
    • プログラムのソースコードをいただけますか、もしそうであれば、支払い後でしょうか、いつですか?
    • プログラムの配布の権利はどなたが所持しますか?
      プログラマーの誠実さを測ることはうまくいきませんが、以下の点を明確にすることは有効です:クライアントのEAやアルゴリズムを売っていると繰り返し疑われているか、評判が長く続いているか、です
    • 技術サポートはどのくらいの期間でしょうか?エラーの修復は無料でしょうか?小さい改善はいくらでしょうか?

    これらは、後ほど話あうのは難しいので、金銭的な関係を始める前に明確にするべきです。

  6. 支払い方法.

    開発者はどの支払いシステムを使用しているのでしょうか?支払いは銀行振り込みか、クレジットカードで行えるのでしょうか?支払い通貨の要件をチェックしてください - インターネットは国際的で、ロシアバブルは必要ではありません。

  7. キャラクター.

    一回限りの協力ではなく、継続的なパートナーをお探しの場合は、キャラクターがお互い合うか確かめてください。互いに交流をし、その他の仕事の話から必要条件を暗に意味し、世界観やあなたの原則、弱点などを話してみましょう。

    代替案 - 最初に選んだ人に頼み、そのプロセスにおいてすべてを確かめるのも良いです。しかし、このパートナーが最初の試みからは遠く離れて見つかる場合があります。

  8. 作業のコスト.

    最後に大事な点重要なプログラムを1時間の作業を$10という値段で行っている人に頼みませんが(作業の質を信頼できないため)、$1000の人にも支払いたくはありません - したがって、真ん中あたりの値段設定に頼む必要があります。一方、その価格は実行者のプロフェッショナリズムを指し示し、他方で、興味や作業の仕事量にも依存します。「Mercedes」を$5で得られると期待せず、「Buick」に支払いすぎないようにしましょう

コンタクト用情報やカスタマーからのレビューの乗った作業可能な技術者リストである「プログラマーリスト」の話を度々上げてきました。そのようなリストを作成する試みは幾つかあり - 自分のものとして、 フォーラムユーザーやこのテーマに関心のない人々による"An Expert Advisor Made to OrderManual for a Trader " 記事(mql4.comにてご覧になれます)があります。最初の 注文の選択をかなり助けてくれます。.

しかし、数年前から包括的で継続的に更新されるリストはありません。それを作成するために一緒に作業をできますが、このアイディアの議論についてはこの記事の範囲外だと思います。


7. 詐欺から自分を守る

様々な人々が存在し、様々な状況があります。信頼の置けるEA開発者においても、作業を終了せずいなくなったり、信頼できた人もプレッシャーの中で同意条件に違反することもあります。必要でない機会は利用しないでください - 「フリーランス」 サービスを使用しましょう!

自動トレーディング戦略開発に続き、2010年中頃、MetaQuotes Software Corp.は、新サービスをリリースしました。その目的は、カスタマーと開発者の関係性を構築することです。6か月経った今でも、そのサービスは人気で、多くのトレーダーやプログラマーに使用されています。

このサービスに関するより多くの情報は、 使用方法に関する記事やフォーラムの 公的な文言からご覧になれます:

MQL5.communityの"Jobs" サービス と、そのほかのサイトの類似サービスとの大きな違いは、安全性にあります。カスタマーやプログラマーは、共同作業を通してお互いの怠慢さから身を守っています。議論の際には、 MetaQuotes Software Corp.は、仲裁人の役割を引き受けてくれます。

このような徹底的なサービスの提供にもかかわらず、今で使用において問題が発生します。その大半は、以下のシンプルなルールにより避けることができます:

  1. (あなたがトレーダーなら)新規注文を処理する前や、(プログラマーなら)実装の提案を行う前に、サービスの条件を確認してください。そのルールの理解不足や無関心な読みにより問題が多く生じています。もし幾つかの点が不明確であれば、もしくは曖昧に解釈できるのであれば、特別支部 - にて確認の質問を行ってください。あなたの質問により、ルールがよりシンプルで率直なものになるかもしれません。

  2. エキスパートアドバイザーを注文する際には、明確なアルゴリズムを用意してください。
    この点について焦点を当てた記事の章が幾つかあるので、ここでは繰り返しません。

  3. 適切な価格や、適切な作業のタイミングの開発者・候補者を選択してください。「無料のチーズ」に魅了されてはいけません。そのようなものは存在し亜mせん。開発者のポートフォリオを見て、終了した仕事のフィードバックを読んでみてください。そのほかの仕事で忙しすぎないことを確認してください - おそらく、これは注文時間に間に合うことを妨げる要因です。
    そして、実装時間は、2ndステップ(必要条件の交渉) の後、考慮されます- そのプロセスの詳細は規制されておらず、仕事のスケジュールは、各個人に依存します 。

  4. 「フリーランス」 サービスのメッセージを用いて、議論を行ってください -その後やっと裁定取引の事例にて使用されます
    ICQやスカイプでコミュニケーションを行っていたとしても、Jobサービスのコメントで重要なポイントを「ドキュメント化」してください。

  5. (カスタマーとして、実装者としてどちらでも構わないですが)関連するその作業の更新を監視してください:あなたのパーソナルメッセージに目を通し、通知をメールん送ることを承諾するか、携帯電話番号をプロフィールに追加し、SMS通知を受け取ってください。
    そのワークフローに注意していなければ、あなたなしに、あなたの意向は無視で完成されてしまい、終了期日に、そのほかの人に閉じられてしまうかもしれません。

さもなければ、そのサービスの使用は、開発者が「フリーランス」サービスへのコミッション料金を支払う以外で中間段階なしでは作業は異なりません。


8. 結果のチェック

旅の最終地は、終了した仕事のチェックです。プログラムがアルゴリズム通りに動くことを確認するために、注意深くテストしてみましょう。

  1. 異なる条件にてテストしましょう:異なる種類のアカウント、通貨ペア、タイムフレーム、異なるパラメーターの組み合わせなどです。そのプログラムは、同様に全ての条件で正しく動くはずです。

  2. ストラテジーテスターだけではなく、 デモ口座でもそのプログラムをチェックしてみてください。そのストラテジーテスターは、明確なエラーを見つける助けをし、異なるインターバルの履歴での戦略のチェックを行います。オンラインテストは、そのプログラムが実際に違い条件でどのように動くかをテストします。プログラムの「注意を散らすもの」を作成できます - クライアントターミナルを再起動し、異なるアカウントに接続し、他のエキスパートアドバイザーやインジケーターを起動し、作業中に設定を変更してください - この段階で異なる状況での動作の特徴を学ぶ方が良いと思います。

  3. システムの利益性への期待よりも、エキスパートアドバイザーの動作と承認されたアルゴリズムを比較してください。そのアルゴリズムがチェック中にエラーを含んでいることがわかったら、必要な修正を行い、開発者に修復を要請します. しかし、これを無料で行ってくれると期待してはいけません(特にその改善が重要な場合)このエラーは開発者の責任ではありません。

問題を見つければ、開発者に報告してください。

  1. そのプログラムにより間違って処理されるアルゴリズムの部分を伝えてください。もしロジックが破綻していりう特定の場所が分からなければ、あなたの言葉で問題を説明してください。しかし、アルゴリズムの話から遠ざかってはいけません。

  2. テストが実行された条件を説明してください:

    • プログラムのパラメーター付きのファイルを貼り付けてください (エキスパートアドバイザーの「Options」ウィンドウ「Save」ボタンを押してください);
    • 使用済みペアとチャートのタイムフレームを明記してください;
    • ターミナルが接続されるサーバーアドレスを明記し、アカウントの種類を記載してください(デモ、本番、コンテストなど);
    • クライアントターミナルのビルドバージョンを明記してください("Help"メニュー - "About");
    • もしストラテジーテスターにてチェックしていれば、ストラテジテスターの設定を明記してください(テスト期間、実行種類、初期のでpじっと、レバレッジ)
  3. 問題を図示するスクリーンショットを貼り付けてください。

  4. もしその問題がポジションのオープン、クローズに関連しているのであれば、ストラテジーテスターレポートから抜粋か、アカウント履歴からの数行をコピーしてください。

  5. エキスパートアドバイザーのログファイルを貼り付けてください(クライアントターミナルの「Experts」タブのコンテキストメニューの「Open」を選択してください。)

プログラマーがより多くの情報を持っていれば、より簡単に問題を発見し修復することができます。これらのステップの詳細の後に、お望みのものを取得できることを願っています。ただ、トレーダーの忙しい平日に馳せ戻らず、他の人と経験を共有してください。


9. フィードバックの提供

フィードバックの提供

MQL は、成長するコミュニティであり、あなたもその一部です。

プログラマーを選んだ方法や、どのように最初の業務の明記を準備したか思い出してください - そのプロセスで何が役に立ったでしょうか?経験を共有してください!

明確なアルゴリズムを書き、例として提供しましょう。初心者が戦略を公式化するのを手伝ってください。さもなければ、不可能ですー助けてあげてください。

プログラマーとの経験を報告し、強みや弱みを共有、良かった点や問題点を記載してください。これは10分で終わりますが、あなたのトレーダーにたくさんのお金をもたらすことになります。

いかなる建設的な意見にも肯定的な態度であり、この記事の批判も感謝します。もし幾つかのセクションで改善点などあれば、ぜひ教えて下さい!

この記事は、仕事の詳細を記述するツールとして考えられましたが、実際はたくさんの関連したトピックを紹介しています。読みやすく、必要な情報が載った、役に立つ記事が好みです。ここまで読んだなら、数分費やしてフィードバックを記入いただけると嬉しいです。あなたのコメントのおかげで、この記事はより良くなります。

エキスパートアドバイザー開発者からの懐疑主義者を予想し、この記事はMetaQuotes Software Corpの依頼で作成され、その目的は、サービスを宣伝することではなく、カスタマーとプログラマーの関係性を手助けすることであるとお伝えしたいと思います。

プロフェッショナルとして、この先駆けを支え、ビジネスを次のレベルに上げる手助けをしていただけることを願っています。コメントをお待ちしています。


結論

自動トレーディングは引き続き新しい弾みを得ます。どこにどのように向かうのかは私たち次第です。

関係性を築き、すぐに高品質なエキスパートアドバイザーという形で利益を刈り取れるでしょう。