販売ページ
Standard versionでは、全ての機能が無料で永年利用可能です。

Pro versionでは、Standard versionの機能に加え、以下の機能が追加で利用可能です。
- スプレッド拡大時の取引制限
- セーフ機能(証拠金、証拠金維持率低下時に取引停止)
- 複利取引機能(余剰証拠金を元にlotを自動計算)
- pips単位でのストップロス設定

パフォーマンス
リアル口座での成績
リアル口座でのEA運用成績が、myfxbookにて確認できます。

MT5上でのバックテスト結果
概要
SimpleCoreRanger は、中値域でショートとロング、チャートの端でショートのみまたはロングのみをトレードするグリッドトレード (リピート型) EA です。
- ペア ||ペア 制限なし。 すべてのペアが利用可能です。
- 「EURUSD」や「USDJPY」などのFXペアだけでなく、「S&P500(CFD)」「XAUUSD(先物)」「BTCUSD(仮想通貨)」などにもご利用いただけます。
- 最低必要預金 || 調整できます。
- たとえば、私のライブ口座は 500,000 円 (= 3,700 米ドル) で開始されました
- タイムフレーム || 月足が推奨されます。
- 月足を使用することで、MT5 は より多くの履歴データを取得できます
ロジックとパラメーター
パラメータに関しては、 []で囲っています。
グリッドレンジの決定

このEAでは、現在のローソク足から、過去[PricePeriod]ヵ月間の最高値( Highest ),最安値( Lowest )を元にトレード戦略を立てます。
それぞれの項目の計算式は以下の通りです。
Highest = 過去[PricePeriod]ヵ月間の最高値
Lowest = 過去[PricePeriod]ヵ月間の最安値
Distance = Highest - Lowest
CenterLine = Distance / 2 + Lowest
これらの値は、トレードを行うための間隔( interval )計算に用いられます。
トレードについて
- トレードは全て成り行き注文にて行われます。 指値注文は一切行いません
- これにより、Spread拡大時のトレードを抑制することが可能になりました
- グリッドトレードなので、ストップロスは設定しません
- トレードは大きく分けてcore range内と外で大きく大別されます
- core range内では、ショートトレードとロングトレードの双方が行われます
- core rangeの上では、ショートトレードのみ行います
- core rangeの下では、ロングトレードのみ行います
core rangeの上限下限は、それぞれcoreHighest・coreLowestになります。
CoreHighest = CenterLine + Distance * [coreRange]
CoreLowest = CenterLine - Distance * [coreRange]
core range: CoreLowest ~ CoreHighest
各ポジションのTPおよびトレード間隔

同じ方向へのポジションは各 interval ごとに1つです。
intervalの計算式は以下の通りです
- core range内の場合
interval =istance * ( 2 * [coreRange] ) / [positionCore]
ただし、interval < [minTP]pipsなら、interval = [minTP]
ただし、interval > [maxTP]pipsなら、interval = [maxTP]
- core range外の場合
interval = Distance * ( 1- 2 *[coreRange] ) / [positionHalf]
ただし、interval < [minTP]pipsなら、interval = [minTP]
ただし、interval > [maxTP]pipsなら、interval = [maxTP]
つまり、現在の価格から、上下のinterval範囲内で既にポジションを持っていた場合、トレードは行われません。
また、ポジションの利食い値(TakeProfit)もintervalと同じ値です。
基本的に、最大ポジション数に関しては、[positionHalf] + [positionCore] に近い値になりますが、intervalが[minTP]pips以下、もしくは[maxTP]pips以上の場合はその限りではありません。
ストップロス
※[sl]パラメーターはpro versionでのみ利用可能
デフォルトでは、ストップロスは設けられていません。というのもストップロスを取らないのが、このEAの基本戦略だからです。
proバージョンでのみ、pips単位でストップロスが設定できます。
ストップロスの具体的な値は以下のようになります。
Stoploss(ロングトレード) = Ask - [sl]pips
Stoploss(ショートトレード) = Bid - [sl]pips
※ [sl] = 0のとき、ストップロスは設定されません(デフォルト設定)
lot数について
※[risk]パラメーターはpro versionでのみ利用可能
固定lot法 と 変動lot法 の2つを用意しています。
lot数が、ブローカーの定める最小lot以下の場合、トレードは行われません。
固定lot法
固定lot法では、以下の計算式でlotが決定します。
lot = [lot]
変動lot法
変動lot法では、以下の計算式でlotが決定します。
lot = free margin * [risk] / margin required to buy 1 lot of trading pair
- ドローダウンが大きくなったときは、lot数を下げ、余裕があるときにはlot数を上げるリスクを抑えた複利取引が可能になります。
- 複数ペアをトレードするときにバランスがとりやすいです。
- 例えば、1lotをトレードするとき、EURUSDとUSDJPYで必要証拠金が異なるため、固定lot法では、どちらかのペアに掛け金が偏ります。
- 変動lot法では、余剰証拠金をベースにlotを決めるため、この問題は起きません。
※変動lotの場合、余剰証拠金を元にlot数を計算するため、ハイレバレッジにするほど余剰証拠金が増え、想定よりハイリスクになります。レバレッジを変更する際は気を付けてください。
※変動lotを使いたい場合、[lot] は0に設定してください.
セーフ機能
※[spreadLimit][stopEquity][stopMarginLevel][stopDrawDownPer]パラメーターはpro versionでのみ利用可能
- 現在のスプレッドが [spreadLimit] 以上の場合、取引を一時停止します
- 無効にするには、[spreadLimit] = 99999999… を設定してください
- 現在の評価額が [stopEquity] 未満の場合は取引を一時停止します
- 無効にするには、 [stopEquity] = 0 を設定してください
- 証拠金維持率が [stopMarginLevel] を下回った場合、取引を一時停止します
- 無効にするには、 [stopMarginLevel] = 0 を設定してください
- ドローダウンが [stopDrawDownPer] を超えると取引を一時停止します
- 無効にするには、 [stopDrawDownPer] = 100 を設定してください
magicNumber
このEAが管理しているポジションを識別するには、[magicNumber]を、他のEAと被らないようにセットしてください。
このEAは[magicNumber]と紐づけられたポジションに対してのみ操作を行います。
ログ

