カテゴリー: 自動売買

  • 【無料EA公開】ドンチャンブレイクアウトのMQL4ソースコードと検証結果

    「無料で使えるEAのソースコードを全文公開します」。ただし、正直に言っておきたいことがあります。このEAをそのまま実運用に投入すれば、おそらく損をします。それでも公開する理由は、EAの中身がどう動いているかを透明に見せたほうが、ブラックボックスの有料EAよりも役に立つと考えているからです。

    本記事では、ドンチャンブレイクアウトという古典的なトレンドフォロー手法をMQL4で実装したミニEAのソースコードを全文掲載します。さらに、Pythonで模擬データを使ったバックテストを行い、期待値・プロフィットファクター・t値などの統計指標を正直に示します。「勝つEA」を売り込む記事ではありません。「どう検証するか」を示す記事です。

    ドンチャンブレイクアウトとは

    ドンチャンブレイクアウトは、過去N日間の最高値を上に抜けたら買い、最安値を下に抜けたら売り、というシンプルなルールです。1960年代にリチャード・ドンチャンが体系化した、世界最古クラスのシステムトレード手法です。

    トレンドが続いているときは利益を乗せやすく、レンジ相場ではダマシに何度も刺されるという特徴があります。ロジックが単純な分、何が起きているかを自分の目で確認しやすく、EAの学習教材として最適です。

    EAの仕様

    • エントリー: 1本前の足の終値が、その前20本の最高値(最安値)を突破したとき
    • 損切り: ATR(14)の2倍の距離にストップを設置
    • 決済: ストップアウトのみ(利確はトレーリングストップで追跡)
    • トレーリング: 30pips以上の利益で10pips幅のストップに追跡開始
    • ポジション: 1ポジション方式(保有中は新規エントリーしない)
    • タイムフレーム: 日足推奨(任意の時間足で動作)

    MQL4ソースコード(全文)

    以下がコンパイル可能な完全なソースコードです。MT4のMetaEditorに貼り付けてコンパイルすれば、すぐにテストできます。

    //+——————————————————————+
    //| DonchianBreakout.mq4 |
    //| rehav trading system |
    //| 無料公開用サンプルEA – ドンチャンブレイクアウト |
    //+——————————————————————+
    #property copyright "rehav trading system"
    #property link "https://www.rehavtrading.com"
    #property version "1.01"
    #property strict

    //— 入力パラメータ
    input int ChannelPeriod = 20; // チャネル期間(高値・安値の参照本数)
    input int ATRPeriod = 14; // ATR期間
    input double ATRMultiplier = 2.0; // SLのATR倍率
    input double Lots = 0.01; // ロットサイズ
    input int MagicNumber = 20260918; // マジックナンバー
    input int Slippage = 3; // 許容スリッページ(ポイント)
    input bool UseTrailingStop = true; // トレーリングストップ有無
    input int TrailStartPips = 30; // トレーリング開始利益(pips)
    input int TrailStepPips = 10; // トレーリング幅(pips)

    //— グローバル変数
    double gPipPoint;

    //+——————————————————————+
    //| 初期化関数 |
    //+——————————————————————+
    int OnInit()
    {
    if(Digits == 3 || Digits == 5)
    gPipPoint = Point * 10.0;
    else
    gPipPoint = Point;

    Print("DonchianBreakout EA 初期化完了。チャネル期間=", ChannelPeriod,
    " ATR倍率=", ATRMultiplier, " ロット=", Lots);
    return(INIT_SUCCEEDED);
    }

    //+——————————————————————+
    //| 終了関数 |
    //+——————————————————————+
    void OnDeinit(const int reason)
    {
    Print("DonchianBreakout EA 終了。理由=", reason);
    }

    //+——————————————————————+
    //| OnTick – 毎ティック実行 |
    //+——————————————————————+
    void OnTick()
    {
    // — 既存ポジションの管理 —
    ManagePositions();

    // — 新規エントリー判定(新しい足の始値のみ) —
    if(!IsNewBar())
    return;

    // シグナル判定
    int signal = CheckSignal();
    if(signal == 0)
    return;

    // 既存ポジションがあればエントリーしない(1ポジション方式)
    if(HasOpenPosition())
    return;

    // — エントリー実行 —
    double atr = GetATR();
    double slDistance = atr * ATRMultiplier;

    if(signal == 1) // 買いシグナル
    {
    double price = Ask;
    double sl = price – slDistance;
    int ticket = OrderSend(Symbol(), OP_BUY, Lots, price, Slippage,
    sl, 0, "DonchianBuy", MagicNumber, 0, clrBlue);
    if(ticket < 0)
    Print("買い注文失敗: ", GetLastError());
    else
    Print("買いエントリー: ticket=", ticket, " price=", price, " SL=", sl);
    }
    else if(signal == -1) // 売りシグナル
    {
    double price = Bid;
    double sl = price + slDistance;
    int ticket = OrderSend(Symbol(), OP_SELL, Lots, price, Slippage,
    sl, 0, "DonchianSell", MagicNumber, 0, clrRed);
    if(ticket < 0)
    Print("売り注文失敗: ", GetLastError());
    else
    Print("売りエントリー: ticket=", ticket, " price=", price, " SL=", sl);
    }
    }

    //+——————————————————————+
    //| 新しい足かどうかの判定 |
    //+——————————————————————+
    bool IsNewBar()
    {
    static datetime lastBarTime = 0;
    datetime currentBarTime = iTime(Symbol(), Period(), 0);
    if(currentBarTime != lastBarTime)
    {
    lastBarTime = currentBarTime;
    return true;
    }
    return false;
    }

    //+——————————————————————+
    //| ドンチャンブレイクアウトのシグナル判定 |
    //| 1本前の足の終値が、その前N本の高値(安値)を突破したかを判定 |
    //| 戻り値: 1=買い, -1=売り, 0=シグナルなし |
    //+——————————————————————+
    int CheckSignal()
    {
    // bar1の終値
    double prevClose = iClose(Symbol(), Period(), 1);

    // bar2〜bar(N+1)の最高値・最安値(直前のN本、bar1は除外)
    int highIdx = iHighest(Symbol(), Period(), MODE_HIGH, ChannelPeriod, 2);
    int lowIdx = iLowest(Symbol(), Period(), MODE_LOW, ChannelPeriod, 2);
    double highest = iHigh(Symbol(), Period(), highIdx);
    double lowest = iLow(Symbol(), Period(), lowIdx);

    if(prevClose > highest)
    return 1;
    else if(prevClose < lowest)
    return -1;

    return 0;
    }

    //+——————————————————————+
    //| ATRの取得 |
    //+——————————————————————+
    double GetATR()
    {
    return iATR(Symbol(), Period(), ATRPeriod, 1);
    }

    //+——————————————————————+
    //| オープンポジションの有無 |
    //+——————————————————————+
    bool HasOpenPosition()
    {
    for(int i = OrdersTotal() – 1; i >= 0; i–)
    {
    if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
    {
    if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
    return true;
    }
    }
    return false;
    }

    //+——————————————————————+
    //| ポジション管理(トレーリングストップ) |
    //+——————————————————————+
    void ManagePositions()
    {
    if(!UseTrailingStop)
    return;

    for(int i = OrdersTotal() – 1; i >= 0; i–)
    {
    if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
    continue;
    if(OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber)
    continue;

    double trailStart = TrailStartPips * gPipPoint;
    double trailStep = TrailStepPips * gPipPoint;

    if(OrderType() == OP_BUY)
    {
    if(Bid – OrderOpenPrice() >= trailStart)
    {
    double newSL = Bid – trailStep;
    if(newSL > OrderStopLoss() || OrderStopLoss() == 0)
    {
    if(!OrderModify(OrderTicket(), OrderOpenPrice(), newSL, 0, 0, clrBlue))
    Print("トレーリング変更失敗(Buy): ", GetLastError());
    }
    }
    }
    else if(OrderType() == OP_SELL)
    {
    if(OrderOpenPrice() – Ask >= trailStart)
    {
    double newSL = Ask + trailStep;
    if(newSL < OrderStopLoss() || OrderStopLoss() == 0)
    {
    if(!OrderModify(OrderTicket(), OrderOpenPrice(), newSL, 0, 0, clrRed))
    Print("トレーリング変更失敗(Sell): ", GetLastError());
    }
    }
    }
    }
    }
    //+——————————————————————+

    バックテスト結果(2つの市場環境で比較)

    実ティックデータが入手できないため、Pythonで幾何ブラウン運動(GBM)による模擬的な日足データを2,520本(約10年分)生成し、EAと同じロジックでトレードを再現しました。これは実口座での利益を保証するものではありません。ロジックの妥当性を統計的に確認するのが目的です。

    2つのシナリオを比較しました:

    • パターンA(ランダムウォーク): トレンドのない市場。価格は純粋なランダムウォーク。
    • パターンB(レジーム混合): 250日ごとに「上昇トレンド」「レンジ」「下降トレンド」が交代する市場。現実のFX相場に近い構造。

    検証結果サマリー

    指標 パターンA(トレンドなし) パターンB(レジーム混合)
    総トレード数 329 355
    勝率 54.4% 65.9%
    プロフィットファクター 0.84 1.46
    期待値(1トレード) -75円 (-7.5pips) 154円 (15.4pips)
    t値 -1.5 3.22
    最大ドローダウン 36934円 12118円
    平均保有日数 2.2日 2.2日
    総損益 -24517円 54536円

    結果から読み取れること

    パターンA(トレンドなし): 損失

    プロフィットファクター0.84、期待値は1トレードあたり-75円の損失。t値は-1.5で、統計的に有意な損失システムであることを示しています。トレンドのない市場でトレンドフォロー手法を使うと、構造的に損をします。これはバグではなく、手法と市場環境のミスマッチです。

    パターンB(レジーム混合): 利益

    プロフィットファクター1.46、期待値は1トレードあたり154円の利益。t値は3.22で、2.0を超えているため統計的に有意な利益システムと言えます。トレンド期にブレイクアウトで乗せた利益が、レンジ期の損失を上回った結果です。

    つまり、ドンチャンブレイクアウトは「トレンドがあるときにこそ機能する」ことが数字で裏付けられました。トレンドの有無を判定するフィルタを追加すれば、パターンAのような環境での損失を減らせるはずです。

    この検証の限界(正直な注意点)

    • 模擬データを使用: 実際のFX価格データではありません。スプレッド・スワップ・スリッページを含んでいません。これらを含めると結果は悪化します。
    • スプレッド未考慮: 実運用ではエントリー時点ですでにスプレッド分のマイナスからスタートします。特にレンジ期の頻繁なエントリーでは無視できないコストです。
    • 最適化未実施: チャネル期間20・ATR倍率2.0は一般的な値ですが、最適化は行っていません。パラメータの過剰最適化はカーブフィッティングの罠に繋がります。
    • 1通貨ペアのみ: ポートフォリオ効果(複数通貨での分散)は考慮していません。

    これらの限界を理解した上で「それでもこのEAをベースに改良したい」と考えるなら、それがまさにEA開発と監査の価値がある部分です。

    ここからどう改良するか

    このEAをベースに、次のような改良が考えられます:

    • トレンドフィルタの追加: 200日移動平均線の向きでトレンドの有無を判定し、トレンド時のみエントリー
    • スプレッドガード: スプレッドが一定以上のときはエントリーをスキップ(実運用必須)
    • 時間フィルタ: 流動性が低い時間帯のエントリーを回避
    • 複数通貨のポートフォリオ化: 1通貨のレンジ期間を他通貨のトレンドで補う

    これらの改良を設計して実装し、統計的に有意かどうかを検証する。それがEA監査サービスEA作成代行でやっていることです。

    カスタムEAの開発を依頼しませんか?

    この記事のEAは学習用サンプルですが、あなたのトレードロジックをMQL4/MQL5で実装できます。検証しやすいログ仕様を標準装備し、納品後の期待値照合もそのまま行えます。

    ✅ あなたの裁量ルールのEA化

    ✅ 監査済み戦略の実装

    ✅ スプレッドガード・ログ出力など実運用仕様を標準装備

    MT4インジケーターやEAの作成を依頼する(ココナラ) →(納期3営業日以内)

    まずは1,000円のEAクイック診断で、お手持ちのEAの数値診断も可能です。

    まとめ: 透明性が信頼に繋がる

    無料EAを公開して「そのままでは損をする」と正直に書くのは、販売側としては珍しいかもしれません。しかし、EAの価値はロジックの魔法ではなく、検証と改良のプロセスにあります。

    ソースコードを公開し、限界も明記する。その上で「ここをどう直せば良くなるか」を示す。これが、私がEA開発と監査で大切にしている考え方です。

    もしあなたが「動くけど中身が分からないEA」を持っているなら、ぜひ10年データで統計監査にチャレンジしてみてください。数字で見える化すれば、次に何をすべきかが必ず見えます。

    ※ 本記事のバックテストは模擬データによるシミュレーションであり、実取引の結果ではありません。過去の実績が将来の成果を保証するものではありません。

  • EA作成を外注する前の要件定義チェックリスト — 失敗しない7項目

    EA作成を外注する前の要件定義チェックリスト — 失敗しない7項目

    「月利◯%で放置して稼げる勝てるEAを作ってください」— ココナラなどでEA作成を外注する際、実はこれが最も失敗しやすい危険な依頼文です。「プロに頼めば良い感じに作ってくれるだろう」と丸投げした結果、納品されたのはバックテストすらまともに動かない欠陥プログラムだった…というトラブルが後を絶ちません。

    なぜこのような失敗が起きるのでしょうか?開発者は相場の予言者ではなくプログラマーだからです。検証されていない曖昧なロジックを丸投げされると、開発側は「それっぽく動作するシステム」を作るしかなく、期待値の裏付けがないEAが完成してしまうのです。

    貴重なお金と開発期間を無駄にするリスクを回避するために、外注前の要件定義で必ず決めておくべき7つのチェックリストをまとめました。

    外注トラブルを防ぐ!発注前に確定すべき7つの要件定義リスト

    開発者との認識ギャップを防ぎ、意図通りの動作を実現するために、発注前に以下の7項目を文章化しておきましょう。

    • 1. 対象通貨ペアと時間足: 稼働させるシンボルと時間足を明確に指定します。複数ペア運用の場合はマジックナンバーの分離方針も併せて定義します。
    • 2. エントリー条件と発生頻度: 時刻ベースの固定エントリーか、インジケーター等のシグナル判定か。エントリーのタイミングと想定頻度を正確に取り決めます。
    • 3. SL/TP(損切り・利益確定)の計算基準: 固定pipsで指定するのか、ボラティリティ(ATR等)基準か。最小値の設定やTP未設定(SLのみ)の可否も明記します。
    • 4. マジックナンバーによる個別管理: 1つの口座内で複数のEAや複数通貨ペアを同時運用する場合、注文の混同を防止するために必須となる仕様です。
    • 5. スプレッドガードの設置: エントリー時刻のスプレッドが設定値を超えた場合、当日のトレードを自動送信スキップする機能です。スプレッド感度の高いEAには欠かせません。
    • 6. 詳細なログ出力機能: 注文が通った瞬間の実効スプレッド・約定価格・損益を毎日ログに残す仕様です。運用開始後の期待値照合を行うために最も重要な項目と言えます。
    • 7. ソースコード(.mq4/.mq5)納品の有無: 納品物が実行ファイル(.ex4/.ex5)のみか、ソースコードも含まれるか。将来のロジック改修や第三者による統計監査の可否を左右します。

    なぜ「監査→設計→実装」の順番が安全なのか?

    開発者にロジックを完全丸投げするのではなく、統計的に優位性が実在する現象(例: 特定時間帯の価格アノマリー)を出発点に設計することで、期待値の見通しは劇的に向上します。

    もしすでに手元にアイデアや既存EAがあるなら、いきなり新規開発を発注するのではなく、まずは統計監査で期待値を確定させることが資産を守る鉄則です。

    その上で判明した課題を設計に落とし込み、実装へ進む流れこそが、無駄な開発費用と資金消失を防ぐ最も安全な手順となります。

    納品後に必ず実行すべき「期待値の答え合わせ」

    無事にプログラムが納品されたら、いきなりリアル口座で稼働させるのではなく、以下の検証プロセスを必ず実行してください。

    • バックテストでの再現性確認: 指定した条件通りにトレードが再現されるか、ストラテジーテスターでチェックする
    • デモ口座での期待値照合: 実運用ログ(項目6の仕様)を出力させ、1ヶ月のデモ稼働で検証値と整合しているか数字で確認する

    この照合を行うことで、今回の外注開発が成功だったのかを客観的な数字で判定できます。

    なお、当ブログの運営体制では、事前の要件定義サポートから開発・監査まで3営業日以内で柔軟に対応可能です。

    📦 EAの作成・監査を承っています

    このブログの運営者は、EAの統計監査(ソースコード不要・ex4のみで可能)とEA作成代行(MQL4/MQL5)をココナラで承っています。いずれも納期は3営業日以内です。

    ライト監査は初回限定3,000円(通常5,000円)です。

    EA監査サービス → | まずは1,000円のEAクイック診断EA作成代行 →

    関連記事: EAのバックテストはこう読む — 見抜く3つの数字 / EA運用は口座で決まる — 正直会計の考え方


  • 東京時間のドリフトは実在するか — 10年分のM1データで検証した記録

    東京時間のドリフトは実在するか — 10年分のM1データで検証した記録

    「東京時間の市場アノマリーを狙えば勝てる」という噂を聞いてEAを作成したものの、実際の運用では期待通りに利益が出ず、損切りばかり重なっていませんか?

    アノマリー(相場の規則的な癖)を利用した戦略は非常に魅力的です。しかし、理論上は優位性があるはずの手法であっても、実際のトレードではなぜか損失を出してしまうケースが後を絶ちません。

    当サイトの検証データでも、「理論的には勝てるはずなのに、なぜかリアルトレードで資金が減っていく」というご相談を多数受けています。

    「東京時間に買って、日が変わる前に閉じる戦略は本当に実在するのか」。これは、膨大な相場データを用いて統計的に検証できる問いです。

    今回は、3通貨ペア×10年分のM1データ(1分足)という精密なデータを用い、東京時間帯に生じるリスクオンドリフトの実態を徹底検証した記録を公開します。

    1. 東京時間の「癖」は本物か? — 10年分のデータで判明した事実

    まず、サーバー時間0時の価格から朝8時まで無条件で買い持ちする「素ドリフト」の期待値を計算しました。

    検証の結果、対象とした3通貨ペアすべてでt値+5.7〜+14.7という非常に高い統計的有意性が確認されました。

    エントリー条件 損益・期待値 t値 勝敗・特徴
    0:00 (素ドリフト) 期待値ほぼ消滅 bid歪み(-2〜-5pips)により実コスト3倍悪化
    0:30 (時刻変更) +5.7pips/日 +4.5 10年中9年プラスまで回復
    23:55 (事前注文) 不採用(マイナス) 歪み先行・月曜不可・スワップ発生の3重苦

    年別データに分解すると、3ペア×10年=合計30年分のサンプルすべてで年間収支がプラスを記録しました。東京時間帯において価格がリスクオン方向へじわっと動く傾向は、統計的に見て間違いなく本物です。

    2. なぜ期待値が消えてしまったのか? — 犯人は「エントリー時刻」だった

    アノマリーという現象が本物であるにもかかわらず、実際の取引で期待値を殺していた原因は注文を出す「約定タイミング」にありました。

    サーバー時間0:00ちょうどに注文を出すプログラムの仕様は、ロールオーバー直後に発生するbidの広がりと歪み(-2〜-5pips)を建値で丸ごと支払ってしまうことになります。

    実データを用いた正直会計で計算すると、表示スプレッド自体は平常値に見えても、実質的な摩擦コストは3倍相当まで悪化していました。その結果、市場に存在するはずの優位性が完全に相殺されていたのです。

    そこで、エントリー時刻を0:30まで30分遅らせる改善を実施しました。スプレッドの歪みが収まった後の「確実なドリフト」だけを狙い撃ちする設計に変更したのです。

    その結果、3ペア合計で+5.7pips/日(t値+4.5)を叩き出し、10年中9年でプラス成績を収めるまでに回復しました。「0時約定」という実装の詳細が、統計的に実在する市場のエッジを潰していたことになります。

    3. なぜ23:55エントリーの対策は失敗したのか?

    「日を跨ぐ直前の平常スプレッドで買えば解決するのではないか」と考え、23:55にエントリーする改善案も検証しました。しかしデータ検証の結果、この案は不採用となりました。

    不採用となった主な理由は以下の3点です。

    • 23:55の時点で既にbidの歪みが始まりつつあり、価格経路が不利であった点
    • 週明けの月曜(最も優位性が高い曜日)にエントリーできなくなる点
    • ロールオーバーを跨ぐことで余分なスワップポイントが発生してしまう点

    直感や思いつきによる安易な改善策であっても、バックテストのデータで精密に検証しなければ逆効果になることを示す典型例と言えます。

    4. 今回の検証から得られた教訓 — 本物のエッジも実装次第で崩壊する

    統計的に実在する市場の癖やアノマリーを発見できたとしても、エントリー時刻や口座ごとのスプレッド特性、約定ルートといった「会計の詳細」を誤ると期待値は激変します。

    優秀なトレーディング戦略の設計と、それを正しく成立させる精密な実装の双方を数字で検証して初めて、期待値は現実の利益へと変わるのです。

    📦 EAの作成・監査を承っています

    このブログの運営者は、EAの統計監査(ソースコード不要・ex4のみで可能)とEA作成代行(MQL4/MQL5)をココナラで承っています。いずれも納期は3営業日以内です。

    ライト監査は初回限定3,000円(通常5,000円)です。

    EA監査サービス → | まずは1,000円のEAクイック診断EA作成代行 →

    関連記事: EAのバックテストはこう読む — 見抜く3つの数字 / EA運用は口座で決まる — スプレッドとスワップの正直会計

    🖥️ EAを24時間安定稼働させる環境(VPS)

    EAは自宅PCのスリープ・停電で止まり、急変動時にSLが執行されないリスクを抱えます。稼働率・リソース方式・料金の5基準で国内4社を比較した記事はこちら → EA用VPS徹底比較 — 4社を実運用視点で選び分ける

    【広告】PR
    安定性重視なら XServer VPS for FX プレミアム →
    まず試すなら ABLENET VPS(最大10日間無料お試し) →

    スワップポイントは受け取った時に課税対象の所得になる点にも注意が必要です。税務の扱いはFXの税金と確定申告のまとめを参照してください。

    あなたが運用しているEAの優位性は、エントリータイミングの微細な歪みによって消えてしまっていませんか?

    「理論上は勝てるはずのロジック」を現実の利益に変えるために、今一度エントリー条件と注文環境の整合性をデータで検証してみませんか?


  • EAのバックテストはこう読む — 信頼できるか見抜く3つの数字

    EAのバックテストはこう読む — 信頼できるか見抜く3つの数字

    「販売ページのバックテストでは綺麗な右肩上がりだったのに、実際に稼働させたら資金が減り続けている…」

    このような苦い経験はありませんか?高額なFXの自動売買プログラム(EA)を購入し、期待に胸を膨らませて運用を始めたものの、思わぬ損失を抱えて悩むトレーダーは後を絶ちません。

    「勝率89%」や「過去10年で年利40%」といった魅力的な宣伝文句は、FX業界に溢れています。しかし結論から言えば、これらの表面的な数字だけではそのEAが将来も機能するかどうかは何も保証されません。

    なぜなら、市販されている多くのバックテストは、見かけの成績を良く見せる「都合の良い会計」で作られているからです。当サイトの監査実録でも、都合の良いバックテストに騙されて資産を減らしてしまったご相談を多数受けています。

    では、プロの検証者はEAの信頼性を見抜くためにどこをチェックしているのでしょうか?

    プロがEAのバックテストを判定する際は、販売ページの華やかな宣伝数字ではなく、次の3つの本質的な数字を確認します。

    • 統計的有意性を示す「t値」
    • 隠れた取引コストを暴く「スプレッド会計」
    • 環境変化への耐性を見る「期間分解・感応度」

    これらの指標を正しく読み解くことで、過剰最適化された危険なEAを運用前に見破ることが可能になります。

    1. なぜt値を見るのか? — 「期待値は偶然ではない」と証明する数字

    どれほどバックテストの期待値がプラスであっても、それがたまたま得られた偶然の揺らぎなのか、それとも将来も再現可能な傾向なのかを区別しなければなりません。その再現性を統計的に判定するための指標が「t値」です。

    t値は「平均値 ÷ (標準偏差 ÷ √トレード数)」という数式で計算されます。信頼できる基準となる目安は|t| ≥ 2です。この数値を超えて初めて、その成績が「統計的に偶然ではない」と判断できます。

    トレード数 日当たり期待値 t値の目安 判定結果
    100回 +0.1R/日 +1.0程度 偶然の誤差範囲(不十分)
    2,500回 +0.1R/日 +3.0まで上昇 統計的に優位性が実在する

    例えば、日当たりの期待値が+0.1Rであったとしても、トレード数がわずか100回であればt値は+1.0程度にとどまり、偶然の範囲を出ません。しかし、2,500回のトレード数で同じ期待値+0.1R/日を維持しているなら、t値は+3.0まで跳ね上がり、統計的に実在すると言えます。

    つまり、トレード数が明記されていない、あるいはt値が計算されていないバックテストは、判定材料として極めて不完全なのです。損失を避けるためにも、まずは総トレード数とt値の存在を確認しましょう。

    2. なぜスプレッド会計で騙されるのか? — bidとaskの隠された罠

    一般的なバックテストの多くは、bidデータ(または終値)のみを用いて検証が行われます。しかし、実際の買い注文(ロング)で約定するのはAsk(売値+スプレッド)です。

    特に注意しなければならないのが、ロールオーバー直後のサーバー時間0時です。実際の口座データを確認すると、この時間帯はbidが一時的に-2〜-5pips下方に大きく歪むことが確認されています。

    サーバー時間0時にエントリーする仕様のEAは、建値でこの価格歪みを丸ごと支払うことになります。その結果、見かけ上の取引コストの3倍相当もの負荷が実稼働で発生してしまうのです。

    本当の意味で信頼できる検証とは、エントリー時刻における実スプレッドと建値の歪みを期待値から差し引いた「正直会計」で計算されたものです。隠れた取引コストを軽視すると、リアル口座で思わぬ資産減少を招きます。

    3. なぜ全期間プラスでも危険なのか? — 過去データに潜む過剰最適化の罠

    「過去10年間の総損益がプラスだから安心」と考え、そのまま実稼働させていませんか?たとえ全期間でプラス成績であっても、年別成績に分解した際に10年中2年しかプラスがないようなEAには注意が必要です。

    このようなEAは、特定の市況(例えば低ボラティリティ時代など)に極端に依存しており、相場環境が変わった途端に破綻するリスクを孕んでいます。

    さらに、パラメーターの値を±20%動かしただけで期待値が半減してしまう場合、過剰最適化(カーブフィッティング)の疑いが濃厚です。過去データに数値を合わせすぎた結果、未来の相場では全く通用しなくなってしまいます。

    EAの頑健(ロバスト)性を正しく確認するには、以下の3つの分解検証をクリアしているかが重要になります。

    • 前半5年と後半5年に分けた期間分割テスト
    • パラメーター感度テスト(±20%変更時の成績変化)
    • 年別成績の安定度(特定年への依存の有無)

    これら3つの分解検証をすべて通過して初めて、そのEAは未来の相場でも「頑健である」と判定できます。

    この3つの数字を自力で検証するのは大変 — だから「監査」がある

    10年分のM1データを用意し、実スプレッドを加味した「正直会計」で再計算し、パラメーターのストレステストを回す。素朴な疑問から始まった検証であっても、これを個人で正確に行うには膨大な手間と専門知識が必要です。

    当サイトが提供する「EA監査」は、この地道で複雑な検証作業をあなたに代わって実施するサービスです。収集した実データを基に、「運用可・条件付き・運用不可」の3段階を明確な数字つきで判定いたします。

    プログラムのソースコードが手元になく、実行ファイル(ex4のみ)しか持っていない場合でも検証可能なプランを用意しております。

    📦 EAの作成・監査を承っています

    このブログの運営者は、EAの統計監査をココナラで承っています。ソースコードがなくても(ex4のみで)統計検証・ストレステストが可能で、納期は3営業日以内です。サンプルレポートもサービスページでご確認いただけます。

    ライト監査は初回限定3,000円(通常5,000円)です。

    EA監査サービスを見る(ココナラ) →

    まず気軽に試すなら: レポートの数字だけで1営業日で判定するEAクイック診断(1,000円)もあります → EAクイック診断を見る(ココナラ)

    関連記事: 勝率7割でも資産は減る — トランザクションコストの正体【監査実録】 / 東京ドリフトを10年分のM1データで検証した記録

    あなたが大切なお金を預けようとしているEAは、本当に「偶然ではない本物の期待値」を持っていますか?

    貴重な運用資金を危険に晒してしまう前に、まずは手元のバックテストにある総トレード数とt値、そしてスプレッドの計算基準だけでも見直してみることから始めてみませんか?


  • 自動売買を始める前に確認すること

    自動売買を始める前に確認すること

    「FXの自動売買(EA)をはじめれば放置で稼げる」と期待してスタートしたものの、準備不足のまま稼働させてしまい、大切な資金を急激に減らしてしまった…という失敗談が後を絶ちません。

    「最初に何を揃えればいいのか分からない」「費用はトータルでいくらかかるのだろう」と不安を感じていませんか?EA自動売買は正しい環境と知識を整えずに始めると、想定外のトラブルや損失を招くリスクが高まります。

    本記事では、初心者が事故なく安全にスタートするために確認すべき「7つの必須要件」を、費用感や選び方のコツとあわせて分かりやすく解説します。

    EA自動売買を始める前に確認すべき7つの必須要件とは?

    FX自動売買を始めるために必要な環境やツール、費用を一覧表にまとめました。全体像を把握してから準備を進めましょう。

    必須アイテム 概算費用 役割・用途 入手先・準備のポイント
    1. MT4対応FX口座 0円(口座開設無料) EAを発注・決済する取引基盤 国内・海外の対応ブローカー
    2. 取引資金 1万円〜(推奨10万円〜) ポジション保有の運用原資 余剰資金の範囲で準備
    3. EAプログラム 無料〜数万円 自動取引を実行するロジックファイル 販売サイト、MQL5、開発依頼
    4. Windows PC 既存PC(購入時5万円〜) 初期設定・VPS操作用端末 標準的なスペックでOK
    5. VPS(仮想サーバー) 月額1,000円前後〜 24時間連続稼働の安定環境 FX専用VPSサービスを契約
    6. ネット通信環境 既存回線(月額数千円) VPSへのリモート接続用 光回線や安定したWi-Fi
    7. 設定・運用知識 0円(無料で習得可能) 事故を防ぐリスク管理スキル ブログ記事や動画で学習

    1. MT4対応のFX口座:国内と海外どちらを選ぶべき?

    EAを動かすためには、取引プラットフォーム「MT4」に対応している証券会社の口座が必要です。証券会社は大きく分けて「国内FX」と「海外FX」の2つに分類されます。

    代表的なMT4対応証券会社は以下の通りです。

    • 国内MT4対応証券:FXTF(FXトレード・フィナンシャル)、楽天FX、JFX(Matrix Trader)など
    • 海外MT4対応証券:XM Trading(日本人利用者多数)、IS6FX、FBS、AXIORYなど

    国内証券は金融庁規制によりレバレッジが最大25倍に制限されますが、海外証券は最大1,000倍などの高いレバレッジが提供されています。

    ロット数の調整やスワップフリー口座の活用など、EA運用の柔軟性を重視するトレーダーからは海外口座が好まれるケースが多くなっています。

    2. 取引資金:安全に運用するための資金目安とロット設定

    EA自動売買に必要な取引資金は、「期待する利益」と「許容できるリスク」のバランスによって決定されます。

    運用スタイル 推奨資金目安 運用ロット数目安 運用における特徴
    少額スタート 10万円 0.01〜0.1ロット リスクを抑えて実際の挙動を確認するお試しライン
    本格運用の最小ライン 30万円 0.03〜0.3ロット 一定のドローダウンに耐えつつ収益を狙うライン
    安定運用ライン 100万円 0.1〜1.0ロット 資金効率を高め長期的な安定成長を目指すライン

    初心者の方が安全にスタートするための重要ポイントは以下の通りです。

    • 少額から始める:最初は1万円〜、もしくはデモ口座でテスト運用を行うのが鉄則です
    • 余剰資金を守る:万が一失っても生活に支障が出ない「完全な余剰資金」で運用しましょう
    • 控えめな設定:ロット目安は「口座資金10万円あたり0.01ロット」からが最も安全です

    3. EAファイル(.ex4/.mq4):入手方法と絶対に外せない選び方

    EA(Expert Advisor)は、取引ルールが記述されたプログラムファイルです。主な入手方法は以下の3つです。

    • ① 有料EAを購入する:GogoJungleなどの専門販売サイトで購入(数千円〜数万円)。過去の実績データや推奨設定が付属しています
    • ② 無料EAを利用する:MQL5公式サイトなどで無料配布されています。ただし開発者ごとの品質差が大きいため注意が必要です
    • ③ 自作・外注する:MQL4言語で自作するか開発者に依頼。自分の思い通りのトレードロジックを正確に反映できます

    なお、EAの拡張子には「.ex4」と「.mq4」の2種類が存在します。

    • .ex4ファイル:コンパイル済みの実行専用ファイルです。MT4に読み込ませるだけでそのまま動作します
    • .mq4ファイル:プログラムのソースコードです。中身の書き換えやロジック修正が可能です

    4. パソコン(Windows):Macユーザーはどう対処すればいい?

    MT4は本来、Windows OS専用に設計されたアプリケーションです。ご自身の環境に合わせて準備を進めましょう。

    Windows PCをお持ちの方
    既存のパソコンに直接MT4をインストールして利用できます。最新の高スペックパソコンでなくても一般的なPCで快適に動作します。

    Macをお使いの方
    Mac上でMT4を動作させるには以下のいずれかの手段が必要となります。

    • WineやPlayOnMac(無料):Mac上でWindowsアプリを動かす変換ツールを利用する
    • VPSの利用(推奨):後述するクラウドサーバーを契約しMacからリモート接続する

    5. VPS(仮想サーバー):なぜ24時間稼働に不可欠なのか?

    VPS(Virtual Private Server)は、ネット上に設置された24時間動く仮想パソコンです。自宅のパソコン電源を落としても、VPS上のMT4とEAは休まず取引を継続してくれます。

    VPS導入が推奨される主な理由は以下の通りです。

    • パソコン停止のリスク回避:自宅PCのスリープや予期せぬ再起動による機会損失を防げます
    • 通信の高度な安定性:データセンターの高速回線を使用するため停電や回線切れが起こりにくいです
    • 注文遅延(レイテンシ)の低減:FX業者のサーバーに近いロケーションを選ぶことで約定力が向上します

    代表的な推奨VPSサービスの比較は以下の通りです。

    サービス名 月額料金目安 特徴・おすすめポイント
    XM Trading専用VPS 条件達成で無料 一定の口座残高と取引量があれば無料で利用可能
    お名前.com VPS 800円〜 完全日本語対応で初心者でも簡単に設定可能
    KAGOYA CLOUD VPS 900円〜 安定した動作と高い稼働率でMT4ユーザーに人気
    ForexVPS.net $10〜 海外FXに特化した約定スピード重視のサーバー

    6. インターネット環境:通信トラブルから口座を守るポイント

    EAを連続稼働させる場合、ネットワークの接続性がトレード成果を左右します。VPSを使用すれば自宅の通信障害の影響を直接受けることはありません。

    ただし、VPSへの設定作業や定期的な監視を行うためには、ご自宅にも安定した光回線やWi-Fi環境を確保しておくことが大切です。

    7. 運用知識とリスク管理:無料で身につく最低限のスキルとは?

    どんなに優秀なEAであっても、完全放置で永久に勝ち続けることはできません。最低限のリスク管理知識を身に付けておきましょう。

    事前に学んでおくべき必須スキルは以下の通りです。

    • MT4の基本操作:EAの適用、パラメーター変更、口座ログインの手順
    • バックテスト結果の分析:勝率だけでなく最大ドローダウンやプロフィットファクターの確認
    • 経済指標時の稼働管理:重大な経済指標発表前にEAを一次停止する判断力

    まとめ:確実な準備を整えて安全なEA自動売買をスタートしよう

    FX自動売買を安全に始めるために確認すべき7つの必須要件を解説しました。焦って本番運用を始めるのではなく、準備を確実に整えることが失敗を防ぐ最大の鍵です。

    まずは少額資金やデモ口座、そして無料EAを活用して、システムが動く感覚を確かめてみませんか?しっかりとした基盤を作ることが、長期的で安定した資産運用への確実な一歩となります。

    ────────────────────────────

    ※本記事は情報提供を目的としており、投資勧誘ではありません。FX取引にはリスクがあり、元本保証ではありません。投資判断は自己責任でお願いいたします。

    【広告】PR

    XMTradingで口座を開設する

    当ブログで検証しているEA・戦略の多くは、スワップフリー口座(KIWAMI極など)を前提に会計しています。数百万人に利用されている国際ブローカーで、デモ口座からリスクなく試せます。

    XMTradingの口座開設はこちら →

    📦 このブログの運営者はEAの作成・監査を承っています

    EAの統計監査(ソースコード不要・ex4のみで可能)とEA作成代行(MQL4/MQL5)をココナラで承っています。いずれも納期は3営業日以内です。

    ライト監査は初回限定3,000円(通常5,000円)です。

    EA監査サービス → | まずは1,000円のEAクイック診断EA作成代行 →

    🖥️ EAを24時間安定稼働させる環境(VPS)

    EAは自宅PCのスリープ・停電で止まり、急変動時にSLが執行されないリスクを抱えます。稼働率・リソース方式・料金の5基準で国内4社を比較した記事はこちら → EA用VPS徹底比較 — 4社を実運用視点で選び分ける

    【広告】PR
    安定性重視なら XServer VPS for FX プレミアム →
    まず試すなら ABLENET VPS(最大10日間無料お試し) →


  • FX自動売買EAとは?初心者向け完全ガイド|仕組みから運用まで徹底解説

    FX自動売買EAとは?初心者向け完全ガイド|仕組みから運用まで徹底解説

    「夜間に気になって何度も目を覚まし、スマホで為替レートをチェックしてしまう…」「含み損に耐え切れず損切りした直後、相場が思い通りに反転して後悔した…」こうした失敗や苦い経験はありませんか?FX取引において、感情に惑わされて大切な資金を減らしてしまう悩みは、初心者トレーダーの多くがぶつかる壁です。相場の急変動に怯えながら過ごす毎日は、精神的にも大きな負担となります。

    そこで注目されているのが、あらかじめ設定したルール通りに機械的なトレードを実行する「FX自動売買EA(Expert Advisor)」です。人間が介在しないため、感情に左右されることなくプログラムが24時間体制で相場を監視してくれます。本記事では、EAの基本構造から選定ポイント、安全な運用手順まで、初心者の方に向けて分かりやすく徹底解説します。

    FX自動売買EAとは?なぜ感情を排除したトレードができるのか

    FX自動売買EAとは、MetaTrader 4(MT4)などの取引プラットフォーム上で動作する専用のプログラムです。あらかじめ設定した売買ルールに従い、システムが自動的に発注から決済までを行います。

    つまり、「いつ買って、いつ売るか」の判断を人間の感情ではなく、プログラムの計算に全面的に任せる仕組みです。仕事中や睡眠中であっても、チャンスを逃さず機械的に取引を実行できます。

    EAが持つ主な特徴は以下の通りです:

    • 24時間いつでも機械的に取引を実行(睡眠中や仕事中もチャンスを逃さない)
    • 恐怖や欲望といった人間の感情を完全に排除した取引が可能
    • 複数の通貨ペアやタイムフレームを同時に監視・分析
    • 過去5〜10年以上の相場データを用いたバックテストが可能

    EAはどうやって動くのか?プログラムが売買を判断する仕組み

    EAはテクニカル指標をベースにした「シグナル」と呼ばれる売買条件を常に監視しています。価格の動きが特定の条件を満たした際、コンマ秒単位で自動的にエントリーや決済の注文を出します。

    一般的にEAに組み込まれる代表的なテクニカル指標には以下のようなものがあります:

    • RSI(相対力指数): 相場の「売られすぎ」「買われすぎ」をオシレーターで数値判定
    • 移動平均線(SMA/EMA): トレンドの発生方向や価格の勢いを確認
    • ボリンジャーバンド: 価格の収縮と拡大(ボラティリティ)を統計的に分析
    • ローソク足パターン: 特定のチャート形状やプライスアクションを検知

    これらの指標を複雑に組み合わせることで、根拠のあるポイントだけで厳格にトレードを行う仕組みが構築されています。

    EA運用のメリットとデメリット|これを見落とすと資金失念のリスクも?

    EAを運用する4つの大きなメリット

    自動売買の最大の強みは、メンタルによる自滅を防げる点にあります。当ブログでの検証や監査実録においても、ルールの徹底こそが安定運用への一番の近道であることが確認されています。

    • 感情の完全排除: 焦りによる無謀なエントリーや損切りの遅れを未然に防ぐ
    • 24時間体制の稼働: 深夜や仕事中であっても最適な取引機会を逃さない
    • 過去データによる検証可能性: 過去10年分のヒストリカルデータで期待値を事前計算できる
    • 並行処理能力: 人間の目では不可能な複数通貨ペアの同時監視を実現

    EA運用のデメリットと潜むリスク

    しかし、どんなに優れたEAであっても無条件に放置すれば安全というわけではありません。これを見落とすと、相場の急変に対応できず貴重な運用資金を一気に失うリスクがあります。

    • 初期設定やパラメータ設定に対する基礎的な知識が必要
    • 24時間安定して動作させるための通信環境(VPS)が推奨される
    • 経済指標発表や要人発言など、突発的な相場急変への対策が必要
    • 完全放置は不可であり、定期的な稼働確認やメンテナンスが重要

    失敗しない!初心者向けEA選定の3大ポイント

    市場には数多くのEAが出回っていますが、中にはリスクが高すぎるシステムも存在します。EAを選ぶ際は、必ず以下の3つのポイントを確認してください。

    1. 長期バックテスト結果の確認

    単期の「月利50%」といった宣伝文句に惑わされてはいけません。確認すべきは過去5〜10年以上の長期データにおいて、純利益が右肩上がりであるかという点です。

    また、一時的な最大資金減少幅を示す「最大ドローダウン」が15〜20%以内に抑えられているか、スプレッドや手数料が含まれているかを必ずチェックしましょう。

    2. リスク管理機能の有無

    相場の急激な逆行に備え、ストップロス(損切り)が確実に設定されるロジックであるかを確認します。ナンピンを無限に繰り返すような無制限リスクのシステムは避けましょう。

    一定以上の損失で自動的に取引を停止する安全装置や、最大保有時間の制限機能がついているEAを選ぶとより安全です。

    3. 取引ロジックと運用の透明性

    どのような根拠で取引を行うのか、ロジックが開示されているEAを選びましょう。当ブログの監査実録でも、中身が分からない「ブラックボックス型」のシステムは長期的リスクが高い傾向が判明しています。

    EA運用を始める6つのステップ

    実際にEAでの運用を開始するまでの手順を6つのステップで解説します。

    Step 1: MT4対応のFX口座を開設する

    MT4プラットフォームに対応した信頼できるFXブローカーで取引口座を開設します。

    Step 2: MT4をPCにインストールする

    ブローカーから提供されるMT4をダウンロードし、ご自身のPCにインストールします。

    Step 3: EAファイル(.ex4 / .mq4)を導入する

    入手したEAファイルをMT4の指定フォルダ(Expertsフォルダ)に配置して読み込ませます。

    Step 4: バックテストで性能を確認する

    MT4のストラテジーテスターを使用し、過去の相場データでEAが期待通りの挙動をするか事前検証します。

    Step 5: デモ口座でテスト運用を行う

    いきなりリアル資金を投入せず、まずはデモ口座で実際の注文処理や動作に問題がないかテストします。

    Step 6: リアル口座で少額から本番運用開始

    デモ運用で安全性が確認できたら、最小ロット(0.01ロット)から本番運用をスタートさせます。

    初心者が守るべき運用のアドバイス

    「高利益」より「低リスク・安定性」を最優先する

    投資で長期間生き残るために最も重要なのは、一時的なハイリターンではなく損失リスクの低さです。「最大ドローダウンの低いEA」と「勝率の安定度」を基準に選びましょう。

    最初は最小ロット(0.01ロット)から始める

    EAの挙動や相場の感覚を掴むまでは、1,000通貨(0.01ロット)程度の最小単位で運用します。資金が増えて運用に慣れてから段階的にロットを増やしていくのが鉄則です。

    1日1回は稼働状況をチェックする

    「自動売買だから完全放置で良い」と考えるのは間違いです。通信エラーや突発的な相場変動に備え、毎日1回はポジション状況やニュースを確認しましょう。

    まとめ|システムを理解して安全な一歩を踏み出そう

    FX自動売買EAは、感情的になりがちなトレーダーの強い味方となる合理的なツールです。しかし「導入すれば放置で稼げる」という魔法ではなく、適切な選定とリスク管理、そして定期的なメンテナンスが不可欠となります。

    あなたはまずリスクのないデモ口座でEAの動きを試してみますか?それとも過去のバックテストデータを確認することから始めますか?ご自身のペースに合わせて、確実な一歩を踏み出してみましょう。


    ※本記事は情報提供を目的としており、投資勧誘ではありません。FX取引にはリスクがあり、元本保証ではありません。投資判断は自己責任でお願いいたします。

    📦 このブログの運営者はEAの作成・監査を承っています

    EAの統計監査(ソースコード不要・ex4のみで可能)とEA作成代行(MQL4/MQL5)をココナラで承っています。いずれも納期は3営業日以内です。

    ライト監査は初回限定3,000円(通常5,000円)です。

    EA監査サービス → | まずは1,000円のEAクイック診断EA作成代行 →

    🖥️ EAを24時間安定稼働させる環境(VPS)

    EAは自宅PCのスリープ・停電で止まり、急変動時にSLが執行されないリスクを抱えます。稼働率・リソース方式・料金の5基準で国内4社を比較した記事はこちら → EA用VPS徹底比較 — 4社を実運用視点で選び分ける

    【広告】PR
    安定性重視なら XServer VPS for FX プレミアム →
    まず試すなら ABLENET VPS(最大10日間無料お試し) →