オンライン取引はここから始まります
JA /ja/interesting-articles/mt4-bots/write-trading-bot/
AR Arabic
AZ Azerbaijan
CS Czech
DA Danish
DE Deutsche
EL Greek
EN English
ES Spanish
ET Estonian
FI Finnish
FR French
HE Hebrew
HI Hindi
HU Hungarian
IND Indonesian
IT Italian
JA Japan
KK Kazakh
KM Khmer
KO Korean
MS Melayu
NB Norwegian
NL Dutch
PL Polish
PT Portuguese
RO Romanian
... Русский
SV Swedish
TH Thai
TR Turkish
UA Ukrainian
UZ Uzbek
VI Vietnamese
ZH Chinese

取引ロボットの作り方|
初心者ガイド

編集上の注意: 私たちは厳格な編集方針を遵守していますが、この投稿にはパートナーの製品に関する言及が含まれている場合があります。ここでは、私たちがどのように収益を得ているかの説明をしています。このウェブページのデータや情報は、免責事項に基づき、投資アドバイスを提供するものではありません。

取引ロボットのコードの書き方

取引ロボットを構築するのは大変な作業に思えるかもしれませんが、正しいコツをつかめば実現可能です。取引ボット(自動取引システム)は、あらかじめ設定された戦略に基づいて取引を実行することができます。これにより、常に監視したり、手動で介入したりする必要がなくなります。適切なプラットフォームやプログラミング言語の選択から、コーディング、テスト、最適化まで、トレーディング・ボットの構築方法をステップ・バイ・ステップでご紹介します。プログラミングが初めての方でも、アルゴリズム取引を始めたばかりの方でも、このガイドを読めば、あなたの取引スタイルに合ったボットを構築するための基礎を築くことができます。

取引ロボットのコードの書き方

トレーディング・ロボットは、金融市場での取引プロセスを自動化するソフトウェアです。市場データを分析し、指定されたアルゴリズムと戦略に基づいて自動的に取引を実行します。トレーディングロボットを使用することで、トレーダーは市場の変化に素早く対応し、人的要因の影響を最小限に抑えることができます。

取引ロボットには主に2つのタイプがあります:

  • 自動 - 完全に独立して市場を分析し、トレーダーの参加なしに取引を実行します。

  • 半自動(アドバイザー) - トレーダーに最終決定を委ね、取引に関する推奨事項を提供します。

取引ロボットを作成するには3つの方法があります:

オプション1:専門家に依頼する

取引ロボットを作成するプログラマーは、MQL5 プラットフォームまたはフリーランスの取引所で見つけることができます。

長所

  • アイデアの迅速な実装;

  • 専門家を選択する能力。

オプション2:自分でコードを書く

この方法は、ロボットの作成プロセスを学びたい人に適しています。基本的なトレーニングを受ければ、簡単なボットでも作成することができ、利用可能なオンラインリソースがスキルアップに役立つ。

長所

  • アイデアを1つずつ実装できる;

  • ロボットの動作をコードレベルで理解できる;

  • アイデアの完全な秘密保持。

オプション3:コードジェネレーターを使う

MetaTrader 4 、オンライン・コード・ジェネレーターを使用することで、取引ロボットの作成を効率化することができます。これらのプラットフォームでは、MT4 と互換性のあるex4 形式でシンプルな取引ロボットを開発することができます。

Create a trading robot online for freeオンラインで取引ロボットを無料で作成する

このプロセスには通常以下が含まれます:

  1. 指標を追加する。取引判断に使用するテクニカル指標を選択します。

  2. 条件を作成する。選択した指標に基づいて取引をトリガーする特定の基準またはルールを定義します。

  3. 資本管理戦略を導入する。取引サイズ、リスクレベル、全体的な資本配分を管理するためのガイドラインを確立します。

  4. 取引ロボットをエクスポートします。最終的なex4 ファイルを作成し、MT4プラットフォームにアップロードして実行します。

利点

  • デザイナーの既存の機能を使用して実装することができれば、すぐにロボットを手に入れることができます。

これらのツールの多くは無料であるため、プログラミングスキルのないトレーダーでも利用しやすい。

何から始めるか

アイデアを探すことから始めるべきです。例えば

  • マーケットがしばしばラウンド・レベルから誤ったブレイクアウトをすることに気づいた;

  • 価格と取引量の相互作用に依存関係を発見した;

  • 本で取引戦略の説明を読んだ。

アイデアをステップバイステップで明確に説明できれば、それをプログラムコードにすることができます。

ボットに最適な証券口座は?

取引ボットコードを設定したら、それを適切な取引プラットフォームと統合します。これは、TradingView のようなプラットフォーム、Forex ブローカー、または暗号通貨取引所など、取引の好みに応じて選択できます。プラットフォームはまた、API 統合、ボット接続、低手数料、ECN 流動性をサポートし、一貫したスプレッドと最小限のスリッページを確保する必要があります。

