English Русский 中文 Español Deutsch Português
Expert Advisorのオーダーメード - トレーダー向けマニュアル

Expert Advisorのオーダーメード - トレーダー向けマニュアル

MetaTrader 4 | 17 2月 2016, 15:08
626 0
Andrey Khatimlianskii
Andrey Khatimlianskii

はじめに

トレーダーが全員プログラマーというわけではありません。そしてプログラマーが全員優秀というわけではありません。自分のシステムを自動化する必要がある場合、何をすべきでしょうか?MQL4 を学ぶのに時間も欲求もなしで?通常はフォーラムを訪れ、「プログラマー求む」というような名前をつけてトピックを作成します。

本稿は特に Expert Advisor を書く上で助けが必要な方向けに書かれています。みなさんはここで EA プログラマーの連絡先情報、彼らに連絡することについての推奨情報、頻繁におこる問題の説明をみつけるでしょう。.


Expert Advisor をオーダーする前にすべきことは何でしょうか?

プログラマーを探し始める前にご自身の戦略が収益性あるものであることを確認してください。利益をもたらさない EA にお金を使わないことです。履歴データを調べたり、頭の中でトレーディングを行ったり、事実それはひじょうにむつかしいことですが、によってマニュアルでそれを行うことができます。また、記事Testing Visualization: Manual Tradingで説明されているマニュアルテスターを用いても行うことができます。もっとも真の結果はデモアカウントまたは実アカウントのミニ版で取得可能ですが、これには時間と、おそらく費用がかかります。戦略を検証している間に次のことにご注意ください。

  • マーケットは常に変化し、履歴についてインディケータの正しい動作は実トレードで適切であることを保証しません。
  • インディケータの中にはすでに形成されたバーに関して市愚案ルを描画するものがあります。価格極値について正確に配置されているやじるしは履歴に属しています。実トレーディングでは、それらは複数バーのあとにのみ表示されます。たとえば、Fractalsによるシグナルはバー2本分遅れて表示されます。それを使うことはできますが、フラクタルでなくバーがもう2本形成されたあと(1時間足チャートでは2時間後)にだけ、マーケットに入ることを考慮するしながら、です。処理アルゴリズムを知らないインディケータは使用しないことです。これは悪い結果に導きます。
  • 意図して、または意図せず将来に配慮するインディケータは数多くあります。たとえば、負のシフトを伴う単純移動平均はやがてマーケットのピボットを表示します。 ですが履歴上でだけ...

この種の数多くのエラーはデモアカウントでリアルタイムモードにて戦略を検証する方法で検出可能です。とはいうものの、信頼性があるように見えるこのチェックは実トレーディングのトータルの一致を保証することはできません。なぜならデモとオンタイムのアカウントにはいくらか相違があるからです。

  • デモアカウントでのオーダー実行速度は常にオンタイムのアカウントでの実行速度よりも速いものです。ライブのポジションはオーダー送信から数分後にやっとオープンするようにします。これは長期的戦略の結果に影響を与えませんが、毎日のトレーディングは完全に台無しにしてしまいます。
  • ライブのアカウントでは トレード条件(スプレッド、ストップオーダーまでの距離、マージンコールレベル、等)はトレーディング中に変更可能です。たとえば、ニュース発表や休日前などです。デモアカウントでご自身の戦略を検証している間、そのような驚きはほとんどありませんが、その戦略の効率を推定するときはそのことを考慮に入れるのを忘れてはいけません。

そして、実際の資金は現金でありそれに対する態度はデモアカウントとは異なることを忘れないようにします。Expert Advisor はトレーディングのプロセスから感情の大部分を排除することができますが、完全にみなさんが犯すかもしれないエラーを排除することはできません。デモアカウントでトレーディングをするにあたっては、1つの戦略に固執し、予定を変更したり感情的な判断をしないことです。将来自分が使うことになる EA はプログラムにすぎず、厳格なルールに従って動作するものなのです。ご自身の EA がどんな結果を出すか知りたければ、ご自身のトレーディングスタイルが EA と同じ、すなわち簡潔かつ規律がある、でないといけません。


