本ページはプロモーションが含まれています

ホーム › トレード全般

トレード全般

くるくるワイドのEA化|既存EAの検証とMQL4での自作方法

↻

トム

トム

現役エンジニア(本業はJavaバックエンド)。以前はMT4のEAを自作してFX自動売買をしていました(現在は引退)。今はポイ活を「時給」で検証・攻略しています。

くるくるワイドをEAで自動化する方法は、既製のEAを使うか、MQL4で自作するかの2つです。

既製EAの代表はkmTraderLite_AUDJPYで、2026年9月26日時点でもゴゴジャンで販売されています。販売ページで自動化が確認できるのは本体・トラップの2つで、ヘッジトレードと固定ポジションは入っていません。複利の有無は販売ページに書かれていません。販売ページのフォワード成績はマイナスで、初期設定のレンジ上限110円は豪ドル円の相場がすでに上回っています。

後半では、本体・複利・ヘッジ・固定ポジションを自作したMQL4コードと、使う前に直すべき箇所を載せています。手法のルールや必要資金の考え方は、次の記事で解説しています。

あわせて読むくるくるワイドの始め方~8つのルールを守るだけ~くるくるワイドの始め方を8つのルールと計算例で解説。本体・トラップ・ヘッジの建て方に加え、必要資金の目安、スワップやスプレッドのコスト、ロスカットのリスク、儲からないと言われる理由まで整理しました。

この記事でわかること

  • 既製EA kmTraderLite_AUDJPYの販売状況とフォワード成績(2026年9月時点)
  • くるくるワイドの8つのルールのうち、EAで自動化できる範囲
  • 必要資金とレンジ上限110円の問題(試算)
  • 本体・複利・ヘッジ・固定ポジションのMQL4コードと修正点

くるくるワイドのEA化はどこまで自動化できる?

くるくるワイドEAとは、くるくるワイドの本体・トラップ・複利・ヘッジなどの注文を、MT4上で自動で出すEA(自動売買プログラム)のことです。ただし、既製品も自作コードも、手法のすべてを自動化できているわけではありません。

くるくるワイドは魚屋さんが考案した両建て手法で、始め方の記事では8つのルールに分けて整理しています。EA化で難しいのは、このうち裁量が入るルールの扱いです。8つのルールのうち、既製EAと本記事の自作コードが自動化している範囲は次のとおりです。

くるくるワイドのルールkmTraderLite_AUDJPY本記事の自作コード
1. レンジを予測するパラメータで上限・下限を指定(初期値110〜50円)手動(トラップEA側で設定)
2. 本体を建てる自動自動(EA起動時に成行で買い)
3. トラップを貼る自動(グリッド注文)魚屋さん公開のトラップEAを使う
4. ヘッジトレードなし自動(ボリンジャーバンド接触で売り)
5. 固定ポジションなし自動(ヘッジの利益で建てる)
6. 複利販売ページに説明なし自動(3種類)
7. トラップ幅を広げる販売ページに説明なし未実装
8. 仮想建値化販売ページに説明なし未実装

kmTraderLite_AUDJPYはヘッジトレードと固定ポジションを持たず、販売ページには逆行時の調整(トラップ幅の拡大・仮想建値化)の説明もありません。逆行したときは損切りせずに戻りを待つ設計です。

本記事のコードはヘッジと固定ポジションまで書いていますが、逆行時の調整は入っていません。どちらを使っても、ルール7と8は自分で判断して手を入れることになります。

このほか、固定ポジション以外を自動化した「くるくるワイドEA【ほぼ完全版】」(ボンポチ氏作)も、ゴゴジャンで17,800円で販売されています(2026年9月26日確認)。

作者のブログでは、ヘッジトレードは指定した時刻にエントリーする方式で、仮想建値化も自動で行うと説明されています。

既製EA kmTraderLite_AUDJPYの仕組み

kmTraderLite_AUDJPYは、くるくるワイドの一部の機能を自動化したEAです。作者のmoya氏は、くるくるワイドを使って極力損切りしないEAを開発していると紹介しています。

手法を完全に再現したものではありません。ただ、ポジションはすべて自動で建てるので、手法のルールが難しいと感じる人や、裁量トレードの手間を省きたい人の選択肢になります。

kmTraderLite_AUDJPYのバックテスト

