AI EA スクール
0記事中 0記事 読了
カリキュラム 付録 付録 付録D サンプルEA
D

付録D サンプルEA

読み終わるまでの目安 約15分

この記事でできるようになること

  • 本スクール共通教材のサンプルEA「RSI_Reversal_Sample.mq4」が何をするEAかを説明できる
  • input変数(外部パラメータ)の意味が分かり、自分で値を変えられる
  • サンプルEAを自分のMT4に入れて、バックテストまで動かせる

サンプルEAの概要

本スクールの第4章以降では、RSI逆張りEA「RSI_Reversal_Sample.mq4」を共通教材として使います。「ChatGPTに作らせたコードがうまくいかない」ときの比較対象としても、「まず動くものを見てみたい」ときの練習台としても使えます。なお、MT4に標準で入っている「Moving Average」というEAとは別物です。

コードの置き場所: 4-1 MetaEditorで新規EAファイルを作る に全文があります。コードブロックの右上にある「コピー」ボタンを押すと、全文をまとめてコピーできます。

このEAのコードは、スクール全体で4-1の1か所だけに置いています。同じコードが何か所にもあると、修正したときに食い違いが起きるためです。手で範囲選択せず、必ずコピーボタンを使ってください。長いので、途中で切れるとコンパイルに失敗します。

このスクールが用意しているサンプルEAは、RSI逆張りの1本です。移動平均線クロスとボリンジャーバンド順張りは、3-3の実例プロンプトを使ってChatGPTに作ってもらってください。自分で作ったEAとこのサンプルを見比べることが、そのまま学習になります。

売買ルール

このEAは、第1章で学んだ「RSI」を使います。RSIは、買われすぎ・売られすぎの度合いを0〜100の数値で表す指標です。このEAは、下がりすぎたところで買い、上がりすぎたところで売る「逆張り」の考え方で動きます。

項目 内容
使う指標 RSI 1本(初期値: 期間14本)。終値ベース。0〜100の数値で買われすぎ・売られすぎを表します
買いエントリー RSIが売られすぎの水準(初期値: 30)を上から下に割り込んだとき
売りエントリー RSIが買われすぎの水準(初期値: 70)を下から上に抜けたとき
決済 利確(初期値: 50pips)、損切り(初期値: 30pips)。または反対側の水準に届いたら成行で決済(買いポジションはRSIが70以上、売りポジションはRSIが30以下)。数値はいずれも例です
判定のタイミング 確定足のみ。新しいローソク足ができた瞬間に、1本前と2本前の足のRSIを比べて、水準を抜けたかどうかを判定する
同時ポジション数 1つまで。ポジションがあるときは新規エントリーしない
通貨ペア・時間足 コード内では固定していない。乗せたチャートの通貨ペア・時間足で動く。スクールではUSDJPY・H1を例にしている
対応する業者 小数点3桁/5桁表示の業者(HFMを含む)でも、1pipsが正しく計算されるようにしてある

input変数(外部パラメータ)の説明

このEAの設定値は、すべて input 変数になっています。コードを触らずに、MT4のEA設定画面「パラメーターの入力」タブ、またはストラテジーテスターの「エキスパート設定」から変更できます。

変数名 初期値 意味 変えるときの注意
売買ルール
RSIPeriod 14 RSIの期間(本数) 2以上にする。第6章の最適化で調整する対象。初期値の14は一般的な設定の一例です
BuyLevel 30 この値を下回ったら買い(売られすぎの水準) SellLevelより小さい値にする。小さくするほどエントリー回数は減る目安です
SellLevel 70 この値を上回ったら売り(買われすぎの水準) BuyLevelより大きい値にする(0〜100の範囲)。大きくするほどエントリー回数は減る目安です
TakeProfitPips 50 利確の幅(pips) 0にすると利確なし(反対側の水準に届いたときだけ決済)。初期値はあくまで例
StopLossPips 30 損切りの幅(pips) 0にすると損切りなし。0にしないことを強くおすすめします
注文の設定
Lots 0.1 1回の注文のロット数 リアル口座では0.01(最小ロット)に変える(7-2)。入金額もあわせて考えること
SlippagePips 1.0 許容するスリッページ(pips) ポイントではなくpipsで指定します。「off quotes」「requote」が頻発する場合だけ広げる(例: 2.0)
MaxSpreadPips 3.0 この幅を超えたら新規注文しない(pips) 指標発表時などの異常なスプレッドで発注しないための安全装置。0にすると無制限
MagicNumber 12345 このEAの注文を見分ける番号 同じ口座で複数のEAを動かすときは、EAごとに違う番号にする
安全装置
MaxRetry 3 注文が失敗したときの再試行回数 基本は変更不要。0にすると1回失敗しただけで諦めます
RetryWaitMs 700 再試行までの待ち時間(ミリ秒) 基本は変更不要
ExpectedTFMin 60 想定する時間足(分) 違う時間足のチャートに乗せると、ログで知らせます。動作は止めません。0で確認なし
ShowLog true 「エキスパート」タブに動作ログを出す trueのままを推奨。うまく動かないときの原因調査に使います