ボットを扱うブローカー
ECNスプレッド EUR/USD ECN委員会 API 取引ボット(EA) 無料VPS 口座開設

Pepperstone

0,1 3 はい はい はい 口座開設
あなたの資本はリスクにさらされています。

IG Markets

0,8 2,3 はい はい はい 研究レビュー

Exness

0,1 3 はい はい はい 口座開設
あなたの資本はリスクにさらされています。

履歴のテストと最適化

ロボットを作成したら、テスト(バックテスト)とパラメーターの最適化を行う必要がある。

バックテストとは、過去のデータでロボットをテストすることです。つまり、例えば2017年から2019年のデータを取り、ロボットがその期間にルールに従って行ったであろう取引を過去から調べるということです。そして、取引データを処理し、以下のようなレポート形式で提示します:

  • 約定した取引数。

  • 合計利益または損失。

  • 損益率。

  • ロボットの品質を評価するための追加指標。

MT4 でテストパネルを開くには、Ctrl+T を押します。

Test panel in MT4MT4のテストパネル

その後

  • テストするロボットを選択します。ロボットのex4 ファイルはMQL4Experts フォルダにあるはずです。上記の例では、移動平均で取引するロボットを選択しました。これはMT 4 ターミナルに付属している。

  • テストする取引ペアを選択します。例えば、EUR/USD を選択します。

  • テスト精度を選択します(精度が高いほど、テストにかかる時間が長くなります)。

  • テスト期間を選択します。より多くのヒストリカルデータが処理されるほど、結果の信頼性が高まります。

  • タイムフレームを選択します (5)。

  • スプレッド値(購入価格と売却価格の差)を指定します。Current はスプレッド値が自動的にロードされることを意味します。

  • ロボットのパラメータを選択します。例えば、移動平均期間、初期預金のサイズなど。

  • テストを実行します。結果タブには、テスト中にロボットが行った取引が表示されます。

その結果、すべてが正しく行われた場合、高い確率でグラフタブに以下のような画像が表示されます:

Example of testing a trading robot取引ロボットのテスト例

これは、取引ロボットがゆっくりと保証金を失っていることを意味します:

  • 数学的な利益確率 = 50/50;

  • 最終的な損失は、各取引に支払われる スプレッド(手数料)により発生します。

この結果を修正するために、移動平均の期間、時間枠、通貨ペアで「遊ぶ」ことができます。しかし、これらの「遊び」はすべて、長い距離にわたって望ましい結果をもたらさない可能性が高い。

しかし、ストラテジーと最適化(取引ロボットの最良の設定を検索する)の実験を繰り返した後、下図のような印象的な曲線が表示される可能性は十分にあります。

レポート・タブでは、より詳細な情報を得ることができます。

上の例では、レポートには次のように書かれています:

  • テスト精度 = 99.9%、テストエラー=0。これは高い信頼性であり、質の高い価格データベースで達成できます。

  • 9,395 回の取引で、ボットは2019年2月から2023年1月までの間に、最初の20,000ドルを110万ドルに成長させることができた。

  • 相対ドローダウン=40 %は確かに高い。そして実生活では神経をすり減らすだろう。

ある期間(たとえば2015年から2018年のデータ)でパラメーターを見つけ、別の期間(2019年から2023年のデータ)でテストするように最適化する。これを直接テストと呼ぶ。

テスト結果を100%信頼することはできないことを覚えておく価値がある。実際の状況を完全にシミュレートし、スリッページやスプレッドの変化を考慮することはできないからだ。大きな問題は、MetaTrader 環境の最小時間枠である 1 分間のデータの粒度です。しかし、1分間に価格がどのように変化するかによって、取引が利益確定で終了するか、ストップで終了するかが決まります。実際、MT4 、データベースを最適化するために分足で起こることを単純化し、端末の動作を高速化しています。

しかし、プロは最大限の精度を達成する必要があるため、ブローカーが提供してくれない可能性が高い、ほぼ20年分の大規模なティックデータベースを購入します。ブローカーからの "平滑化された "履歴データは、ロボットが履歴で利益を示し、リアルタイムで損失を被る理由となり得ます。

デモ口座でのテスト

ロボットのテストと最適化が完了したら、慌ててリアル口座に切り替える必要はありません。まず、デモ口座で数ヶ月間テストしてください。そうすることで、ロボットが重要なニュースの時期を通過し、改善の可能性を特定することができます。