こういったチェックをすべて行った後で、ご自身の戦略がまだきわめてよい利益を出し、実トレーディングの驚きすべてを補うに十分であれば、次の段階-アルゴリズムの公式化、に進みます。



アルゴリズムの公式化

ご自身の戦略を使用して十分長くトレーディングをおこなってきているなら、アルゴリズムを一つ公式化するのはたやすいことでしょう。必要なことは、ご自分の EA がトレーディングを行う際従うべきルールをリストアップすることです。

プログラムはみなさんの戦略の考え方を熟知しているわけではない人によって書かれるのだという点に注意が必要です。細かい詳細をすべて指定する必要があるのです。:インディケータのパラメータ、ストップオーダーまでの距離、オープンポジションの最大数量、トレーリングストップのアルゴリズム、等。要求指定には重大なイベントそれぞれへの対処についての説明が入っていなければなりません。:ストップオーダーのアクティブ化、ポジションが存在するとき繰り返されるシグナルの表示、切断後の EA 起動、等。

PC は推測したり、予測したり、個別の判断をすることができない-われわれが決めるルールに従ってトレードするだけである、ということを理解する必要があります。なにか問題が発生する場合は、それへの対処法がアルゴリズムに入れられていなければ、EA は何もしてくれないのです。


要求支持があまり正確でなかったり細かくなかったらどんなことが起こりうるか例でみていきます。以下のダイアログはトレーダーのアルゴリズムに従ってプログラマーが作成する EA の処理を例示しています。私は意図的にとんでもなくばかげた文字を表示しました。これはエラーに対する注意を強調するのが目的です。理解しやすいように EA 例をすべてダウンロードして、トレーダーと共にそれらを検証することが可能です。


トレーダー

Hello!Expert Advisor をオーダーしたいのですが。
MA(9) と MA(18) のクロスでポジションをオープンするようにしたいのです。
速い方が遅い方を上向きにクロスする場合、「買い」ポジションがオープンします。逆の場合、「売り」ポジションがオープンとなります。
費用はいくらですか?

プログラマー

費用を決めるには、正確で細かい要望指示が必要です。
だいたい $25 くらいです。

トレーダー

前にお送りしたレターにすべて書きましたよ。
移動平均は2種類あって、速い方(周期 9)が遅い方(周期 18)を上向きでクロスするとき、「買い」ポジションをオープンさせます。逆のときは「売り」ポジションをオープンするのです。

プログラマー
OK、よくわかりました。
これがあなたの Expert Advisor - Sample_1.mq4 です。
トレーダー

何を書きましたか?これは EA ではないではありませんか!
なぜこんなに多くオープンポジションがあるのですか?なぜクローズしないのですか?
あなた、ほんとにプログラマーなんですか?

プログラマー

ポジション数はクロスした回数に一致していますよ。ビジュアルモードでその EA を検証してください。すべておわかりになりますよ。クロスのたびにポジションはオープンしています。
クロスが上向きなら「買い」ポジションがオープンしています。下向きなら「売り」ポジションがオープンしていますよ。
あなたの要望指示にはポジションのクローズについて一言もありませんよ。


トレーダー

言い忘れていました。オープンポジションがある場合、逆向きのクロスの際、それはクローズしなければいけないのです。ある瞬間にマーケットでオープンするポジションは1つだけです。そしてオープンポジションそれぞれに対して、距離50ポイントでストップロスが設定されなければならないのです。


プログラマー
ではバージョン2-Sample_2.mq4、をごらんください。

トレーダー

ここにはなぜオープンした「買い」ポジションがあるのですか?クロスはしてないじゃないですか!



プログラマー

クロスしてましたよ、でも消えてしまったのです。チャートはすでに形成されたバーに関するインディケータ値を反映します。バー進行プロセスでその変化を見ることはできますが、それはビジュアルテストモードの使用か実処理でだけです。信じてください。ポジションがオープンした瞬間には交点があったのです。
ご要望なら、形成済みバーのシグナルについてポジションがオープンするように EA を作成することができますよ。その場合、シグナすはすべてチャート上で表示されます。
多くのトレーダーの方は同じようにされますよ。


トレーダー

ではそうしてみましょう。それで移動平均のパラメータとストップロスとテイクプロフィットレベル値の最適化はできるのですか?