EA上で起きたトラブル等に関しては、チャートの左上に表示されます。
[debugMode]をONにすると、チャートの左上だけではなく、MT5のJournal上でもログを確認できます
※debugModeをONにした場合、ログが貯まりすぎるとMT5やマシンのストレージを圧迫し、動作不良を起こす可能性があります。 利用の際はストレージ残量に注意しながら行ってください。
最適化について


利用したいペアに対して、最適化を行うことでより高パフォーマンスを発揮できます。
- 複数ペアを運用する場合、相関関係の少ないペアを選ぶことでリスク分散が期待できます。
- [lot]は最小lot(0.1か0.01)を指定してください。
- [coreRange] < 0.5 にしてください。
- pro versionでは、
- [risk] = 0 を設定してください
- セーフ機能はオフとすることをお勧めします
- 最適化評価には「Complex Criterion Max」を利用することをお勧めします。
- 最適化には、最低でも3年はテスト期間を取ることをお勧めします。
- カーブフィッティングを避けるため、テスト期間の半分をフォワードテストに充てることをお勧めします。
おススメの最適化項目は以下の通りです。
自分の好みや、マシンスペックと相談しつつ調整してください。
Variable | Start | Step | Stop |
---|---|---|---|
pricePeriod | 1 | 1 | 96 |
coreRange | 0 | 0.05 | 0.5 |
positionHalf | 1 | 1 | 50 |
positionCore | 1 | 1 | 50 |
minTP | 10 | 5 | 100 |
maxTP | 101 | 10 | 301 |
※マシンパワーが足りないと感じたら、MQL5クラウドネットワークを使うことをお勧めします
最適化結果サンプル(2015/05~2022/07)
作者のマシンで最適化を行った際の、ベスト設定は以下の通りです。
- AUDNZD
Variable | Value |
---|---|
pricePeriod | 24 |
coreRange | 0.2 |
positionHalf | 23 |
positionCore | 35 |
minTP | 50 |
maxTP | 260 |
- USDCHF
Variable | Value |
---|---|
pricePeriod | 5 |
coreRange | 0.05 |
positionHalf | 34 |
positionCore | 31 |
minTP | 55 |
maxTP | 150 |
- EURGBP
Variable | Value |
---|---|
pricePeriod | 93 |
coreRange | 0.3 |
positionHalf | 31 |
positionCore | 11 |
minTP | 34 |
maxTP | 140 |
最適化中に発生したエラーメッセージについて
もし下記のようなエラーが最適化中に発生した場合、最適化がうまくいっていないかもしれません。

その場合は、”Visualize Test”でエラーの詳細を確認することを推奨します。

失敗した可能性のあるパラメーターセットを入力し、”Visualize Test”を開始します

エラーの詳細(アラートメッセージ)が確認できます。