注意すべき点

  • ハードウェアと接続:お使いの機器とインターネット接続がロボットの動作を妨げないことを確認してください。リスクを最小限にするため、VPSの利用を検討する価値がある。

  • コードの品質:結果を観察した後、おそらくより多くの市場状況を考慮するためにコードを変更したいと思うでしょう。

  • ブローカーの品質:異なるブローカーのデモ口座を使用して、その選択がロボットの効率に影響を与えるかどうかを理解する。

ロボットが4ヶ月間にデモ口座で40回取引を行い、保証金を7.45%増やし、ドローダウンを6%にしたとします。同じ期間、ヒストリカル・テスト・モードで実行し、結果がどのように一致するかをチェックする。結果のわずかな不一致は正常です。差が最小であることが重要です。この場合、結果は信頼できると考えられます。

実際の口座で起動

すべてを正しく行い、このステップに到達したのであれば、客観的には素晴らしいことです。なぜなら、初心者は通常、できるだけ早く利益を上げるために、急いで手に入れた取引ロボットを実際の口座に置くのが早すぎるからです。残念なことに、この方法は預金の損失を伴います。主なものは、注意と資本の保護です。リアル口座でロボットを取引する場合、初期のテスト取引に少額の資金を割り当てることから始めます。

その後、リアル口座での結果がデモ口座や履歴で得られた結果から逸脱しているかどうかを確認します。おそらく、次のような状況になるでしょう:

評判の良いブローカーで、デモ口座とリアル口座の2つの口座を並行して使用している。しかし、デモ口座では利益が表示され、リアル口座では損失が表示されます。

衝動的な値動きの間に取引を行うスキャルピングロボットの典型的な例です。取引の期間は秒単位で測定され、実行の質が重要になります。これはリアル口座とデモ口座で異なります。したがって、ロボットを開発する際には、スキャルピング取引とは関係のないアイデアを強く希望します。

MT4用取引ロボットの作成方法

トレーダーのために取引を実行する自動システムは、MetaTrader 4 (MT4) プラットフォームを使用して作成できます。このプラットフォームには、プログラミングのためのすべてのツールがあります。このプロセスは6つのステップに凝縮できます:

  1. 戦略を定義する。まず、資産と取引のアプローチを決定する。ファンダメンタル分析とテクニカル分析に基づく取引時間と条件の決定は、ロボットの有効性に大きく影響します。

  2. プログラミング言語を選択します。MT4は、ロボット作成に人気のある MQL 4 をサポートしています。高度な機能については、MQL 5 を使用することができます。これはMT5プラットフォームにも適しています。

  3. MQL4 の基本を学びましょう。変数の概念、構文、基本的なロジックをマスターしましょう。簡単なスクリプトを書く練習をすることで、理解が深まり、スキルが向上します。

  4. コードを書く。ストラテジーをコードに合成する。トレードのエントリーやエグジット、資金管理、柔軟なカスタマイズのための変数などのパラメーターを設定する。

  5. ロボットを最適化する。重要な指標を特定し、アルゴリズムをバックテストして、シミュレートされた条件下でどのように機能するかを確認します。

  6. デモ口座でテストする。デモ口座を使用して、現在の市場データでロボットのパフォーマンスをテストします。テストが成功したら、実際の取引に移ることができます。

いくら稼げますか?

現実的に考えてください。空にお城を建てたり、単純な戦略でお金持ちになれるとは思わないでください。株式市場で資産を運用するために専門家が設計した戦略を販売している、評判の高いサイトのデータを紹介しよう。パフォーマンス」欄には、年6%から18%のリターンが示されている。これが現実的な数字だ。

取引ロボットは自動モードで機能しますか?

理論的にはイエスだ。しかし放置するのは危険です。ロボットの設定が現在の市場状況に対応するように、時間をかけて更新された過去のデータでテストし、最適化することをお勧めします。市場は世界的なマクロ経済サイクルに従って変化します。

アルゴ・トレーダーの間違い

取引ロボットを作成する際、初心者はよくいくつかの間違いを犯します。

  • 過去の実績に頼りすぎる。過去の成功が将来の利益を保証していると思い込むことは、過信につながります。市場の状況は変化し、戦略は適応する必要がある。

  • 不十分なテスト。徹底的なバックテストやデモトライアルを行わずにライブ口座でロボットを使用すると、損失を被る可能性がある。適切なテストは、実際の資金をリスクにさらす前に問題を発見するのに役立ちます。

  • ブラックボックス」戦略を盲信する。システムがどのように機能するのかを知らずに依存することは危険である。戦略の可能性を判断するには、その仕組みを理解することが重要である。

  • 過剰な最適化。過去のデータに合わせてロボットを微調整しすぎると、カーブフィッティングに陥り、過去にはうまく機能しても実際の市場では失敗することがある。戦略はシンプルで信頼できるものにしましょう。

  • 間違ったブローカーを選ぶ。アルゴリズム取引をサポートしていないブローカーや条件の悪いブローカーを選ぶと、結果が悪くなる可能性がある。自分の取引ニーズに合ったブローカーを選ぶこと。

  • 非現実的な利益期待。特にスキャルピングロボットでは、素早い利益を期待すると、失望やリスクの高い行動につながる可能性があります。現実的な目標を設定し、リスクを把握しましょう。

  • 市場のイベントを無視する。大きなニュースが発表されるときにロボットを動かすと、不安定で予測不可能な動きにさらされる可能性があります。このような時間帯にはセーフガードを使うか、取引を一時停止すること。

  • マーチンゲール戦略の誤用。マーチンゲール戦略とは、1回の勝ちで挽回するために、損失が出た後に取引サイズを2倍にすることを含む。多額の資金を必要とし、連敗中に口座が急速に疲弊する可能性がある。このリスキーな方法は一般的に推奨されません。

