MetaTrade 5でトレードロボットを書く方法
MQL5 言語を使用して MetaTrader 5 でトレーディング ロボットを作成、テスト、展開するための包括的かつ実用的なガイドです。.

MetaTrade 5でトレードロボットを書く方法

この記事では、MQL5言語を使用してMetaTrader 5でエキスパートアドバイザー(EA)を作成、テスト、デプロイする方法を説明します。また、セキュリティとパフォーマンスに関する実用的なヒントも紹介します。.
0 株式
0
0
0
0

 

MetaTrader 5 でトレーディング ロボットを作成し、高い安定性で実行する方法を知っていますか?

このステップバイステップのガイドは、環境に慣れるのに役立ちます。 メタトレーダー5 プログラミング言語 MQL5 エキスパートアドバイザー(EA)の作成、テスト、デプロイについて解説します。また、VPS/クラウドサーバー上で24時間365日稼働させる方法、pingが最も低い場所の選択、セキュリティ対策、そしてロボットが現実世界の環境で安定かつ低レイテンシで動作するように監視するための実用的なヒントも含まれています。.

 

MetaTrader 5とMQL5の技術紹介

メタトレーダー5(MT5) これは、 MQL5 エキスパートアドバイザー(EA)、インジケーター、スクリプトを作成するためのプログラミング言語として使用されます。構造 MQL5 これはC++とクラスに似ています CTrade 注文の送信や取引の管理のために提供されます。.

前提条件: インストール MetaTrader 5/メタエディターブローカーのデータフィードまたはデモ/リアルアカウントにアクセスし、サーバー環境では、ping が低く稼働率の高い VPS を使用することをお勧めします。.

 

MQL5におけるEAの基本構造

シンプルな EA には、次の主な機能が含まれます。

  • OnInit(): 初期化用
  • OnDeinit(): 清掃用
  • オンティック(): 価格ティックごとに実行される関数
#include <Trade\Trade.mqh>
CTrade trade;

int OnInit() {
  // initialization
  return INIT_SUCCEEDED;
}

void OnDeinit(const int reason) {
  // cleanup resources
}

void OnTick() {
  // trading logic
}

 

注文の送信とポジションの管理

MQL5 クラスから CTrade 注文を送信するために使用されます。次の例は、単純な成行買いを示しており、発生する可能性のあるエラーを出力します。.

double lot = 0.1;
if(trade.Buy(lot, _Symbol)) {
  Print("BUY executed");
} else {
  Print("Error Buy: ", GetLastError());
}

ポジションをクローズするには、チケットを取得してメソッドを使用することができます ポジションクローズ 使用:

ulong ticket = PositionGetTicket(0);
if(trade.PositionClose(ticket)) {
  Print("Position closed");
}

 

実例 - クロス移動平均ロボット

ロジック:高速移動平均線が低速移動平均線を下から上向きに交差したら買い、逆の場合は売り。この基本的な例は、リスク管理、SL/TP、トレーリングストップ、市場時間フィルターなどで補完できます。.

input int FastPeriod = 10;
input int SlowPeriod = 50;
double FastMA, SlowMA;

int OnInit() {
  return INIT_SUCCEEDED;
}