販売ページに掲載されているバックテスト(過去11年分。EAの最終更新は2018年10月)では、途中で大きな含み損を抱えたあと、仕切り直しや出口と思われる動きで資産が増えています。くるくるワイドらしい資産曲線です。

kmTraderLite_AUDJPYのバックテスト資産曲線。含み損を抱えながら右肩上がりに推移

あわせて読むEAのバックテストとフォワードテスト|正しい評価方法5種と合格基準EAはバックテストだけで評価すると本番で崩れがちです。アウトオブサンプル・ウォークフォワード・モンテカルロ・リアルフォワードの5つの検証法と、フォワード期間や取引回数など合格の目安を計算例つきで解説します。

ロジックと特徴:損切りしないレンジ型

販売ページの説明によると、ドルコスト平均法とグリッドトレードを組み合わせたレンジトレード型のEAです。想定したレンジの中で、注文をひたすら繰り返します。

ほとんど損切りをしないため、ロスカットされない限りは利益が出た時点でまとめて全決済する設計です。販売ページでも、全決済時の勝率は99.9%と説明されています。

その裏返しで、含み損は抱え続けやすく、全決済までは口座から出金しにくくなります。長期間、含み損に耐えながら運用するタイプのEAです。

あわせて読むナンピン・マーチン・両建EAは危険?何段で破綻するか計算で解説ナンピン・マーチン・両建EAの危険性を計算で解説。初期0.01ロット・20pips間隔の倍々ナンピンが何pipsの逆行で破綻するか、両建ての落とし穴、最大ポジション数と証拠金維持率の決め方まで数値でわかります。

フォワード成績と販売状況(2026年9月時点)

販売ページの数字を並べると、バックテストとフォワードの差がはっきり出ます。バナーにある「11年で35倍」はバックテストの結果で、実際の口座で動かしたフォワード成績は全期間でマイナスです。

項目内容(2026年9月26日時点・ゴゴジャン商品ページ)
販売状況販売中(15,000円・税込)
販売開始/最終更新2018年4月12日/2018年10月19日(バージョン111)
対応MT4・豪ドル円
フォワード収益(全期間)−1,114,660円(初期額100万円)
プロフィットファクター0.76
勝率62.50%(2,256回中1,410勝)
最大ドローダウン42.31%(2,636,800円)
推奨証拠金5,683,920円
レビュー★5.0(3件)

プロフィットファクターが1を下回っているので、フォワード期間は損失の合計が利益の合計を上回っています。販売ページには、複数のポジションをまとめて決済する設計のため勝率や平均損益は判断材料にならない、という作者の注記もあります。見るべきは収益と最大ドローダウンです。

あわせて読むプロフィットファクター(PF)とは?EAの理想値・目安と計算方法EAのプロフィットファクター(PF)の理想値は1.2〜1.5が目安。総利益÷総損失の計算方法、勝率・リスクリワードとの関係、2.0超のPFが危ない理由、期待値やリカバリーファクターとの併用まで解説。

出品者の最終ログインは2023年12月26日で、EAの最終更新は2018年10月です。不具合の修正や相場の変化に合わせた更新は、期待しにくい状態です。

必要資金とレンジ上限110円の問題(試算)

販売ページでは、初期設定のレンジ(50〜110円)のままなら35万円程度の資金が必要と説明されています。始め方の記事の式(必要資金 ≒ 本体通貨数 ×(建値 − ロスカット価格)+ ロスカット価格での必要証拠金。レバレッジ25倍で証拠金は取引金額の4%)で試算すると、ほぼ同じ金額です。

試算の条件必要資金の目安
1万通貨をレンジ中央の80円で買い、50円まで耐える1万通貨×30円+50円×1万通貨×4% = 約32万円
1万通貨を80円で売り、110円まで耐える1万通貨×30円+110円×1万通貨×4% = 約34.4万円

ただし、初期設定のレンジは「1995年以降の安値55.02円〜高値107.81円に耐える」前提で作られています。豪ドル円は2024年7月に109円台まで上がり、2026年9月24日には111円台半ばで取引されました。初期設定の上限110円は、すでに超えています。