マーケット・ミクロ構造のニュアンスを掘り下げることが重要

Anastasiia Chabaniuk 著者、トレーダーズユニオンの金融専門家

効果的な取引ロボットを作るには、市場のマイクロ構造のニュアンスを掘り下げることが重要です。これには、注文の流れや流動性の仕組み、さまざまな市場参加者の行動を理解することが含まれる。大規模な機関投資家の注文が値動きにどのような影響を与えるかを分析し、取引執行のパターンを特定することで、伝統的なテクニカル指標よりも正確に短期的な市場変動を予測するアルゴリズムを開発することができます。このような深い洞察により、取引ロボットはより多くの情報に基づいた意思決定を行うことができ、ライブ取引環境でのパフォーマンスが向上します。

もう一つの重要な側面は、取引ロボットに適応学習メカニズムを組み込む ことです。機械学習モデルを組み込むことで、変化する市場環境に応じてシステムを進化させることができます。例えば、強化学習を導入することで、ロボットは取引結果から学習し、リアルタイムのフィードバックに基づいて継続的に戦略を改良することができます。この動的な適応性により、トレーディングロボットは市場のダイナミクスが変化しても頑健かつ効果的であり続け、静的なルールベースのシステムよりも大きな優位性を発揮します。

結論

取引ロボットの構築は、自動取引の新たな可能性を開くエキサイティングなプロセスです。説明したステップに従って、基本的なモデルを構築し、テストし、徐々に最適化していくことができます。良いロボットを作るには、定期的なアップデートと市場環境の変化への適応が必要であることを覚えておくことが重要です。シンプルな戦略から始め、徐々に発展させ、リスクを最小限に抑えましょう。忍耐と練習次第で、取引ロボットはあなたの経済的目標を達成するための信頼できるツールとなるでしょう。

よくある質問

ロボットをテストする時間枠はどのように選べばよいですか?

ボラティリティが高い時期や市場が平穏な時期を含む数年間のデータでロボットをテストすることをお勧めします。そうすることで、ロボットが様々な条件下でどれだけ安定しているかがわかり、現在のトレンドだけに最適化することを避けることができます。

1台のロボットで複数のストラテジーを使用できますか?

はい、ロボットが異なる市場環境に適応できるよう、複数のストラテジーを組み合わせることは可能です。例えば、トレンド戦略とカウンタートレンド戦略を組み合わせることで、不利な相場局面での損失を軽減することができます。

ロボットのアルゴリズムはどのくらいの頻度で更新すべきですか?

少なくとも四半期に一度、または市場の急変時にアルゴリズムを見直し、最適化することをお勧めします。そうすることで、新しい市場環境を考慮し、ロボットの陳腐化を最小限に抑えることができます。

取引ロボットの使用に伴うリスクは何ですか?

主なリスクには、技術インフラへの依存、コード内のエラー、市場環境の急激な変化などがあります。ストップロスを使用し、ロボットのパフォーマンスを定期的に監視し、過度に攻撃的な戦略を避けることをお勧めします。

記事を担当したチーム

Andrey Mastykin
作家、トレーダーズ・ユニオンの金融専門家

アンドレイ・マスティキンは経験豊富な著者、編集者、コンテンツ戦略家であり、2020年よりトレーダーズ・ユニオンで勤務。編集者として、トレーダーズ・ユニオンのプラットフォームで公開されるすべての情報の事実確認と正確性の確保に細心の注意を払っている。アンドレイは、金融市場の取引に伴う潜在的な報酬とリスクについて読者を教育することに重点を置いている。

彼は、ほとんどの個人にとってパッシブ投資がより適した戦略であると確信している。アンドレイの保守的なアプローチとリスク管理に重点を置く姿勢は多くの読者の共感を呼び、金融情報源として信頼されている。

さらに、アンドレイはウクライナ全国ジャーナリスト連盟の会員です(会員証番号4574、国際証明書UKR4492)。