プログラマー

これがバージョン3- Sample_3.mq4 です。
-シグナル検索は形成済みバー(第1バーおよび第2バー)について行われます。
-移動平均パラメータおよびストップロスとテイクプロフィット値は外部変数で指定されます。
ご確認ください。


トレーダー

これでほんとうに欲しかったものになったようだ。
でも複数の EA を起動する場合、そのうちの1件だけがトレードを行うようになっています。お互いのポジションをクローズしあうことがあるみたいですよ。


プログラマー

バージョン4(Sample_4.mq4)では、マジックナンバーに従ってオーダーのディビジョンを追加しました。1つのシンボルのチャート1つで複数 EA を起動する場合、EA それぞれに対して変数 MagicNumber に異なる値を設定するのです。


トレーダー

これでほんとうにOKだ!

ということは プログラマー が基にして EA のバージョン4を作成した要望指示とはそもそもどんなものでなければならないのでしょうか。Expert Advisor に対する要件を編成してみましょう。
  • EA はそれ自体のポジションを管理するだけで、マニュアルでオープンしたり他の EA によってオープンされたポジションを処理しません。
  • そのEA がオープンしたポジションがない場合、
    • 速い MA が遅い MA を上向きにクロスすると、「買い」ポジションがオープンされる。
    • 速い MA が遅い MA を下向きにクロスすると、「売り」ポジションがオープンされる。
  • そのEA がオープンしたポジションがある場合、
    • それが「買い」ポジションであれば、
      • 速い MA が遅い MA を下向きにクロスすると、「買い」ポジションがクローズされ「売り」ポジションがオープンされる。
    • それが「売り」ポジションであれば、
      • 速い MA が遅い MA を上向きにクロスすると、「売り」ポジションがクローズされ「買い」ポジションがオープンされる。
  • 速い MA と遅い MA(周期、描画方法、使用価格) のパラメータは外部変数によって設定される。
  • インディケータ値はチャート周期からとられ、それについて ES が動作する。
  • 交点検出には第1バーおよび第2バーが使用される。
  • ポジションサイズは外部変数によって決定される。
  • ポジションがオープンされるとき、ストップロスとテイクプロフィットは外部変数によって決定される距離で設定される。
  • ストップロスおよびテイクプロフィットお無効化するオプションがある。
  • エラーが発生した場合、EA はエラー情報を持つウィンドウを表示し、次のティックで再試行を行う。

これはもっともシンプルなタスクです。そのようなシンプルなシステムは実生活ではひじょうに稀です。よって要件リスト作成時には詳細すべてに対して注意を払います。


明らかに前述のような愚かなトレーダープログラマーはまずいません。でも信じてください。そういう人たちは存在するのです。あたりまえに思えることでも、のちにプログラマーと言い合いになることを思えば、指示した方がよいものです。

プログラマーを探す前、最後に行うことは『ルールリスト』に従ったトレーディングを行うことです。トレーディングを行う際は、このリストに書かれていることだけをするのです。そうしてアルゴリズムを公式化するとき、省略可能な細かい点をすべて確認します。これで EA 改善費用を支払わなくてすむかもしれません。


プログラマーの選択


プログラム言語 mql4 が登場して数年、かなり多くのエキスパート開発者が存在します。その多くは常にウェブサイト mql4.com を訪れています。. かれらはここの CodeBaseに自分の開発したものを掲示し、記事を書き、フォーラムでコミュニケーションを行って初心者を助け、自分のスキルを磨いています。その多くがライブアカウントを持ち、Expert Advisor とマニュアルの両方でトレードを行っています。

プロの MQL4 プログラマーに関する必要な情報がすべて入手できる EA 開発者のデータベースはどこにも(少なくとも私は見たことがありません)ありません。そしてそのようなデータベースを作るのは困難です。なぜなら EA プログラマーの多くはおそれほど長くこのビジネスにとどまらないからです。

