1. 概要
ボリンジャーバンドのバンドウォークを確認後、一旦拡張したボリンジャーバンドが収縮する時の利益を取りに行くタイプのEA(Expert
Adviser)です。
2. 特徴
日足、4時間足などの比較的長期の足にEAを設置するので、割とゆったりとしたトレードスタイルになります。しかし、結構な値幅でPIPS数が獲れることに加えて、含み益を多く抱えたままポジションをキープするので、心理的にとても楽で嬉しいトレードができます。
これは、スキャルピングや5分足トレードには出来ない特徴で、長期足トレードの長所を実感できます。一度この感覚を味わったら、もう短期トレードには戻りたくないと思ってしまいます。
このEAは、GBPUSDの4時間足に設定すると、最も良い結果を出します。ボリンジャーバンドのバンドウォークからの戻りを獲るというロジックなので、ある程度トレンドが継続し、ボリンジャーバンドのバンド幅が大きく広がってくる傾向のある通貨ペア(GBPUSD)に適しています。
3. ロジック
ナンピン、マーチンはしません。ただし分割決済を行うので、ポジションを最初に4本建てます。ロット数が0.01設定の場合、保有ロット数の最大は0.04になります。
まず、ボリンジャーバンドのバンドウォークを待ちます。上昇トレンドの場合、過去15本のローソク足の内、終値がボリンジャーバンドの+1σ以上になっているものをカウントします。カウント数が10以上になったら、バンドウォークが成立したと判定します。
その後、ボリンジャーバンドが収縮し、終値が+1σラインを割ってきたら、売りエントリーを4本建てます。ただし、大陰線などの出現で、既にボリンジャーバンドのミドルラインを割っている場合には、売りエントリーを2本建てとします。
<決済>
レートがボリンジャーバンドのミドルラインを割ってきたら2本を決済します。損切ラインを建値に設定します。
レートがボリンジャーバンドの-1σラインに達したら1本を決済します。損切ラインをボリンジャーバンドのミドルラインに設定します。
レートがボリンジャーバンドの-2σラインに達したら全決済します。
<損切>
レートが終値でボリンジャーバンドの+1σを超えたら損切全決済します。
買いエントリーの場合は、上記の逆になります。
4. パラメータ デフォルト値
項目 設定値
KAI true
URI true
GBPUSD true
BB_P1 21
BB_SIGMA1 1.00
BB_SIGMA2 2.00
BB_CNT_TH 10
BB_CNT_BS 15
Lots 0.01
Auto_Lots true
維持率% 500
許容損失% 5
SL BackStep 9
Slippage 3
Send Mail false
MAGICNUMBER 211114000
FontSize 11
corner 0
CLBP Gold
CLBM Aqua
CLSP Gold
CLSM OrangeRed
CLNON Lime
CLOFF Gray
CLTG Lime
5. パラメータ説明
KAI falseにすると、買い動作をしません。
URI falseにすると、売り動作をしません。
GBPUSD trueにすると、パラメータをGBPUSD用に最適化します。通貨ペアがGBPUSDでなおかつ4時間足チャートでない場合にはEAを停止します。
falseにすると、通貨ペアと時間足の制限が無くなるので、どの通貨ペア、どの時間足でもこのEAが動作します。GBPUSD以外の通貨ペアに適用する場合は、false設定にしてください。
BB_P1 ボリンジャーバンドの期間設定
BB_SIGMA1 ボリンジャーバンドの±1σライン
BB_SIGMA2 ボリンジャーバンドの±2σライン
BB_CNT_TH BandWalkが成立したと判定する閾値
BB_CNT_BS BandWalkを数えるローソク足の本数
Lots 固定ロット数
Auto_Lots trueで自動ロットが有効、falseで固定ロット
維持率% ポジションを保有した場合の推定維持率下限値
許容損失% ロット数を自動計算する為の損失割合
(リスクを取っても良い場合でも、20%以下を推奨)
SL BackStep 自動ロット計算で使用するローソク足の数
Slippage スリッページ
SendMail メール送信の有無
MAGICNUMBER この番号から番号+3までを使用します。
デフォルトでは、211114000から211114003を使用
FontSize 表示フォントのサイズ
corner 情報の表示位置
CLBP Buyで含み益になった場合の色
CLBM Buyで含み損になった場合の色
CLSP Sellで含み益になった場合の色
CLSM Sellで含み損になった場合の色
CLNON ポジションを持たない場合の色
CLOFF false指定で不動作の場合の色
CLTG 3行目のTGのラインの色
6. 実行画面(その1)
下の図は、GBPCADの日足チャートです。
日足の大きな下落からの戻りを取りに行っています。
現在、Lots=0.1で買いポジション1を保有しており、含み益が\11,915になっています。このまま上昇が続き、ボリンジャーバンドの+2σまで達したら、利確します。
<画面表示説明>
Buy [1] 買いポジション数が1です。
=11915 含み損益です。損失なら水色、利益なら金色で表示されます。
Avg=1.68706 平均買い価格です。
(lots=0.10) 合計ロット数です。
St=3 ステージが3であることを示します。
n=11 バンドウォークのカウント数です。
TG= 累計損益額
MAX_DD 最大ドローダウン金額
G=(%) 現保有ポジションの損益額と純資産に対する割合
[Auto]0.01 ロット計算方法とロット数の表示
□Forced Entry NO □
強制エントリーボタン、クリックで実行
□Forced Exit□ 強制決済実行ボタン
※ステージについて(St=)
0:ポジション無し
1:ポジション保有数4(最初に4本建てます。)
2:ポジション保有数2(ミドルラインタッチで2本決済します)
3:ポジション保有数1(±1σラインタッチで1本決済します。)
7. 実行画面(その2)
EURUSDの日足チャートでEAを走らせた画面です。パラメータ設定で、GBPUSD=falseとしたので、他のパラメータはデフォルト設定(1σ=1.00,2σ=2.00、許容損失%=5…等)が使用されます。
日足チャートで、ボリンジャーバンドのバンドウォークが発生(カウント数12)し、さらにレートがボリンジャーバンドの-1σを上抜いてきたので、EAが自動(Auto_Lots指定)で0.06ロットを3本買い建てました。(上の図は開発中バージョンなので3本ですが、本EAだと4本になります。)合計ロットは0.18ロットになっています。現在ステージ1の状態です。既に含み益が14,728円になっていますが、まだボリンジャーバンドのミドルラインにまで達していないので、このままポジションを保持します。 ■Forced Exit■をマウスでクリックすれば、直ちに利確することもできます。
- 強制エントリーおよび強制決済機能
<強制エントリー機能>
買いエントリーの場合、エントリー条件は、「バンドウォークが成立していて、ローソク足の終値がボリンジャーバンドの-1σを上抜けた時」です。
MT4を起動した時に、前日ならエントリー条件が成立しているが、当日だとエントリー条件を満たさない場合があります。この場合、次のエントリーまで何日も待つことになるので、強制エントリー機能を追加しました。
買いエントリーの場合、レートがボリンジャーバンドのミドルラインと-1σの間にある場合に限り、クリックが有効になります。
売りエントリーの場合、レートがボリンジャーバンドのミドルラインと+1σの間にある場合に限り、クリックが有効になります。
ポジションを保有している間は、クリックが無効になります。
表示文字列 表示色 機能
□Forced Entry NO □ Gray クリック無効
■Forced Entry Buy■ Aqua 強制買いエントリー
■Forced Entry Sell■ Crimson 強制売りエントリー
クリックすると、確認のためのメッセージボックスが表示されます。
強制エントリーでは、バンドウォークカウント数を考慮していません。
なお、この機能はあくまでも「おまけ」的な機能であり、通常は使用しなくても構いません。むしろ使用しない方が良いかもしれません。
<強制決済機能>
エントリー時に同時にポジションを4本建てて、決済は分割決済を行うという動作が基本ですが、反対側の±2σラインまで伸びないことがあります。
ある程度利益が出たら、手動で強制決済できるようにしました。保有ポジションの全てを決済します。チャート表示通貨ペアで、このEAのマジックナンバーを持つポジションが全決済されます。
ポジションを保有していない場合は、表示色がGrayになり機能しません。
表示文字列 表示色 機能
□Forced Exit□ Gray クリック無効
■Forced Exit■ Crimson クリック有効
クリックすると、確認のためのメッセージボックスが表示されます。
- バックテスト結果
(1)期間:2013年1月1日~2021年12月9日
固定ロット(Auto_Lots=false)
テスト期間、約7年11か月のグラフです。全体的に右肩上がりのグラフになっており、ドローダウンも少ない結果となっています。
ロット 0.01(固定)
初期証拠金 \100,000
純益 \83,567
プロフィットファクタ 2.43
最大ドローダウン 9.66%
勝率 53.77%
(2)期間:2013年1月1日~2021年12月9日
自動ロット(Auto_Lots=true)
ロット AutoLots(Start0.01~最大0.21)
初期証拠金 \100,000
純益 \402,349
プロフィットファクタ 2.39
最大ドローダウン 26.95%
勝率 53.77%
以下は、直近のバックテストの結果です。
(3)期間2021年1月1日~2021年12月9日
固定ロット(0.01)
ロット 0.01(固定)
初期証拠金 \100,000
純益 \43,258
プロフィットファクタ 4.64
最大ドローダウン 5.70%
勝率 72.67%
(4)期間2021年1月1日~2021年12月9日
(Auto Lots: 許容損失2%)
許容損失 2%
ロット AutoLots(Start:0.01~最大:0.03)
初期証拠金 \100,000
純益 \47,110
プロフィットファクタ 4.44
最大ドローダウン 4.76%
勝率 72.67%
(4)期間2021年1月1日~2021年12月9日
(Auto Lots: 許容損失5%)
許容損失 5%
ロット AutoLots(Start:0.01~最大:0.15)
初期証拠金 \100,000
純益 \153,279
プロフィットファクタ 4.36
最大ドローダウン 14.48%
勝率 72.67%
(5)期間2021年1月1日~2021年12月9日
(Auto Lots: 許容損失8% 、GBPUSD=trueでこの値にセットされます)
許容損失 8%
ロット AutoLots(Start:0.02~最大:0.42)
初期証拠金 \100,000
純益 \412,800
プロフィットファクタ 4.71
最大ドローダウン 22.32%
勝率 72.67%
(6)期間2021年1月1日~2021年12月9日
(Auto Lots: 許容損失10%)
許容損失 10%
ロット AutoLots(Start:0.02~最大:0.70)
初期証拠金 \100,000
純益 \642,857
プロフィットファクタ 4.55
最大ドローダウン 27.29%
勝率 72.67%
(7)期間2021年1月1日~2021年12月9日
(Auto Lots: 許容損失15%)
許容損失 15%
ロット Auto Lots(Start:0.04~最大:2.21)
初期証拠金 \100,000
純益 \1,794,794
プロフィットファクタ 4.56
最大ドローダウン 38.50%
勝率 72.67%
(8)期間2021年1月1日~2021年12月9日
(Auto Lots: 許容損失20%)
許容損失 20%
ロット AutoLots(Start:0.05~最大:3.49)
初期証拠金 \100,000
純益 \4,150,120
プロフィットファクタ 4.61
最大ドローダウン 46.53%
勝率 72.67%
許容損失%を増やしていくと、得られる利益は指数関数的に増えていきますが、その分ドローダウンの割合も急速に増えていきます。どの辺りでバランスを取るかは課題なのですが、本EAでは、パラメータ設定でGBPUSDをtrueにすると、内部で自動設定される仕様にしました。
<参考>
GBPUD=trueで自動設定されるパラメータ
BB_SIGMA1 = 1.00
BB_SIGMA2 = 2.41
loss_pct = 8.0
BB_CNT_TH = 10
BB_CNT_BS = 15
SL_B_CNT=3
10. 資金管理(ロット計算)
Auto_Lotsにしておけば、自動でロット数を計算します。
計算方法は、買いであれば直近安値-1pipsと現在値の差を求めます。
直近安値は、SL BackStepの本数分ローソク足を過去に遡り、その間の最安値を直近安値とします。この値と、純資産に対する許容損失%からロット数を計算します。
ロット数=純資産×許容損失%÷(現在値–直近安値+1pips)
ただ、この計算式ですと、直近安値が現在値に近い場合には、計算上のロット数が極端に大きな数値になります。ロット数が増えると、必要証拠金の金額も大きくなる為、証拠金維持率が低下します。そこで、証拠金維持率が500%を超えないようにロット数を制限しています。
ロット数を増やせば、それに比例して利益も増えるのですが、リスクも同時に増えてきます。維持率500%以上、許容損失5%以下なら、かなりリスクを抑えたトレードをすることができます。
この 「BandWalk Getter」EAは、勝率がかなり高いので、許容損失%の値をもっと上げて運用することもできますが、あまり上げすぎないようにしてください。許容損失%の設定値を増やすと、極端にリスクが高まります。
11. バルサラの破産確率
破産確率は低ければ低いほど良いのですが、通常1%未満であることが望ましいとされています。
BandWalk Getter EAは、勝率72.67%、平均損益比が1.77であり、飛び抜けて優れたバックテスト結果を出しているEAです。
勝率70%、平均損益比1.7、リスク割合20%の場合のバルサラの破産確率表を参照してみます。
勝率70%と平均損益率1.7の交差する場所を白抜きにしてみました。破産確率0.0%となっており、かなり高いリスク割合の設定であっても、破産する可能性はきわめて低いことが示されます。
通常、FXの資産管理では、「2%ルール」(損失を総資金の2%以下に抑える)ことが、安全な資産管理の方法として良く知られていますが、「BandWalk Getter」のような優れたEAを2%ルールのままで運用するには、あまりにももったいないと考えました。
もちろん、安全なトレードをするのであれば、リスク割合の低い(ロット数が少ない)トレードが推奨されます。リスクとリワードのバランスをどうするかはとても悩ましいところですが、本EAでは、パラメータGBPUSDをtrueにした場合に、内部自動設定で、許容損失を8%に設定するようにしました。
12. その他の注意事項
パラメータ設定で、GBPUSDをtrueにした場合、各種パラメータは自動設定されます。許容損失%を変更する場合は、GBPUSDをfalseにしてください。なお、GBPUSDのパラメータは、最近の相場環境に合うように最適化しています。相場環境が変わって設定が合わなくなった場合は、GBPUSDをfalseにして、パラメータ設定を変えて運用するか、Auto_Lots=falseとし、固定ロット設定にした上で、ロット数を減らした上で運用してください。
パラメータ、GBPUSDがtrueになっていると、通貨ペアがGBPUSD以外、時間足が4時間足以外の場合は、EAを停止します。EAが停止すると、※ Bandwalk Getter => EA を停止しました。※ と表示されます。この場合は、MT4のナビゲータから、もう一度EAをチャートにドラッグアンドドロップして再度EAを起動してください。
どんなEAでもドローダウンは起きます。許容損失%の数値は、自動ロット計算の為に使用しているのであって、これ以下の損失になることを保障しているわけではありません。損失に関しては、バックテストでの最大ドローダウンの値や、実行画面のMAX_DD(最大ドローダウン)の数字が参考になると思います。TG(累計利益)に対して、MAX_DDの値があまりにも大きい場合は、パラメータが適合していない可能性があります。
13. GBPUSD以外の通貨ペアへの応用
パラメータGBPUSDをfalseにすると、他の通貨ペアでもEAを実行できます。
(ただし、4時間足以上の時間足で実行することをお勧めします。)
28通貨ペアでバックテストした結果では、
GBPCAD 4時間足
NZDUSD 4時間足
EURUSD 日足
EURCAD 4時間足
等が、比較的良い結果を出しています。
14. 終わりに
直近のバックテストの結果では、証拠金\100,000が約11か月で\512,800にもなりました。プロフィットファクタが4.71、勝率が70%を超えているEAなので、敢えてGBPUSD用のパラメータ設定を、「かなり高めの尖った」設定にして、「しっかりと利益を獲得する」EAに仕上げてみました。
本EAは、使い方によって、まさに「モンスター級のEA」になれるEAです。FXでなかなか勝てないという方にも是非お勧めします。