今から使うならレンジを広げる必要があり、そのぶん資金も増えます。例えば上限を130円、中央を90円に広げた場合です。1万通貨を90円で売って130円まで耐えるには、約45.2万円(1万通貨×40円+130円×1万通貨×4%)が必要です。

くるくるワイドのルールでは、レンジの上側で始めると本体は売りになります。売りのスワップは、外為ファイネストのMT4個人コースで2026年9月24日に付与された豪ドル円の値で1万通貨あたり1日−114円です。1万通貨の売りを1年持つだけで、約4.2万円の支払いになります。

手法のルールを覚える前に、まず自動で動かしてみたい場合の選択肢にはなります。使うならレンジを今の相場に合わせて広げ、フォワード成績がマイナスであることを踏まえて余剰資金で試すのが前提です。

今回紹介したEAはこちら↓
kmTraderLite_AUDJPY
11年で35倍!過去最安値~最高値までのレンジで利益を積み上げ

くるくるワイドEAをMQL4で自作する方法

既製EAを使う代わりに、くるくるワイドを自分でEA化する方法もあります。基本的な注文は機械的なルールで決まり、ポジションを手で建てるのは手間なので、EA化してしまおうと考えました。

あわせて読むFX EAの自作・作り方|MQL4で始める初心者向けEA開発入門FXのEAはMT4付属のMetaEditorとMQL4で無料で自作できます。必要なもの・難しさ、ひな形作成からコンパイル・バックテストまでの手順と全コード、未経験者向けのノーコードツール・ChatGPT・作成代行も解説します。

自作するEAの主な機能は、次の6つです。

  • 本体ポジションを建てる
  • トラップを貼る
  • トラップトレードの利益で攻撃的複利、現実的複利、非現実的複利を建てる
  • ヘッジトレードする
  • ヘッジトレードの利益で固定ポジションを建てる
  • 下落時に本体の出口とトラップの幅を修正する(本記事のコードには含まれていません)

くるくるワイドEAの主な機能

1
本体ポジションを建てる
2
トラップを貼る
3
トラップの利益で複利を建てる
攻撃的・現実的・非現実的複利
4
ヘッジトレードする
5
ヘッジの利益で固定ポジションを建てる
6
下落時に本体の出口とトラップ幅を修正

以下は、本体をロング(買い)で建てる場合のソースです。

外部パラメータ

EAの外部パラメータは次のとおりです。

extern bool   HONTAI_UMU    = true;  //本体を建てるかどうか、パラメータ修正時はfalseにすること
extern double HONTAILOTS    = 0.1;   //本体ロングロット数
extern double HONTAI_TP     = 122;   //本体TP
extern bool   SAIKIDOU      = false; //再起動時true

extern int    MAGIC_TRAP    = 222;   //トラップマジックナンバー
extern int    MAGIC_HONTAI  = 333;   //本体マジックナンバー
extern int    MAGIC_HEDGE   = 444;   //ヘッジマジックナンバー
extern int    MAGIC_COMP    = 555;   //複利マジックナンバー
extern int    MAGIC_FIX     = 666;   //固定マジックナンバー

extern double COMP1FUND     = 0;     //攻撃的複利資金
extern double COMP1RATE     = 110;   //攻撃的複利レート
extern double COMP2FUND     = 0;     //現実的複利資金
extern double COMP2RATE     = 120;   //現実的複利複利レート
extern double COMP3FUND     = 0;     //非現実的複利資金
extern double COMP3RATE     = 130;   //非現実的複利レート

extern double FIXFUND       = 0;     //固定ポジション資金
extern bool   HEDGEALLOWFLG = true;  //ヘッジトレード許可フラグ
extern bool   HEDGEBOOST    = false; //ヘッジブーストフラグ(ヘッジ資金があれば即ヘッジポジションを持つ)

本体ポジションを建てる

init()関数の中に、本体を建てるコードを書いています。本体の注文価格は、EAを稼働した瞬間の現在の価格です。

本体を建てるかどうかは外部変数(HONTAI_UMU)で切り替えます。EAを再起動するときは、この外部変数をfalseにして本体を二重に建てないようにします。

int init(){
   if(HONTAI_UMU){
      // 本体を建てるかどうか
      HONTAI_RATE = Ask;  // 買いはAskで発注する
      int ticket = OrderSend(Symbol(),OP_BUY,HONTAILOTS,HONTAI_RATE,SLIPPAGE,0,HONTAI_TP,"本体",MAGIC_HONTAI,0,Blue);
   }
   return(0);
}