本稿の狙いはみなさんのプログラマー探しをお手伝いすることです。mql4.com の付録 1: EA プログラマー連絡先情報で、入手可能な情報を見つけることでしょう。
みなさんの Expert Advisor の実装のためのプログラマーを選ぶとき、
  • 友人-すでに EA プログラマーと働いたトレーダー、に相談する。
  • 実装済み/未実装 EA に関するフォーラムトピックを読む。
  • 認証されたユーザーのプロフィールを見る。その多くはプロフィールに情報を残しています。
  • プログラマーに個人的に連絡する。-Eメールか ICQ によって。
価格や作業条件は異なります。前払いで作業する人もいれば、全額支払いまでソースコードを送ってこない人もいます。またみなさんの誠意を信じて『プレゼント』として既成のコードを送ってくれる人もいます。1アカウントだけだと EA にアタッチしたソースコードを提供してくれない EA プログラマ―もいます。よって、決断する前にすべてをはっきりさせておくことです。

コミュニケーション、交渉バラエティは数多くあります。正しいものを選択してください。


Expert Advisor の検証

作業条件を話し合ってアルゴリズムを承認したら、プログラマ―は EA を書き、検証のためにそれを送信してくれます。みなさんの仕事はその EA の動作が要件指示に一致しているか確認することです。

まず、異なるパラメータの組み合わせを使って-アルゴリズムを確認するには一番速い方法です、ストラテジーテスタでそれを検証します。EA を検証するチャートを開き、結果を視覚的に確認します。


ご自身の EA がバーのオープン時だけでなく、バー形成中にも処理するなら、ビジュアルモード -ティックごとに EA の処理を確認します、検証を行うようにしてみます。ゼロ(現行)バーにインディケータ値、激しい価格変動でストップロスが移動し有効になるのを確認する、など。

ストラテジーテスタでの検証でミスが見つからなければ、こんどはその EA をデモアカウントで検証します。

異なるパラメータ、同様のパラメータで複数のTry to start several EA を起動し、それらで同時にトレードを行ってみます。何が起ころうと、EA はアルゴリズムに従って動作し続ける必要があります。エラーがなければ、プログラマ―にOKを伝え、取引を完了します。


ただ、最初のバージョンの EA にアルゴリズムに意見の相違があるのはひじょうによくあることで、これは不正確な記述、またはプログラマ―のエラーの結果であるのです。これはよくある状況です。プログラマ―に連絡をして、それが実際にプログラマ―のミスであれば、その人がすべてを修正することになります。その際、トレーダー側からのEメールでは以下を指示します。

  • EA 処理の何がおかしいのか。
  • エラーが発生している EA パラメータ
  • EA をデモアカウントでチェックしたのであれば、検証に使用したパラメータ(シンボル、期間、タイムフレーム、モデル化モード、サーバー、等)、または処理時間、サーバーアドレス
  • テスタージャーナルからの抽出
  • 問題の記述がある複数のスクリーンショット
  • EA のログ(テスターの「ジャーナル」タブ、またはデモアカウントで作業したときは「Expert Advisors」 のタブ)
必要な情報をすべてそろえると、プログラマーはエラーを素早くみつけ修正することでしょう。

通常、協力とはテクニカルサポートを意味します。EA が準備できて支払いが行われたあとででもです。それは処理を始めて1か月後にエラーが発生した場合、プログラマーは無料で修正してくれるということです。それはみなさんの手配の仕方次第です。


おわりに

自動化トレーディングはどんどん一般的なものとなってきています。数多くのトレーダーが Expert Advisor や完全自動化売買ロボットにアカウントの管理を委ねています。そのようなプログラムを書くには、特殊な知識や経験が必要です、残念ながらトレーダーのだれもに自分の考えを実装するために特殊なプログラム言語を学習する時間や欲求があるとは限りません。本稿はトレーダーとトレーダー兼プログラマーの間の関係を築き、強くする試みです。本稿のおかげでクオリティーの高い信頼性ある Expert Advisor ができることを願っています。

付録 1 mql4.com より、EA プログラマ―の連絡先情報

このセクションには mql4.com コミュニティメンバーの EA プログラマ―の連絡先が入っています。リストはつねに更新され、今助けてくれそうな人がみあたらなくても、後でチェックしてください。きっとみつかります。ここにはだれでも、詐欺師でさえ、連絡先を残すことができるということに注意ください。EA 開発者全員の作業クオリティーやI誠実さを確認するのはほとんど不可能です。誰かに依頼した(成功してもしなくても)あと、依頼した人物についての意見を含めて本稿にコメントを残してください。それは他のトレーダーが正しい判断をするのに役立ちます。