「変えるときの注意」にあるように、最初に変えるのはLotsだけで十分です。他の値は第6章の改善サイクルの中で、1回に1つずつ変えていきます。

使い方(3ステップ)

ステップ1 MetaEditorに貼り付けて保存する

  1. 4-1 を開き、コードブロック右上の「コピー」ボタンで全文をコピーする
  2. MT4で[F4]を押してMetaEditorを開く
  3. 「新規作成」→「エキスパートアドバイザ(テンプレート)」→ 名前を「RSI_Reversal_Sample」にして進む(4-1と同じ)
  4. 自動生成されたコードを全消しして、コピーしたコードを貼り付ける
  5. [Ctrl]+[S]で保存する

すでに4-1でこのEAを作成・保存している場合、この付録の手順をもう一度行う必要はありません。MetaEditorのファイル一覧から開けば、そのまま使えます。

ステップ2 コンパイルする

[F7]を押します。下部の「エラー」タブが「0 error(s), 0 warning(s)」になれば成功です要確認。エラーが出た場合は、コピーが途中で切れていないか(最後の行まで貼れているか)を確認してください。それでも直らない場合は付録Cへ。

ステップ3 バックテストで動作を確認する

[Ctrl]+[R]でストラテジーテスターを開き、5-2の手順で設定します。例として次の設定で動かすと、結果が出ることを確認できます(数値はあくまで例で、この設定で利益が出ることを示すものではありません)。

設定項目
エキスパートアドバイザ RSI_Reversal_Sample
通貨ペア USDJPY
時間足 H1
モデル 全ティック
期間 直近1〜2年
スプレッド 20(ポイント)に固定する。「現在値」はテストのたびに結果が変わるので使わない
初期証拠金 1,000,000(通貨はJPY)。5-2の設定と揃えています

結果の読み方は5-3、疑う視点は5-4を参照してください。

このEAに入っている安全装置

バックテストでは表に出ませんが、実際の口座では「注文が通らない」ことが頻繁に起きます。このサンプルEAには、その対策が組み込んであります。ChatGPTに自分のEAを作らせるときも、同じ指示を出してください(付録B)。

入れてある対策 入れないとどうなるか
損切り・利確を業者の最小距離に合わせる 注文が error 130 で失敗し続ける
それでも失敗したら、注文だけ先に出して後から損切りを付ける 約定方式によっては1回も注文できない
ロット数を口座の最小・刻み幅に合わせる error 131 で失敗する
証拠金が足りるか事前に確認する error 134 で失敗する
発注直前に価格を取り直す error 129error 138(リクオート)が増える
失敗の種類を見て最大3回まで再試行する 1回の失敗でそのシグナルを取り逃がし、「動いているのに取引しない」状態になる
スプレッドが広すぎるときは発注しない 指標発表時に不利な価格で約定する
EAを乗せた直後に過去のシグナルで発注しない 稼働初日に、バックテストにない取引が1回発生する
自動売買の許可と接続を確認する 原因が分からないまま取引されない

うまく動かないときは、まず「エキスパート」タブのログを見てください。このEAは見送った理由も日本語で記録します。

このEAをどう活用するか

  • ChatGPTに作らせたEAと比べる: 3-3の実例2(RSI逆張り)のプロンプトでChatGPTに作らせたコードと、このサンプルを見比べると「AIが省略した部分」「違う書き方をした部分」に気づけます
  • 改善の練習台にする: 第6章の「時間帯フィルター追加」「トレーリングストップ追加」を、まずこのサンプルで試すと安全です
  • 説明してもらう: 付録Bの「5. コードの内容を説明してもらうプロンプト」にこのコードを貼ると、各部分が何をしているか日本語で読めます

このサンプルEAは学習用です。特定の通貨ペア・期間・設定で利益が出ることを保証するものではありません。実際の運用はバックテスト → デモ → 少額リアルの順を守ってください(第7章)。