はじめに
以前のページで、FXのトラリピにて最善な通貨ペアを再考してみました。
その結果を受けて、今回はバックテストと本番のシステムを構築しようと思います。
前提(仕様)
今までの検証を得て、投資の手法である仕様を整理しました。
- 候補の通貨ペアと売買、トラップのレンジ
- EUR_JPY:売り[120, 130]
- CHF_JPY:売り[110, 120]
- GBP_JPY:買い[130, 140]
- CAD_JPY:買い[75, 85]
- 取引ロット、ポジション数
- EUR_JPY:100枚、501個
- CHF_JPY:100枚、501個
- GBP_JPY:100枚、501個
- CAD_JPY:200枚、501個
- トラップ幅
- 全通貨:0.02円(または0.01円。この場合は取引ロットを半分にする)
- 利確幅
- 全通貨:0.1円
- 資産
- 全通貨:3,000,000円(計12,000,000円)
上記の資産があれば、2004-06-30以降であれば、ロスカットされることはありません。
残課題として、カナダドルを米ドルやオーストラリアドルに変更するという案もあります。
トレードの基本情報
金融商品種別 | FX |
金融商品 | USD/JPY |
金融機関 | OANDA JAPAN |
資金 | 前提の仕様の通り |
売買 | 通貨により買い・売りのどちらか一方 |
売買数量 | 前提の仕様の通りに固定(複利効果を利用) |
チャート | 1分足を使用する。 |
投資判断 | 前提の仕様のトラリピ方式の通り*ロスカットなし |
その他 | スワップポイントを考慮していませんので注意してください。 |
システム要件
開発環境
- OS:macOS Carolina 10.15.5
- 言語:Python 3.7.2
- 開発ツール
- バックテスト用システム:Jupyter Notebook 1.0.0
本番環境
- OS:Windows Server 2012 R2(AWS
- 言語:Python 3.7.4
- 開発ツール:Visual Studio Code 1.45.1
データ
過去データはOANDA japanからダウンロードしたものを利用しているのですが、それは再配布禁止とOANDA japanの規約になっていたと思いますので、手間ですが、ご自身でダウンロードしてください。
どこの会社のデータでもいいと思いますが、カラム名だけ合わせて頂ければ稼働します。
なお、今回は各通貨を以下の期間の1分足のデータを用意しました。
2015-01-01 22:00:00+00:00 〜 2020-06-30 23:55:00+00:00
これ以前のデータの1分足は、システムトレード自体が少なく、かつ一般人のFXへの投資があまりない時代でしたので、値動きが少ないため、参考にならないと判断したためです。
バックテスト
システム
以下はGithubにアップしていますので、ダウンロードして利用してください。
(左下のファイル名をクリックするとGithubのサイトに遷移します。「Download ZIP」をクリックするとダウンロードできます。)
課題の検証
終値ベースでの検証になっています。高値と安値がありますので、実際には利益額はもう少し結果は良くなる考えています。
利益額
CAD_JPYの場合
EUR_JPY 1,870,994 GBP_JPY 1,474,868 CHF_JPY 1,864,219 CAD_JPY 2,319,768 SUM 4,000,000 7,529,849 188.2%
USD_JPYの場合
USD_JPY 1,748,208 EUR_JPY 1,870,994 GBP_JPY 1,474,868 CHF_JPY 1,864,219 SUM 4,000,000 6,958,289 174.0%
AUD_JPYの場合
EUR_JPY 1,870,994 GBP_JPY 1,474,868 CHF_JPY 1,864,219 AUD_JPY 2,628,589 SUM 4,000,000 7,838,670 196.0%
全期間での利益額だけを見るとAUD_JPYが良いようですね。
全期間で検証
symbol actNum days wonPips portfolio per tickets cntWin cntLoss pre MaxLoss termMean 0 USD_JPY 60575 1601 5615.06 1,748,208 174.8% 341 60234 0 100% 7155.08 2 days 18:08:22.583707 1 EUR_JPY 58111 1601 6299.08 1,870,994 187.1% 61 58050 0 100% 7108.96 2 days 18:08:22.583707 2 GBP_JPY 54625 1601 3905.88 1,474,868 147.5% 329 54296 0 100% 4232.98 2 days 18:08:22.583707 3 CHF_JPY 63830 1601 6259.24 1,864,219 186.4% 185 63645 0 100% 5975.34 2 days 18:08:22.583707 4 AUD_JPY 56557 1601 4849.36 2,628,589 262.9% 454 56103 0 100% 19738.56 2 days 18:08:22.583707 5 CAD_JPY 54198 1601 4223.02 2,319,768 232.0% 260 53938 0 100% 15493.40 2 days 18:08:22.583707
5年半の期間では、portfolioではAUD_JPYが一番利益を出しています。
AUD_JPYとCAD_JPYは100枚ではなく200枚でトレードをしている兼ね合いもあります。
wonPips(円になっていますので実際のPIPSは100倍する必要があります)を見てみると、EUR_JPYとCHF_JPYがほぼ同額で、他の通貨より格段に多いことがわかります。
GBP_JPYが少ないのが意外です。
課題であった、CAD_JPY以外に、USD_JPYかAUD_JPYにする件ですが、これを見る限りUSD_JPYが良いように思えます。
逆に、GBP_JPYを外すという選択肢もありそうですね。
年度別に確認
各通貨を年度別にwonPipsの合計を集計してみました。
symbol year AUD_JPY 2015 268.72 2016 2402.48 2017 406.82 2018 1213.72 2019 467.48 2020 90.14 CAD_JPY 2016 1853.32 2017 363.16 2018 605.12 2019 523.56 2020 877.86 CHF_JPY 2015 157.20 2016 1626.74 2017 1680.12 2018 1426.52 2019 250.20 2020 1118.46 EUR_JPY 2015 457.16 2016 1775.50 2017 1300.16 2018 1352.28 2019 870.52 2020 543.46 GBP_JPY 2016 1537.96 2017 529.92 2018 12.92 2019 486.80 2020 1338.28 USD_JPY 2016 1407.20 2017 1624.06 2018 1177.50 2019 566.98 2020 839.32
通貨により年度によって大きなムラがあります。
ムラの大きな原因はレンジから外れてしまっており、トレードができていない状態になっているからだと思われます。
課題であった、CAD_JPY以外に、USD_JPYかAUD_JPYにする件ですが、2019年以降の近年を見るとAUD_JPYはレンジから離れてしまっており少し難しいように思います。近年のCAD_JPYとUSD_JPYではほとんど同額です。
過去を含めるとUSD_JPYの方が安全なようです。
GBP_JPYを外す件ですが、2019年以降の近年を見るとGBP_JPYが一番利益が出ているようです。レンジにハマれば利益を一番生み出してくれそうです。
課題の結論
今回の結果と、以前の通貨の選別時の結果を受けると、以下の理由によりCAD_JPYが良いようです。
- 2004-06-30以降においての含み損が3つの通貨の中で一番少ない。
- 必要証拠金は高い方ですが、それでもUSD_JPYに比べて約70万高いだけです。
- 利益額に関しては、全ての通貨の中で二番目に多い。(ロットが倍になっているため)
- 現在、レンジにハマっている。(AUD_JPYはギリギリなところにある)
リスクを取ったトレードの場合
2017年以降のデータだけで考える場合、資金に余裕ができますので、もっとレバレッジを利かすことができます。
レバレッジを高める方法は以下の2つになります。
- トラップ幅を1/2にする。
- ロットを2倍にする。
損益
トラップ幅を0.02から0.01に変更した検証結果
EUR_JPY 2,607,757 GBP_JPY 1,824,162 CHF_JPY 2,586,856 CAD_JPY 4,103,851 SUM 4,000,000 11,122,626 278.1%
5年半で約2.8倍ですので、まずまずと言った結果かと思います。
しかし、0.02のときは188.2%でしたので、0.01にしても倍にはなっていません。
ロットを100枚から2倍の200枚にした方が利益が高くなる可能性があります。
トラップ幅は元のままの0.02で、ロットを2倍にしてみました。
ロットを100枚から2倍の200枚に変更した検証結果
EUR_JPY 3,503,628 GBP_JPY 2,177,425 CHF_JPY 3,480,463 CAD_JPY 5,373,690 SUM 4,000,000 14,535,206 363.4%
以下にまとめて比べてみました。
- トラップ幅を0.02:4,000,000 7,529,849 188.2%*元の結果
- トラップ幅を0.01:4,000,000 11,122,626 278.1%*元に対し約1.47倍
- ロットを2倍 :40,000,000 145,539,114 363.4%*元に対し約1.93倍
やはりロットを2倍にした方が利益が大きいです。
理論的には複利効果なら小刻みのトレードの方が利益が大きくなると思ったのですが。
トラップ幅を0.02から0.01に変更した場合
各通貨の利益
symbol actNum days wonPips portfolio per tickets cntWin cntLoss pre MaxLoss termMean 0 USD_JPY 105375 1601 9552.72 2,585,223 258.5% 636 104739 0 100% 17674.57 2 days 23:44:41.683455 1 EUR_JPY 99780 1601 9642.51 2,607,757 260.8% 116 99664 0 100% 13875.77 2 days 23:44:41.683455 2 GBP_JPY 85794 1601 6044.72 1,824,162 182.4% 562 85232 0 100% 8628.89 2 days 23:44:41.683455 3 CHF_JPY 109170 1601 9553.98 2,586,856 258.7% 341 108829 0 100% 12653.28 2 days 23:44:41.683455 4 AUD_JPY 96645 1601 8132.38 5,048,581 504.9% 868 95777 0 100% 66153.24 2 days 23:44:41.683455 5 CAD_JPY 91713 1601 7094.28 4,103,851 410.4% 484 91229 0 100% 47402.82 2 days 23:44:41.683455
年度別のPIPS
*以下は円になっていますので、PIPSにする場合は100倍にする必要があります。
symbol year AUD_JPY 2015 427.73 2016 3937.17 2017 702.50 2018 2091.87 2019 819.15 2020 153.96 CAD_JPY 2016 3054.85 2017 634.45 2018 1041.20 2019 911.73 2020 1452.05 CHF_JPY 2015 236.45 2016 2458.91 2017 2605.08 2018 2214.38 2019 396.21 2020 1642.95 EUR_JPY 2015 676.89 2016 2689.00 2017 2008.82 2018 2072.42 2019 1368.94 2020 826.44 GBP_JPY 2016 2317.46 2017 845.63 2018 20.73 2019 809.50 2020 2051.40 USD_JPY 2016 2339.04 2017 2781.49 2018 2055.58 2019 990.15 2020 1386.46
ロットを100枚から2倍の200枚に変更した場合
トラップ幅は0.02の元の状態です。
各通貨の利益
symbol actNum days wonPips portfolio per tickets cntWin cntLoss pre MaxLoss termMean 0 USD_JPY 60575 1601 5615.06 3,059,330 305.9% 341 60234 0 100% 22718.74 2 days 18:08:22.583707 1 EUR_JPY 58111 1601 6299.08 3,503,628 350.4% 61 58050 0 100% 20469.36 2 days 18:08:22.583707 2 GBP_JPY 54625 1601 3905.88 2,177,425 217.7% 329 54296 0 100% 11383.48 2 days 18:08:22.583707 3 CHF_JPY 63830 1601 6259.24 3,480,463 348.0% 185 63645 0 100% 18605.82 2 days 18:08:22.583707 4 AUD_JPY 56557 1601 4849.36 6,899,461 689.9% 454 56103 0 100% 95004.62 2 days 18:08:22.583707 5 CAD_JPY 54198 1601 4223.02 5,373,690 537.4% 260 53938 0 100% 64249.94 2 days 18:08:22.583707
年度別のPIPS
*以下は円になっていますので、PIPSにする場合は100倍にする必要があります。
ロットが変わっているだけですので元と変わりありません。
symbol year AUD_JPY 2015 268.72 2016 2402.48 2017 406.82 2018 1213.72 2019 467.48 2020 90.14 CAD_JPY 2016 1853.32 2017 363.16 2018 605.12 2019 523.56 2020 877.86 CHF_JPY 2015 157.20 2016 1626.74 2017 1680.12 2018 1426.52 2019 250.20 2020 1118.46 EUR_JPY 2015 457.16 2016 1775.50 2017 1300.16 2018 1352.28 2019 870.52 2020 543.46 GBP_JPY 2016 1537.96 2017 529.92 2018 12.92 2019 486.80 2020 1338.28 USD_JPY 2016 1407.20 2017 1624.06 2018 1177.50 2019 566.98 2020 839.32
新たな課題
以前、以下のページで検証した、同じ複利効果を使った米ドルについて利益率が大きく減っていることに気が付きました。
OANDA JAPANでシストレ|4年で資産8倍|FXのUSD_JPYを複利効果でトラリピ風デイトレード
今回の米ドルのトレードは買いのみになっています。他の通貨も買いか売りのどちらか一方になっています。
やはり売買の両方のポジションを持つほうが遥かに利益をあげられるようです。
上記について、以下のページで検証しました。
新たな課題の結論
このページのどちらか一方のポジションの方が良いようです。理由は含み損が10倍以上と大きくなるからです。
仕様のまとめ
紆余曲折してしまい、結論がボケそうなので以下にまとめました。
仕様(リスクをとった場合)
- 候補の通貨ペアと売買、トラップのレンジ
- EUR_JPY:売り[120, 130]
- CHF_JPY:売り[110, 120]
- GBP_JPY:買い[130, 140]
- CAD_JPY:買い[75, 85]
- 取引ロット、ポジション数
- EUR_JPY:200枚、501個
- CHF_JPY:200枚、501個
- GBP_JPY:200枚、501個
- CAD_JPY:400枚、501個
- トラップ幅
- 全通貨:0.02円
- 利確幅
- 全通貨:0.1円
- 資産
- 全通貨:1,000,000円(計4,000,000円)
結果
EUR_JPY 3,503,628 GBP_JPY 2,177,425 CHF_JPY 3,480,463 CAD_JPY 5,373,690 SUM 4,000,000 14,535,206 363.4%
5年半で約3.5倍になりました!
年度別は以下になります。
2015 7.44% 4,297,476 {'EUR_JPY': 1165901.2199999997, 'CHF_JPY': 1131574.780000001} 2016 55.36% 6,676,569 {'EUR_JPY': 1649407.9599999902, 'GBP_JPY': 1358294.2799999956, 'CHF_JPY': 1578012.960000009, 'CAD_JPY': 2090853.7399999264} 2017 39.38% 9,305,974 {'EUR_JPY': 3143370.3600000464, 'GBP_JPY': 1509750.9199999964, 'CHF_JPY': 2236469.400000018, 'CAD_JPY': 2416383.379999909} 2018 8.72% 10,117,578 {'EUR_JPY': 2636040.140000031, 'GBP_JPY': 1552693.4799999716, 'CHF_JPY': 2651037.499999985, 'CAD_JPY': 3277807.2799998713} 2019 13.83% 11,516,763 {'EUR_JPY': 3143061.6600000462, 'GBP_JPY': 1667833.8399999696, 'CHF_JPY': 2784190.1399999824, 'CAD_JPY': 3921677.1199998893} 2020 26.21% 14,535,206 {'EUR_JPY': 3503628.260000054, 'GBP_JPY': 2177425.2799999323, 'CHF_JPY': 3480462.719999965, 'CAD_JPY': 5373689.759999768}
- 年によって年利にバラつきがあります。
- 最低:8.72%(2018年)
- 最高:55.36%(2016年)
- 平均:30.19%
- 2015年は、ポンドとカナダドルはレンジ外だったようでトレードがなかったようです。
- 2020年は、半年ですが、既に約26%とボラティリティが高いようですね。
年利の平均が30.19%でしたが、2015年を除くと35.88%の約35%となります。
年利35%もある投資の中では、リスクが少なく、なかなか手堅いハイリターンな投資かと思います。
年利35%でハイリターンとは言えないかも知れませんが。
本番システム
課題も解消しましたので近日中に本番システムを構築して公開します。
コメント