トラップを貼る

トラップを貼る部分のコードは魚屋さんのブログにあるとおりのコードを使用することにします。

トラップの利益で3種類の複利を建てる

攻撃的複利は複利の目安より10pips上、現実的複利と非現実的複利は10pips下にレートがあるときに、複利資金から建てられるロット数を計算して複利を建てます。

//攻撃的複利
//複利目安よりも10pipレートが上の場合かつ複利資金がある場合
if(Ask > COMP1RATE + 0.1 && COMP1FUND > 0 && COMPALLOWFLG){
   // 複利ロットを求める
   double Comp1Lots = NormalizeDouble((COMP1FUND / (Ask - COMP1RATE)) / 100000,SisyaGonyuuTani);
   // 複利ロットが1000枚以上の場合
   if(Comp1Lots >= lowestLots){
      // トラップ上限よりレートが下の場合
      if(Ask < URITOP){
         int ticket = OrderSend(Symbol(),OP_BUY,Comp1Lots,Ask,SLIPPAGE,COMP1RATE,URITOP,"複利1",MAGIC_COMP,0,Blue);
         COMP1FUND -= Comp1Lots * (Ask - COMP1RATE) * 100000;
      }
   }
}
// 現実的複利
// 複利目安よりも10pipレートが下の場合かつ複利資金がある場合
if(Bid < COMP2RATE - 0.1 && COMP2FUND > 0){
   // 複利ロットを求める
   double Comp2Lots = NormalizeDouble((COMP2FUND / (COMP2RATE - Bid)) / 100000,SisyaGonyuuTani);
   // 複利ロットが1000枚以上の場合
   if(Comp2Lots >= lowestLots){
      // トラップ下限よりレートが上の場合
      if(Bid > KAIBOTTOM){
         int ticket = OrderSend(Symbol(),OP_SELL,Comp2Lots,Bid,SLIPPAGE,COMP2RATE,KAIBOTTOM,"複利2",MAGIC_COMP,0,Blue);
         COMP2FUND -= Comp2Lots * (COMP2RATE - Bid) * 100000;
      }
   }
}
// 非現実的複利
// 複利目安よりも10pipレートが下の場合かつ複利資金がある場合
if(Bid < COMP3RATE - 0.1 && COMP3FUND > 0){
   // 複利ロットを求める
   double Comp3Lots = NormalizeDouble((COMP3FUND / (COMP3RATE - Bid)) / 100000,SisyaGonyuuTani);
   // 複利ロットが1000枚以上の場合
   if(Comp3Lots >= lowestLots){
      // トラップ下限よりレートが下の場合
      if(Bid < KAIBOTTOM){
         int ticket = OrderSend(Symbol(),OP_SELL,Comp3Lots,Bid,SLIPPAGE,COMP3RATE,KAIBOTTOM,"複利3",MAGIC_COMP,0,Blue);
         COMP3FUND -= Comp3Lots * (COMP3RATE - Bid) * 100000;
      }
   }
}

ヘッジトレードを建てる

ヘッジポジションを持っていないときに、ヘッジできるポジション数を計算してヘッジポジションを建てます。

ヘッジポジションを建てる条件は、簡易的に前の足の高値がボリンジャーバンド(期間21・2σ)の上限に達したらとしています。

