一瞬でトレードロボットを作る方法
トレードロボットを作るためにはトレーディングシステムが必要です
金融市場でのトレードには深刻なものを含む多くのリスクがあります。すべてのトレーダの夢は、絶えずいい状態でいて、恐怖、欲望、あせりなどの人間的な弱さを持たない トレードロボットを見つけることです。
新規の参加者は、ルーティンの動作を取り除くための、明確で厳正なトレーディングシステムをアルゴリズムの形で欲しいと考えます。これは可能でしょうか?
トレーディングシステムはマーケットに参加するために必要な条件です。もちろんそのシステムは利益を生むものであるべきです。新しい参加者がマーケットを初めて見ると、情報が多過ぎてどの情報を気にすれば良いか分からなくなってしまうことがよくあります。そういったケースでは書籍やトレーダーフォーラムが助けになってくれるでしょう。
残念ながら、すべての著者がトレーダーとして成功しているわけではなく、すべての成功したトレーダーが書籍を出版しているわけではありません。Web上の多くの特別な情報はその作者が利益を上げる目的のためだけに作成されています。自分の資金で利益を上げる方が、予想やトレーディングシステムを教えることで利益を上げることよりもとても難しいからです。
トレーダーはトレーディングシステムにおけるすべてのステージを各自でクリアしていかなければいけません。有名な言葉があります。大事なのはどのトレーディングシステムを使うかではなく、そのシステム通りきちんと取引をすることだ。さもないと、マーケットでのトレードが希望的観測に基づくギャンブルになってしまう。
トレードロボットとForex
Foorex(FX)市場は大きな流動性があると言われています。さらに、他の市場とは違い24時間トレードをすることが可能です。そのため、多くのトレーダーが、投資対象の多いFX市場に特化したトレードロボットを作ろうとします。
しかし、懐疑的な人はすべての通貨ペアは強い相関関係があり、その結果、市場のボラティリティは低くなると言います。しかし、それ対し、それぞれの通貨ペアには独自の特徴があり、ボラティティの小ささは大きなレバレッジによって補われると反論する人もいます。
どちらにしても、FXはトレードロボットを作るには魅力的な市場であり、自動取引の支持者たちはFX市場で自らのスキルを磨きます。
MetaTrader 4 と MetaTrader 5 のトレーディングターミナルは自動取引システムを開発しやすように設計されていますが、インターフェースは手動取引にも使いやすいようにできています。
トレードロボットはどう作ればいいの?
自動取引システムの開発には多くのアプローチの仕方があります。ここではいくつかの主要なものを紹介します。
1つ目のアプローチは数学を使うものです。開発者は多くの関数を持つ方程式のようなものを開発しようとします。このアプローチは、価格の動きは過去のデータを使い導き出されるモデルによって決められているという確固たる信念に基づいています。
多くの場合、このアプローチを取る人は数学に関する理解は深いですが、マーケットについては何も知らず/興味がないのです。マーケットは純粋な概念であり、知的なゲームの1種です。このアプローチには大抵、研究開発に数年かかり、その間の自動取引の結果はそれほど重要ではありません。
2つ目のアプローチはマーケットの法則の研究に基づいています。チャート上の多くのテクニカル分析による形が表れた時に、価格の上下がなぜ起きたかという理解を試みることはありません。このアプローチの良い点は、数学の特別な知識や市場を動かす力があるという仮定を必要としないことです。
トレードを学ぶときに、もっとも明快で便利は方法です。普遍的な認識を持つトレーダーに最も人気にある方法です。不利な点は、すべての必要な通貨ペアの動向をチェックしておかなければいけないところです。
遅かれ早かれ、トレーダーは取引の自動化について考え始めます。もっとも考えるべき問題はその時明らかになります。アルゴリズムにトレードのルールを当てはめるという複雑な問題です。トレードロボットにどう取引をさせるかを指示できないという、プログラマーとして共通の問題を抱えることがあります。
3つ目アプローチの は 、スペシャルソフトウェアや数学パッケージで広く入手可能な既製のツールを使用したニューラルネットワークに基づいた«black box»の作成によるものです。人工知能を持つ自動取引のシステムの作成は新規の参入者にとってもエキサイティングでやりがいのあるものです。深い数学の理解やプログラミングの経験は必要ありません。すべてが視覚的な補助のもと行うことができます。
トレーダーはテクニカル指標の基本や、必要な価格データを用意することや、ニューラルネットワークのパッケージを使った経験がある法が良いでしょう。このアプローチの主な欠点は、ニューラルネットワークで動く特別なツールを使用して作るトレードロボットは正に、”ブラックボックス”だということです。トレーダーはその基本的な働きを知らないため、市場のどのような状態がロボットにとって最も問題があるかを予測することは不可能です。
プログラマーはしばしば 4番目のアプローチを取ります。–手動による取引を全く行わずにトレードのロボットの作成を始めます。なぜ手動でトレードをするのでしょうか?数か月かけてロボットを作り、それから利益を得ましょう。
«苦しむことなく、得るのは利益だけです». ほとんどの場合、プログラマーはただのトレードロボットを作るのではなく、慣れ親しんだプログラミング言語で必要なシステムを作ります。価格のデータを取得し、プロセスしたり、チャートとインディケーターを視覚的に表示したり、過去のデータを使用したテスティングストラテジーのカスタマイズなど。
その過程で多くの経験を積みます。しかし、多くの場合、その経験は最終的なゴールに近づけてくれることはありません。自動取引システムの作成です。そして、もしトレードロボットが作成できたとしても、利益を生む保証はありません。そして、もしもプログラマーが他の取引システムを作りたくなったとしたら?大きな作り直しやプログラミングのエラーは避けられません。
5つ目のアプローチもあります– 既製の取引システム の中からトレードロボットを買うというものです。Iこの場合、トレーダーは操作者あるいは調整者ということになります。このアプローチは時間を節約することができます。(多くの新しいことを学ぶ必要がありません)そして、自動取引の世界に早く飛び込むことができます。
このアプローチの主な弱点は、その強みからきています-ロボットの動作法則やその構造を理解していません。もしも、売り手が詳細な説明書を用意していたとしても。それにより確信を持てるわけではありません。
しかし、いずれのアプローチも銀行預金ほどの保証を与えることはできません。しかし、トレードに興味があり資産を増やすことを望んでいる人にとっては銀行預金は適しているとは言えません。
自動取引を行う最善の方法はなんでしょうか?
5つのアプローチにはそれぞれ利点がり、トレーダーのタイプに対応しています。数学の理解がない場合に1つ目のアプローチ(市場分析によるもの)を取ることは少ないはずです。ニューラルネットワークによる方法も同じように考えにくでしょう。しかし、これらのアプローチはとてもエキサイティングで頭の体操にはもってこいです。
以下では、2つ目の、すでの古典的だと言われているアプローチのみについて解説します。これは、トレードの基礎について学ぶ際に、テクニカル分析が重要なエリアとして残っているため、自動取引に新しく興味を持った参加者に選ばれやすいです。
この2つ目のアプローチのもう1つの利点は、最初に手動での取引をし感覚をつかんでおけば、テクニカル分析についてのある程度の理解ができているということです。トレーディングストラテジーのプログラムや高いレベルでのニューラルネットワークの作成もできるようになります。
トレードロボットの作成の1つ目のステップ
自動取引システムを作るには、プログラミングのスキルとトレードのリクエスト処理の複雑さを知っている必要があります。しかし、まずは既製のExpert Adviserから始めましょう- コードベース ライブラリのトレードロボットからです。
Expert Advisor (トレードロボット)をダウンロードし、 MetaTrader 4のストラテジーテスターかMetaTrader 5 のクライアントターミナルで起動してください。トレンドの強い時間枠とトレンドのない時間枠を選択してください。Expert Advisorの入力パラメータの最適化を行い2つの時間枠での違いを調べます。
フラットの最適パラメータのExpert Advisorをトレンドのある期間に、トレンドの最適パラメータのExpert Advisorをトレンドない期間に実行します。トレードの結果、取引分布、その他の統計パラメータを調べます。この結果、自分のトレーディングシステムの結果がマーケットの状況の変化により、どの程度変わるのかを知ることができます。
異なる期間、通貨ペアにおいて、この方法を使ったいくつかの標準的なトレーディングストラテジーを試してみるのが良いでしょう。それにより、トレーディングシステムをある特定の期間でだけ成立するようなものにすることを防げますし、トレンドと逆トレンドの仕組みを理解するのに役立ちます。
次のステップは MQL5ウィザードセットの既存の単純なシグナルを組み合わせて作る、より複雑なトレーディングシステムです。プログラミングによるもではない他のシステムのフィルターを使うことで、悪いシグナルを解決するためのトレードに対する直観のようなもの試したり、改善することができます。
ここで大事なのはやり過ぎることではありません。入力パラメータが多いほど、トレーディングシステムも近似します。最適化と近似化の違いについては多くの議論がありました。広く認められた解決策はありません。しかし、テスト/最適化の結果の視覚化とあなたの一般的な知識が助けになるはずです。
すべての入力データの中から自分のトレーディングシステムにとって最も大きな影響を与えるパラメータの見つけ方について学びましょう。最適化に時間が掛かりシステムに重要な影響を与えない補助的なパラメータには大きな注意を払ってはいけません。良いトレーディングシステムは補助的なパラメータの小さく自由な動きを示しますが、マーケットの小さな変化による劇的なボラティリティ(乱高下)は表示しません。
このステージでのトレーディングストラテジーの検証テストと最適化の結果について理解できるまで、必要とするだけ時間を使ってください。標準的なシステムの強みと弱みを理解することで、自分のトレードロボットを作る際の良い準備になります。
トレードロボットのプログラム
あなたはMQL4か MQL5のプログラミング言語を学んだあるいは学んでいて、初めてMetaTraderのクライアントターミナルのExpert Advisorを書く準備ができていると思います。いくつかのケースが起こり得ます。
まずは、この記事で紹介されている既製のトレードロボットを精査しプログラミングの難しさを理解してください。
次に、もしも分からないことがあればMQL4.community やMQL5.communityで質問をしてみてください。経験者は大抵、興味をもって質問をしてくる新しい参加者を助けてくれるでしょう。
もしも自分でプログラムを書くことができない場合は、ジョブサービスでExpert Advisorやインディケーターの改善や開発を頼むことができます。フリーランスのサービスで注文を出しても、あなたは開発者との共通言語を見つけるためのストラテジーテストに関するアイデアを持っている必要があります。
また、基本的なプログラミングの知識があれば、注文した商品に対する小さな修正やコード変更を行うことができます。小さな問題が発生するたびにプログラマーに連絡をするのは大変すぎます。自分で直せればそれが一番簡単で早いはずです。
すべてを1からやる必要はないのです
どうやって自分のトレーディングストラテジーや、あるいはどの方向にフォーカスしたら良いかを見つければ良いでしょうか?トレーディングシステムを持っているすべてのトレーダーはそれを守るでしょう。すべての新規参加者は利益を上げることのできるシステムを作るか、すでにできているものを欲しがるはずです。同時に、新規参加者のトレーディングシステムに対するアイデアに比べると、既存のソリューションは単純すぎるように見えるかもしれません。
世界中の軍人は過剰なレベルの秘密厳守になる傾向があります。それに関しては、次のものを含む多くの冗談があります。”軍の秘密は君たちが学んでいるものの中にはない。教官が生徒に言います。”君がまさに学んでいるという事実の中にあるのだ。トレーディングシステムに関する状況もそっくりです:多くのトレーダーがシンプルで良く知られた方法に小さな変更を加えて使用しています。例えば、トレーリングストップやトレンドインディケーターからの確認などの追加です。
それぞれのトレーディングシステムの開発情報などを共有する会員限定のトレーダー用掲示板が沢山あります。特に興味深いのは、そのようなシステムには何も特別なものがないということです。(”トレンドに乗ってトレードする”)という良く知られたアイデアが根底にあることが多いです。そして、一般には知られていない新しいインディケーターによって完成するのです。
従って、利用可能なトレードロボットのソースコードを正しい通貨ペアや時間枠で使ってみることができます。もう一つのよく言われる言い回しが”猫は好きじゃない?うまい料理の仕方を知らないだけだ”というのがあります。.信じられないかもしれませんが、本当に新しいものを開発できる可能性はとても小さいのです。ここで重要なのは利用できるものでシステムを作成するということです。何人かの天才がNASAの研究室に秘密で入ることができる。というように考えないでください。それは聖杯の秘密です。
たどり着けるのは数人だけです。
なぜ誰も手の届くところにあるトレードのアイデアを使わないのでしょうか?その答えは人間心理の中から見つけることができると思います。多くの銀行や投資ファンドのトレーダーは厳しいルールと限られた投資金額でトレードをしています。しかし、その中の少数のトレーダーは会社を離れ、自分の資金でトレードを始めることがあります。
そうすると必要なのはトレーディングストラテジーだけではなく、それを守る鉄の意志が必要になってきます。多くのトレーダーがその著書の中で後悔の念と共に共通の心理的な問題を抱えていることを記しています。トレーダーの最大の敵は自分自身であることを気付いた後で、新しい参加者はトレードロボットを心理的負担を制限するために作ることを考え始めます。
主題からは外れますが、20世紀後半に複数の市場で成功した伝説的なタートルトレーダーについて述べたいと思います。 "亀流"を読んでみると、トレーダーに一番大切なのは自己規律であり、秘密の素晴らしいシステムではないことが分かるはずです。残念ながら、収益を上げることが可能なストラテジーを無料で得ているにも関わらずそれに従うことができません。
ほとんどのトレーディングストラテジーは手動でのトレードに完全に適しており、プログラミング言語に変換するのが難しい為です。変換するのが簡単なストラテジー(移動平均の交差を利用するもの)などは単純すぎ実際に使うには多くの改良や修正が必要です。このように、トレードロボットの間違ったエントリーを防いだり、エラーを開発者にはっきりと見えるようにするために、シンプルだったアイデアが外部の豊富なパラメータによりゆっくりと複雑になっていきます。トレードロボットの最適化の問題が現れます。このプロセスは過剰な最適化やある特定の歴史時間枠に合わせたものになってはいけません。
この問題に対処するために 、MetaTrader 5のターミナルでは取得したパラメータを使ったフォワードテストが実装されました。フォワードテストの結果が最適化セクションで得られたものと大きくは違わない場合、そのロボットはトレードアカウントで実行されたからある程度の期間 安定する可能性があります。パラメータの最適化の長さと”ある程度の期間”の実際の長さはトレーディングシステムによって決まります。
このようにトレードアカウントでのトレードロボットの最適化はスリング(小石を投げるパチンコ)の引き絞りを思い起こさせます。慎重に引き絞り石を飛ばせば、遠くまで正確な軌道で飛ばすことができます。完全に開発されたロボットは、近似化により得られたロボットよりも長い間、良い結果を上げることができるでしょう。聖杯とは作業のアイデアとマーケットの変化に合わせて行うパラメターの修正であると言うことができます。
もう何年も行われている自動取引選手権 の結果を見ればそれは明らかです。提出されたすべてExpert Advisorは1月から7月の終わりまでの期間の自動テストに合格しています。テストをパスするためには主に、8か月間のテストにおいて利益を上げることです。しかし、選手権に受かったもので半分以下のトレードロボットしか3か月後に収益を上げていませんでした。
選手権に参加するためにあなたも自分のスキルを磨きトレードロボットを試し、Expert Advisorのフォーワードテストの結果を得ることができます。参加費は無料であるにもかかわらず、商品は豪華です。ご参加をお待ちしております!
まとめ
プロのデイトレーダーは長い間パソコンの前に座り正しいタイミングを待っています。もちろんいつもいい形でいられるわけではありません。
多くのトレーダーが、自分のトレードルールを守っていないと考えています。すべてのトレーディングシステムが定式化できるわけではありませんが、そういったシステムもインディケータや分析システム、フォールスシグナルフィルターなどを使うことができます。
すでに多くの参考になる記事がありますので、ここではMQL4やMQL5言語に関する推奨を特にしません。この記事ではMetaTrader 4やMetaTrader 5のターミナルでトレードロボットを作り始める時に必要ないくつかのアイデアについて紹介しました。
この記事が自動トレードロボットを作ったことのない人にその難しいタスクの正しい方向性を示すことができていれば幸いです。
MetaQuotes Ltdによってロシア語から翻訳されました。
元の記事: https://www.mql5.com/ru/articles/443
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索