void OnTick() {
  FastMA = iMA(_Symbol, PERIOD_M1, FastPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
  SlowMA = iMA(_Symbol, PERIOD_M1, SlowPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);

  double prevFast = iMA(_Symbol, PERIOD_M1, FastPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
  double prevSlow = iMA(_Symbol, PERIOD_M1, SlowPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);

  if(prevFast < prevSlow && FastMA > SlowMA) {
    trade.Buy(0.1, _Symbol);
  } else if(prevFast > prevSlow && FastMA < SlowMA) {
    trade.Sell(0.1, _Symbol);
  }
}

 

サーバー(VPS / クラウド)にMetaTrader 5をインストールして実行する

ボットを24時間365日稼働させるには、VPSまたはクラウドサーバーの使用をお勧めします。一般的な方法は2つあります。

  • Windows サーバー (MT5の一般的な提案)
  • Linux + ワイン (コスト削減のため、バージョンによっては互換性がない場合があります)

 

Windows VPS — 推奨設定

Windows Server の推奨ヒント:

  • インストール Windows Server 2019/2022
  • RDPを有効にする ネットワークレベル認証
  • インストール メタトレーダー5 そして メタエディター
  • 不要な再起動を防ぐために自動更新を手動で管理する

 

Linux + Wine — サンプルコマンド (Ubuntu)

LinuxでMT5を実行する場合は、以下のサンプルコマンドで始めることができます。一部のブローカーやプラグインはWineで問題が発生する可能性があるため、徹底的なテストをお勧めします。.

sudo apt update && sudo apt install -y wine winetricks xvfb xrdp
# create a dedicated mt5 user
sudo useradd -m mt5user
sudo passwd mt5user
# run mt5 installer under the user with a virtual framebuffer
sudo -u mt5user xvfb-run wine mt5setup.exe

 

RDP セキュリティと安全なアクセス

サーバーへのアクセスを保護するには、次のことをお勧めします。

  • デフォルトのRDPポートを変更するNLAを有効にし、RDP接続にVPNまたはSSHトンネルを使用する
  • ファイアウォールでアクセスを制限し、有効なIPをホワイトリストに登録する
  • インストール 失敗2禁止 ブルートフォース攻撃から保護するため
sudo ufw allow from 203.0.113.0/24 to any port 3389 proto tcp
sudo ufw enable

 

ロボットのテスト、最適化、展開

戦略テスター MT5には、バックテスト、最適化、フォワードテストの機能が搭載されています。遺伝的アルゴリズムを用いてパラメータを最適化し、高品質なデータ(ティックデータ)を活用することができます。.

  • 実際のティック データを使用して、現実に近い結果を取得します。.
  • ライブ アカウントで実行する前に、少なくとも数週間は VPS とデモ アカウントでテストしてください。.

 

リスク評価方法

リスクと持続可能性を測定するために使用すべき方法:

  • ウォークフォワード分析: 過剰適合を避けるために、異なる間隔でテストします。.
  • モンテカルロ: トランザクション実行の変更をシミュレートして安定性を測定します。.
  • レビュー指標: CAGR、シャープ比、最大ドローダウン、利益率。.

 

CI/CDと自動デプロイメント

EA コードの管理と自動デプロイメントについては、GitLab または GitHub を使用して VPS 上にランナーを設定し、EX5 ファイルのコンパイルと転送のプロセスを自動化できます。.

EX5 ファイルをターミナル フォルダーにコピーするサンプル スクリプト:

# copy the compiled EA to MetaTrader 5 Experts folder
cp MyEA.ex5 "/home/mt5user/.wine/drive_c/Program Files/MetaTrader 5/MQL5/Experts/"
# restart terminal or signal reload

API または ZeroMQ を使用して Python サービスと MT5 間で通信し、AI/ML データを EA に渡すこともできます。.

 

トレーダー向けVPSの場所の選択と設定

トレーダーにとって、ping/レイテンシーとネットワークの安定性は非常に重要です。ブローカーのサーバーまたはターゲット市場への近さに基づいてロケーションを選択する必要があります。.

 

主要な場所の比較

  • ロンドン/マンチェスター/フランクフルト/アムステルダム: ヨーロッパのブローカーおよびヨーロッパの ECN 市場に最適です。.
  • ニューヨーク/ワシントン: アメリカのブローカーに適しており、ニューヨーク市場での迅速な執行が可能です。.
  • シンガポール/東京/香港: ブローカーとアジア市場に低い ping を提供します。.
  • ベストプラクティス: ブローカー IP または AS を見つけて、BGP パスが最短のデータセンターを選択します。.

当社は、 世界85か所 ブローカー サーバーに最も近いデータ センターを選択する機能を提供します。.

 

取引に推奨されるVPS構成

  • CPU: 固定レッグと高クロックの 2 ~ 4 コア。.
  • ラム: 基本 4〜8GB。大容量 EA の場合は 8〜16GB。.
  • ストレージ: 高速 I/O を実現する NVMe SSD。.
  • ネットワーク: 1Gbps 以上、固定レイテンシ、BGP および DDoS 対策を備えたポート。.
  • 機能: スナップショット、自動バックアップ、24 時間 365 日の監視、DDoS 対策サーバー、信頼性の高い SLA。.

AI ベースの戦略や高度な分析を行うには、ML モデルを実行して MT5 にシグナルを送信するために、GPU を備えたサーバーが必要になる場合があります。.

 

セキュリティ、監視、実用的なヒント

 

システムとネットワークの保護

  • ローカル ファイアウォール (Windows ファイアウォールまたは ufw/iptables) を有効にします。.
  • RDP アクセスには VPN または IP ホワイトリストを使用します。.
  • フォルダにウイルス対策ソフトとファイル整合性監視ソフトをインストールする MQL5.

 

監視とアラート

監視サービスの設定 (例: プロメテウス + グラファナ) は、MT5 ターミナルの CPU、メモリ、ネットワーク、健全性をチェックするために重要です。.

接続が失われたり重大なエラーが発生した場合には、電子メール/Slack/Telegram にアラートを送信することをお勧めします。.

 

滑りや跳弾を防ぐ

  • ping が低く、ブローカーに近い場所にある VPS を選択します。.
  • 成行注文と指値注文の使い方と設定 最大スリッページ EA または MetaTrader の設定で。.
  • 切断された場合に取引が失われるのを防ぐために、EA で自動再接続を有効にします。.

 

概要と技術提案

このガイドでは基本について説明します。 MQL5 VPS でのテスト、最適化、展開について説明し、セキュリティと適切な場所の選択に関する実用的なヒントについても説明しました。.

サーバーが必要な場合は 世界85か所以上の拠点DDoS 対策サーバー、NVMe、BGP ネットワークをお持ちの場合でも、AI 戦略に GPU が必要な場合でも、当社のサポート チームは 24 時間 365 日対応し、ブローカーと戦略に基づいて最適な構成を推奨します。.

 

よくある質問

あなたも気に入るかもしれない