//ヘッジポジションをもっているかチェック
for(int i = 0; i < OrdersTotal(); i++){
   if(OrderSelect(i, SELECT_BY_POS) == true){
      if(OrderMagicNumber() == MAGIC_HONTAI){
         HEDGEFLG = false;
         for(int j = 0; j < OrdersTotal(); j++){
            if(OrderSelect(j, SELECT_BY_POS) == true){
               if(OrderMagicNumber() == MAGIC_HEDGE){
                  HEDGEFLG = true;
                  break;
               }
            }
         }
         if(HEDGEFLG){
            break;
         }
      }
   }
}
//ヘッジポジションを立てていない場合
double Boli2Up1 = iBands(NULL,0,21,2,0,PRICE_CLOSE,MODE_UPPER,1);
if(!HEDGEFLG){
   //(出口時の本体益-出口時のトラップ損)÷(出口のレート-現レート)
   if(URITOP - 0.1 > Bid){
      hedgeposition = NormalizeDouble(((URITOP * HONTAILOTS - HONTAI_RATE * HONTAILOTS) - (URITOP * HONTAILOTS - HONTAI_RATE * HONTAILOTS)/2)/(URITOP - Ask),2);
      //ヘッジポジションが持てる場合
      if(hedgeposition > lowestLots){
         if(HEDGEBOOST){
            HEDGETP = Bid - 0.1;
            HEDGEFLG = true;
            int ticket = OrderSend(Symbol(),OP_SELL,hedgeposition,Bid,SLIPPAGE,URITOP,HEDGETP,"ヘッジ",MAGIC_HEDGE,0,Green);
         }
         else{
            if((High[1] >= Boli2Up1)){
               HEDGETP = Bid - 0.1;
               HEDGEFLG = true;
               int ticket = OrderSend(Symbol(),OP_SELL,hedgeposition,Bid,SLIPPAGE,URITOP,HEDGETP,"ヘッジ",MAGIC_HEDGE,0,Green);
            }
         }
      }
   }
}

このロット計算は、始め方の記事にあるヘッジの計算例と同じ式です。本体0.7ロット(7万通貨)、建値100円、出口107円、現レート105円を当てはめてみます。

(0.7×107 − 0.7×100 − (0.7×107 − 0.7×100)÷2)÷(107 − 105)= 1.225ロットとなり、計算例の12.25万通貨と一致します。コードでは小数2桁に丸めるため、実際の発注は1.22ロットです。

ヘッジの利益で固定ポジションを建てる

固定ポジションが本体枚数以下ならヘッジトレードで得た利益をもとに固定ポジションを建てます。

//固定ポジション数を調べる
FIXPOSITION = 0;
for(int i = 0; i < OrdersTotal(); i++){
   //インデックスを使用して注文を選択する
   if(OrderSelect(i, SELECT_BY_POS) == true){
      if(OrderMagicNumber() == MAGIC_HONTAI){
         for(int j = 0; j < OrdersTotal(); j++){
            if(OrderSelect(j, SELECT_BY_POS) == true){
               if(OrderMagicNumber() == MAGIC_FIX){
                  FIXPOSITION += OrderLots();
               }
            }
         }
      }
   }
}
//固定ポジションを建てる
if(FIXPOSITION <= HONTAILOTS && FIXFUND > 0 && HONTAI_RATE + (HONTAI_TP - HONTAI_RATE)/2 - 0.1 > Bid && KOTEIALLOWFLG){
   double FixLots = NormalizeDouble((FIXFUND / (HONTAI_RATE + (HONTAI_TP - HONTAI_RATE)/2 - Bid)) / 100000,SisyaGonyuuTani);
   if(FixLots >= lowestLots){
      int ticket = OrderSend(Symbol(),OP_SELL,FixLots,Bid,SLIPPAGE,HONTAI_RATE + (HONTAI_TP - HONTAI_RATE)/2,0,"固定ポジション",MAGIC_FIX,0,Yellow);
      FIXFUND -= FixLots * (HONTAI_RATE + (HONTAI_TP - HONTAI_RATE)/2 - Bid) * 100000;
   }
}

自作コードを使う前に確認したいこと

掲載したコードは機能ごとの抜粋です。SLIPPAGE・URITOP・KAIBOTTOM・lowestLots・SisyaGonyuuTaniなどの変数の宣言と、下落時に本体の出口とトラップ幅を直す処理は含まれていません。そのままではコンパイルできないので、宣言を足してから使ってください。

元のコードを紙上で検算すると、次の箇所は意図どおりに動きませんでした。上のコードは修正済みです。

  • 本体の買い注文の価格をBidからAskに変更(MQL4では買いはAsk、売りはBidで発注する)
  • 現実的複利と非現実的複利で、資金を減らす式の符号を修正(元の式では、売りを建てるたびに資金が増えていた)
  • 固定ポジション数の比較で、ロット数を100000で割っていた箇所を修正(OrderLots()はロット数を返すため、元の条件は常に成立していた)
  • 固定ポジションの売り注文の価格をAskからBidに変更
  • init()の最後に戻り値(return(0);)を追加