EA 開発者の方で、このリストに連絡先を入れたい方は、私に連絡先を送信ください。リストに追加いたします。リストへの追加は無料で、EA をオーダーしたトレーダーと話し合った仕事の達成のみ必要です。本稿コメントに作業に関するクレームが出、1週間以内に疑問を解消できない場合、そのプログラマーはリストから削除されます。そんなことはあまり怒らない起こらないことを願っています。

ニックネーム 名前 Eメール その他情報
komposter Andrey Khatimlianskii mql@komposter.me www.komposter.me
komposterius
211-605-801
Mike Michael Bernardovich mikemb [@] ittportal [.] net
315-165-028
Tel.: +79015453588
michal Michal Rutka mqlservice.com [@] gmail [.] com
michal_rut
Tel.: +31614511749

Jan Klimo jan.klimo [@] gmail [.] com Tel.: +420777288782
fuzzbomb Andrew Young advisor [@] easyexpertforex [.] com www.easyexpertforex.com
giaras Giampiero Raschetti giampiero.raschetti [@] gmail [.] com
giaras
5leepless Damian Burrowes sleepless.damian [@] gmail [.] com
Vitovd Witold Wozniak contact [@] mqlsoft [.] com www.mqlsoft.com
vasya_vasya
Vasiliy Orlov pr0baproba [@] mail [.] ru
555-485-590
linx Lin Xie linx_mt [@] hotmail [.] com
linx_mt


MetaQuotes Software Corp. はトレーダーとプログラマー間の契約違反 については責任を負いません。

MetaQuotes Ltdによってロシア語から翻訳されました。
元の記事: https://www.mql5.com/ru/articles/1460

4 とおりのタイムフレームからの複数インディケータシグナルの同時表示 4 とおりのタイムフレームからの複数インディケータシグナルの同時表示
マニュアルトレーディングでは、複数インディケータの値から目を離すわけにはいきません。メカニカルトレーディングではそこは少しばかり異なります。2~3個のインディケータがあると、トレーディングにはタイムフレームを1つ選ぶ必要があり、それはむつかしい仕事ではありません。しかし5~6個ものインディケータがあり、トレーディング戦略が複数のタイムフレームについてのシグナルを考慮することを要求すればどうなるのでしょうか?
インディケータコードから Expert Advisor コードへの変換Expert Advisor およびインディケータ関数の一般的スキーム インディケータコードから Expert Advisor コードへの変換Expert Advisor およびインディケータ関数の一般的スキーム
本稿はインディケータコードを Expert Advisor コードへ変換し、カスタムインディケータの呼び出しなく、Expert Advisor 内で必要なインディケータ値を計算するためのプログラムコード全体を使って Expert Advisor を書く方法に特化して述べます。本稿は Expert Advisor 変更とカスタムインディケータを基にしたインディケータ関数構築の考えを提供します。対象とする読者はすでに MQL4 言語でのプログラム経験をお持ちの方です。
MQL 4 で信頼性ある安全な売買ロボットを作成する方法 MQL 4 で信頼性ある安全な売買ロボットを作成する方法
本稿では、Expert Advisor を作成し使用する場面で生じるごく一般的なエラーについてお話します。典型的な安全な自動売買システムについてもご説明します。
インディケータコードから Expert Advisor コードへの変換インディケータストラクチャ インディケータコードから Expert Advisor コードへの変換インディケータストラクチャ
本稿はインディケータコードを Expert Advisor コードへ変換し、カスタムインディケータの呼び出しなく、Expert Advisor 内で必要なインディケータ値を計算するためのプログラムコード全体を使って Expert Advisor を書く方法に特化して述べます。本稿はインディケータストラクチャの一般的なスキーム、Expert Advisor におけるインディケータバッファの列挙、関数 IndicatorCounted() の置換を提供し述べます。対象とする読者はすでに MQL4 言語でのプログラム経験をお持ちの方です。