TMAバンド(三角移動平均)とバブルバンドを使ったFX自動売買戦略の検証
2017年3月13日
![TMAバンド](https://auto-ts.net/wp-content/uploads/2017/03/170127takagi1L.png)
先日、こんなFX売買戦略の記事が私の目にとまりました。
ブラッドリーさん(その2)「買いバブル」と「売りバブル」についてはコチラ!
ブラッドリーさん(その3)「フラクタル・エッジ」の基本についてはコチラ!
ちゃんとした説明は上記記事を読んでいただきたいのですが、簡単に説明すると、このような売買戦略です。画像は上記サイトより引用させていただいております。
三角移動平均
TMA(三角移動平均)という、EMA(指数移動平均)やWMA(加重移動平均)より反応が早い移動平均を使う。TMA : Triangular moving average
TMAバンドとバブルバンド
また、それをATRを使いバンド化した、TMAバンドとバブルバンドという2つのバンドを使う
売買
バブルバンドとローソク足(確定足)がTMAバンドの外に行き、ローソク足が内側に戻ってきて確定したら売買
ストップロスとテイクプロフィット
ストップロスは直近高値安値の少し上(最低20pips離す)、テイクプロフィットは同幅
戦略が明確でプログラム化できそうですし、インジケータも作者サイトで無料配布されていたので、コードを書いて試してみることにしました。
MQLコード
作者サイトからインジケータをダウンロードし、コードを書いてみます。私の理解が正しければ、コードはこんな感じになるはずです。
同時に何ポジション保有するかは書かれていませんでしたが、条件を満たしても無限にポジションを持たないように設定しておきましょう。
static datetime lastExecuted = 0; if(lastExecuted < Time[0]){ lastExecuted = Time[0]; int currentBuy = CountBuyPositions(); int currentSell = CountSellPositions(); if(currentSell < _maxPosition && Bubble(UP,2) > TMA(UP,2) && Close[2] > TMA(UP,2) && Close[1] < TMA(UP,1)){ double stoploss = MathMax(Bid+200*Point,10*Point + iHigh(Symbol(),PERIOD_CURRENT,iHighest(Symbol(),PERIOD_CURRENT,MODE_HIGH,_barPeriod,1))); double takeprofit = Bid - (stoploss-Bid); doOrderSend(OP_SELL,_lot,Bid,stoploss,takeprofit,_magic); } if(currentBuy < _maxPosition && Bubble(DOWN,2) < TMA(DOWN,2) && Close[2] < TMA(DOWN,2) && Close[1] > TMA(DOWN,1)){ double stoploss = MathMin(Ask-200*Point,-10*Point+iLow(Symbol(),PERIOD_CURRENT,iLowest(Symbol(),PERIOD_CURRENT,MODE_LOW,_barPeriod,1))); double takeprofit = Ask + (Ask-stoploss); doOrderSend(OP_BUY,_lot,Ask,stoploss,takeprofit,_magic); }
結果
バックテスト結果はこちらです。EURUSD、15分足、2007年から2016年までの10年間、スプレッドは10point、0.1ロットでのバックテストです。最大ポジション数は3です。
「おつかれ!」と言いたくなるグラフです。著者はこの戦略で年利35%を記録したらしいです。素晴らしいですね。
損切りトレードの例
青い点線が損切りトレードです。この場合は舌から突き抜けてきたので買いを入れていますが、損切りしています。
利確トレードの例
この場合は利益確定しています。青い点線の始めで買いを入れ、終わりで決済しています。
※このインジケータ、リペイントが激しいので(インジケータの線が後から書き換わる)
この図で見ると、「エントリーしている位置、違わない?」と思われるかもしれません。
戦略の改善
一方的に負けすぎていますので次の戦略を試してみました。
- テイクプロフィットをTMAバンドの中央に設定
- ストップロスは同幅
if(currentSell < _maxPosition && Bubble(UP,2) > TMA(UP,2) && Close[2] > TMA(UP,2) && Close[1] < TMA(UP,1)){ takeprofit = TMA(CENTER,0); stoploss = Bid + (Bid - takeprofit); doOrderSend(OP_SELL,_lot,Bid,stoploss,takeprofit,_magic); } if(currentBuy < _maxPosition && Bubble(DOWN,2) < TMA(DOWN,2) && Close[2] < TMA(DOWN,2) && Close[1] > TMA(DOWN,1)){ takeprofit = TMA(CENTER,0); stoploss = Ask - (takeprofit-Ask); doOrderSend(OP_BUY,_lot,Ask,stoploss,takeprofit,_magic); }
バックテスト結果
バックテスト結果はこちらです。同じくEURUSD、15分足、2007年から2016年までの10年間、スプレッドは10point、0.1ロットでのバックテストです。最大ポジション数は3です。
先ほどよりはだいぶ良くなりました。グラフ左〜中央あたりでは猛烈に勝っていますが、最終的には負けています。
一方的に負けているわけではないので、何かしらのフィルタを入れれば最終的には勝てそうです。
トレンドフィルタを導入
こんなフィルタを考えてみました。トレンドに逆らわない戦略です。
- 長期(56期間)TMAが上向きなら買いのみ
- 長期(56期間)TMAが下向きなら売りのみ
バックテスト結果
トレード回数が激減している上に結果は良くなっていないという、ダメフィルターの典型となりました。
EMAによるトレンドフィルタを導入
今度はこんなフィルタです。同じくトレンドに逆らわない戦略ですが、EMAを使っています。
- 中期(21期間)EMAが上向きなら買いのみ
- 中期(21期間)EMAが下向きなら売りのみ
バックテスト結果
今度もダメですね。
ちなみに期間を変えたり、SMAでも試してみましたがダメでした。
他に考えている戦略
あと考えられるものとしては、、
- RSIやCCIなどのオシレータ系インジケータを入れて、買われすぎのときのみ売りを仕掛ける
- ボリンジャーバンドなど他のバンドを入れて、2つともバンドを出ている場合に仕掛ける
などでしょうか。。。時間があったら試してみます。
※ちなみに建値決済とトレーリングストップは入れても改善しませんでした
アイデア募集
どなたか、この戦略を改善させる方法を思いついた方は、ぜひ本ブログの「 お問い合わせ」またはTwitterまでご意見を下さい。
見事に右肩上がりとなる戦略をくださいましたら、このEAをプレゼントさせていただきます!
Posted by auto-ts.net
関連記事
![FXTF](https://auto-ts.net/wp-content/uploads/2017/08/ScreenShot-2020-02-17-8.43.27-100x100.png)
MT4で原油・NYダウ・日経平均・金のチャート表示ができるのはFXTF MT4 ゴールデンウェイ・ジャパン
2020年追記:残念なお知らせ…。2020年5月2日以降お申込みのFXTF MT ...
![Titan](https://auto-ts.net/wp-content/uploads/2016/12/76ff5821166d6107a09ca4d6a3d08903-100x100.png)
低スプレッド・高レバレッジな海外FX業者 Titan FX Bladeの口座開設、入金から取引まで解説
今回は、海外FX業者の中でも最近かなり日本人に対して有名になりつつあるTitan ...
![お名前.com](https://auto-ts.net/wp-content/uploads/2017/01/464ca16599a1c56a269341bb79d7561e-100x100.png)
有名FX用VPS、お名前.com デスクトップクラウドの始め方
MT4でFXの自動売買を始めるときに、欠かせないのがVPSです。 今回は、FX用 ...
![ブレイクスキャルシステム](https://auto-ts.net/wp-content/uploads/2017/01/e0c059823b9d13ffcd1ee53da08b7ee8-100x100.png)
話題の安定収益EA、ブレイクスキャルシステムを購入しました
今回はブレイクスキャルシステムというEAを購入しました。 FXを経験した方なら必 ...
![投資クラウドソーシング](https://auto-ts.net/wp-content/uploads/2017/02/54f9c8004862bd8381dca4555edda72e-100x100.png)
自動売買プログラムを格安で作って欲しいなら、投資クラウドソーシングで依頼しよう
MT4やトレードステーションでの自動売買プログラムは、もちろん自分で作成すること ...