もう1点、始め方の記事のルールでは複利は本体と同じ方向に建てます。このコードの現実的複利と非現実的複利は売り(本体と逆方向)で建てているため、ルールどおりにするなら買いに書き換えて、損切りを下側に置く必要があります。また、非現実的複利はレートがトラップ下限(KAIBOTTOM)より下のときに売り、利食いをそれより上のKAIBOTTOMに置いています。売り注文の利食いは現在値より下に置く決まりなので、このままでは注文が受け付けられません(OrderSendがエラー130 ERR_INVALID_STOPSを返します)。

くるくるワイドEAのよくある質問

くるくるワイドのEA化について、検索されることの多い疑問をまとめました。既製EAの現状、必要資金、自作するときの範囲が中心です。数値は2026年9月26日時点で確認したものです。

Q1. くるくるワイドのEAはある?

A1. あります。既製品では、本体・トラップを自動化したkmTraderLite_AUDJPY(15,000円)と、固定ポジション以外を自動化した「くるくるワイドEA【ほぼ完全版】」(17,800円)が、ゴゴジャンで販売されています(2026年9月26日確認)。

Q2. kmTraderLite_AUDJPYは今でも使える?

A2. 販売は続いていますが、初期設定のまま使える状態ではありません。フォワード成績は全期間で−1,114,660円、プロフィットファクターは0.76で、最終更新は2018年10月です。初期設定のレンジ上限110円も、2026年9月の豪ドル円(111円台)が上回っています。

Q3. kmTraderLite_AUDJPYに必要な資金はいくら?

A3. 初期設定のレンジ50〜110円なら、販売ページの説明では35万円程度です。レンジを上限130円・中央90円に広げると、1万通貨の売りを130円まで持つだけで約45.2万円が必要という試算になります。

Q4. くるくるワイドのヘッジトレードはEA化できる?

A4. エントリー条件を決めればできます。本記事のコードは、前の足の高値がボリンジャーバンド(期間21・2σ)の上限に届いたら売る条件です。ヘッジの数量は「(出口時の本体利益 − 出口時のトラップ損)÷(出口のレート − 現レート)」で計算します。

Q5. くるくるワイドEAを自作するには何が必要?

A5. MT4、MQL4の基本的な知識、魚屋さんのブログで公開されているトラップEAのコードが必要です。本記事のコードは本体・複利・ヘッジ・固定ポジションの部分だけで、変数の宣言やトラップ幅の拡大、仮想建値化は含まれていません。

Q6. くるくるワイドEAは儲からない?

A6. EAにしても、手法の性質は変わりません。損切りせずに含み損に耐える設計なので、想定したレンジを外れると大きな損失になります。kmTraderLite_AUDJPYも、バックテストは11年で35倍でしたが、フォワード成績はマイナスです。

まとめ:くるくるワイドEAは既製と自作のどちらを選ぶか

既製EAと自作コードの違いは、8つのルールのうちどこまで自動化しているかです。kmTraderLite_AUDJPYはヘッジと固定ポジションを持たず、本記事のコードはトラップ幅の拡大と仮想建値化が未実装です。

実際にEAを稼働させてみた結果、おかしな動作をしたりまだまだ未完成な部分がありました。また小回りが利かないので、本気でやるなら結局手動が一番であるということに気づきました。

既製EAで試すなら、kmTraderLite_AUDJPYは、レンジ設定を今の相場に合わせて広げ、フォワード成績がマイナスであることを確認したうえでの選択肢の1つです。

11年で35倍!過去最安値~最高値までのレンジで利益を積み上げ?|?fx-on.com ※本記事は情報提供を目的としたもので、特定のEA・金融商品の売買を推奨するものではありません。FX(外国為替証拠金取引)は元本が保証されておらず、レバレッジにより預けた証拠金を上回る損失が発生する可能性があります。記事内の成績・数値は過去の実績であり、将来の利益を保証するものではありません。投資の最終判断はご自身の責任でお願いします。

QUEST CLEAR!

最後まで読んでくれて、ありがとうございます。
つぎのクエストは、この下から選べます。

トム

この記事を書いた人トム

・現役エンジニア(本業はJavaバックエンド)
・以前はMT4のEAを自作してFX自動売買をしていました(現在は引退)
・今はポイ活を「時給」で検証・攻略しています