どうも。
利回りを追求するバックテスターヒロセです。
FX運用で設定(ストラテジー)に乗っ取って売買を行う場合、
設定の有効性を確かめなければいけません。
なぜならば、
設定によっては損をする可能性
だってあるからです。
こんな感じ。
こんなの知らずに運用してたら最悪ですよね。(ヽ''ω`)ゲッソリ
だからこそ、MT4を使用してバックテストを行い、
設定の優位性を知っておく必要があるワケです。
そうなると、問題になってくるのが保有ポジションに付与されるスワップポイントです。
なぜならば、MT4の仕様上、
スワップポイントは運用するFX会社により決定され、
バックテスト結果には任意の値を反映できないからです。
ポイント
スワップを補正する方法はあるのかな?
簡単な方法があれば知りたい
このような悩みにお答えします。
この記事では、MT4でバックテストを行った場合のスワップの扱いと補正方法について解説します。
MT4を使用したバックテストでは、スプレッドは任意で決定できますが、
スワップはできません。
ということは、
バックテストで設定を決めて、リアル運用するといった場合、
思ったような結果にならないといった事態も考えられます。
特に、トラリピ、手動トラリピなどで、スワップの影響を調べることは不可欠です。
スワップの補正が自由にできるのなら、
FX会社による手動トラリピ運用益の違い
なども簡単に把握できますよ!d(´ω`*)
ぜひ、より有利な運用の参考にしていただければと思います。
目次
MT4でのバックテストのスワップ
繰り返しになりますが、
MT4でバックテストをする場合、スワップの扱いはFX会社により異なります。
例えば、国内業者の場合で比較すると、
・FXTFではテスト結果にスワップが反映される
・OANDA Japan ではテスト結果にスワップが反映されない
といった違いがあります。
両社で、ランド円の売りトラリピを全く同じ設定で行うとこうなります。
FXTF
OANDA Japan
全く違う結果になりました。
これを知らずに、
OANDAでのバックテスト結果を信じてリアル運用を行うと、
とんでもないこと
になりますよね・・(;´・ω・)
バックテストでのスワップ補正の大切さが理解できたと思います。
スワップ反映を知る方法
バックテストにスワップが反映されて
いるのか
いないのか
は、公式ページにはあまりハッキリと書かれてはいません。
よく探せばQ&Aにあるくらいです。
しかし、バックテストの売買履歴を見れば、簡単に判別可能です。
例として、2つのエントリーから決済までを見てみます。
ランド円売りトラリピ売買履歴
注文番号『1』と『4』で対応した『新規売り』と『決済』です。
それぞれの『数量』『価格』『損益』に注文してください。
注文番号1
・数量:0.10(1万通貨)
・新規売り価格:9.997
・決済価格:9.896
・差額:0.101
・損益:1010円
注文番号4
・数量:0.10(1万通貨)
・新規売り価格:9.896
・決済価格:9.782
・差額:0.114
・損益:1140円
新規売りから決済の差額に数量をかけた額が、
損益に一致しています。
つまりこの場合、
スワップがテスト結果に反映されていない
ということになります。
バックテスト結果へのスワップ補正方法
ここで解説するバックテスト結果へのスワップ補正方法は2通り。
・表計算ソフトで全ての売買にスワップを適用する
・2つの会社の提示スワップ割合からスワップ額を変更する
表計算ソフトで行う場合は、
計算式のテンプレートを作っておいて、毎回のトレード結果を挿入します。
テスト結果にスワップが反映されている場合、
テスト時のスワップと変更したいスワップの割合から、新たなスワップ額を計算します。
表計算ソフトでスワップ補正
表計算ソフトでスワップ額を算出するためには、
・保有日数
・売買種別
を売買履歴から読み取り、売りと買いそれぞれで合計する必要があります。
大変ありがたいことに、
ツールとして公開してくれている人がいますので、使わせていただきましょう!d(´ω`*)
詳しい使い方はリンク先を読んでいただくとして、
補足説明と注意事項を追加しておきますね。(*´ω`*)
ツールの使用手順
・バックテスト結果をHTMLファイルで保存
・保存したHTMLファイルを表計算ソフトで開く
・ツールをダウンロードし、表計算ソフトの別ウィンドウで開く
・バックテスト結果データをコピーし、ツールへ貼り付ける
・任意のスワップ値を入力してスワップ合計を計算する
以下、項目ごとに詳しく解説していきます。
step
1バックテスト結果をHTMLファイルで保存
MT4でバックテストが終わったら、
ストラテジーテスターから、
レポートタブ>右クリック>レポートの保存
で任意のフォルダを指定し保存します。
このように、データがHTMLファイルで、グラフがGIFファイルで保存されます。
step
2保存したHTMLファイルを表計算ソフトで開く
パソコンにインストールしている表計算ソフトでHTMLファイルを開くには、
ファイルを右クリック>プログラムから開く>任意の表計算ソフト
でOKです。
クラウド上のソフトで開くためには、アップロードが必要です。
詳しくは上記リンク先を参照してください。
step
3ツールをダウンロードし、表計算ソフトの別ウィンドウで開く
こちらからツールをクリックすると、閲覧限定でツールが開きます。
使用するためには、ダウンロードして自分の表計算ソフトで開く必要があります。
メニューのファイルをクリック。
左メニューから、
名前を付けて保存>コピーのダウンロード
を選択し、任意のフォルダを指定してダウンロードしてください。
エクセルのワークシートとして保存されます。
ちなみにODSファイルとは、無料でインストールできるオープンオフィス用のファイル形式です。
このツールの動作確認はできていませんので、お勧めはできません。
ダウンロードしたツールはエクセルで開いておきます。
パソコンにエクセルがインストールされてなくても、
マイクロソフトのアカウントがあれば、クラウドOfficeでエクセルが使用できます。
クラウドで使用するには、ツールをアップロードする必要があります。
アップロードはツールの使用方法を参照してください。
ポイント
ここまでの作業で、
・バックテスト結果
・スワップシミュレーションツール
が表計算ソフトの別ウィンドウで開いているハズです。
step
4バックテスト結果データをコピーし、ツールへ貼り付ける
バックテスト結果を開いた表計算シートを下にスクロールすると、
売買履歴が現れます。
テスト期間中の売買履歴の
『時間』『取引種別』『注文番号』
の3列をマルっとコピーします。
長期バックテストの場合、非常に長くなるのでシフトキーを併用します。
ちなみにツールでは3000行まで対応しています。
まず、選択したい左上のセルをクリック。
次に、スライダーを操作して、選択範囲の右下のセルを、
シフトキーを押しながらクリック。
これで、全ての売買履歴の『時間』『取引種別』『注文番号』が選択できました。
右クリック>コピーまたはCtrl+C
でコピーしてください。
コピーできたら、ツールの表計算シートを表示します。
コピーしたデータを、赤枠で示したセルに貼り付けます。
これで準備は全て完了です。
注意点
HTMLファイルをオープンオフィスで開いたところ、文字化けと列が重複する現象が起きました。
本来なら『B』『C』『D』3列のデータが各2列にまたがっています。
このままでは使用できないので、『C』『E』『G』列を削除してからコピーしてください。
次にクラウド上のエクセルに、データを貼り付ける場合です。
右クリックで貼り付け操作を行ったところ、このようなアナウンスが出て張り付けができませんでした。
このような場合、Ctrl+Vで貼り付けてください。
step
5任意のスワップ値を入力してスワップ合計を計算する
準備ができたので、スワップ値を入力します。
黄色で塗りつぶされたセルに、
1ポジションにつき、1日に付与されるスワップ
を入力します。
例えば、運用通貨ペアの1万通貨単位でのスワップが50なら、
1ポジション1000通貨なら5、2000通貨なら10といった具合です。
貼り付けたデータから、
『buy』『sell』『保有日数』を自動判別
して、オレンジセルに期間中スワップ合計が反映されます。
便利ですね~d(´ω`*)
提示スワップ割合から補正
ツールを使用すれば、入力したスワップが正確に結果に反映されます。
しかし、
『スワップは変動するものだしもっと簡単な方法ないの?』
って人もいるでしょう。
そんな場合は、
テスト時のスワップと任意のスワップの割合
から補正する方法があります。
※バックテストにスワップが反映される場合限定
補正手順
・バックテスト結果から、為替差益とスワップ益を分離する
・テスト時のスワップ益を任意のスワップ値で運用した場合に変換する
・変換したスワップ益を為替差益と合計する
手順を詳しく解説します。
step
1バックテスト結果から、為替差益とスワップ益を分離する
こちらはペソ円の買いトラリピのバックテスト結果です。
ちょうど勝率100%で、テスト終了時の落ち込みがないのでわかりやすいです。
設定は、
・トラップ1本あたり:10万通貨
・利確幅:0.1円
つまり、1回あたりの為替差益は1万円です。
テスト結果を見ると、期待利得が1万2913円となっていますね。
毎回0.1円ごとに、正確に利確していると仮定すると、
差額の2913円がスワップ益ということになります。
この考え方をテスト期間に当てはめると、合計では、
・為替差益:360,000円
・スワップ益:104,899円
になります。
step
2任意のスワップ値で運用した場合に変換する
こちらのバックテスト時のスワップ値を確認します。
ストラテジーテスターの通貨ペアのプロパティから、
テスト時のスワップが確認できます。
1ロット(10万通貨)あたり19.3ペソです。
ペソ円のレートを5円とすると、1万通貨あたり9.65円となります。
ちなみに記事執筆現在は7円くらいです。
ということで、
スワップ9.65円の時に104,899円だったものが、
スワップ7円の時にいくらになったのかを計算します。
計算式
スワップ合計÷テストスワップ値×任意のスワップ値=104899/9.65×7≒76,092円
というワケで、
変換後のスワップ合計は76,092円
になりました。
step
3変換したスワップ益を為替差益と合計する
あとは分離しておいた為替差益と合計するだけです。
・為替差益:360,000円
・変換後スワップ益:76,092円
・合計:436,092円
・スワップ9.65円から7円への補正:464,899円➡436,092円
この方法の場合、
テスト終了時のレートで補正後の数値が変わるので、
レート変動での落ち込みがひどい場合はそちらの補正も必要になります。
が、もともとスワップは変動するものなので、
参考程度に考えておく方がいいと思います。
スワップ補正方法で比較
ついでなので、2つの補正方法でどのような数値になるか計算してみます。
上記したランド円のマイナススワップを‐34円とすると、スワップ‐7円に補正するとこうなります。
・為替差益:431,000円
・変換前スワップ:‐732,043円
・変換後スワップ:‐150,714円
・合計:280,286円
・スワップ‐34円から‐7円への補正:‐301,043円➡280,286円
同設定でツールを使用したスワップ合計がこちら。
ほぼ、同程度のスワップとなっています。
スワップ割合いで補正する方法でも、
テスト終了時に、大きな為替差益のドローダウンがなければ、
簡単な目安にはなると思います。
まとめ
お疲れさまでした。
この記事では、MT4でバックテストを行った場合のスワップの扱いと補正方法について解説しました。
ブログ記事の引用と、シミュレーションツールを提供していただいているりゆうさんに感謝いたします。
ありがとうございました。
りゆうさんのツールを使用すると、
バックテストにスワップが反映されないOANDAでのバックテストでも、
スワップ額がわかりますよ!d(´ω`*)
一旦使い方を覚えてしまうと、後はデータをコピーして貼り付けるだけです。
この際、チャレンジしてみてはどうでしょうか?
グラフなどの視覚でスワップの影響を見せたいのなら、
今のところ、スワップが反映される会社でバックテストを行うしかありません。
バックテストにスワップを反映させるようなMT4のインジケーターとかないんでしょうか?
誰か作ってくれないかな・・(;^ω^)
それではまた。
スワップもプラスならいいんですが、マイナスにはくれぐれも気を付けてくださいね!
ヒロセ