http://qiita.com/ryo_grid/items/a3163ac50806f8494a53
の続きといえば続き。
友人がシストレしていた戦略を真似してコード化してみた。
戦略は以下。
- 決められた価格範囲の決められたpips間隔でポジションが無ければ買っていく(プログラムの都合上かならずしもその間隔ぴったりにはならないが)
- 持っているポジションで一定以上の利益の出ているものがあれば利確
- 要は決められた価格範囲内で、相場が下落したら無限ナンピンするような感じ
- シミュレーションはUSDJPYでやった。もちろん他の通貨でも利用可能。
- レンジ相場や相場が上昇している局面(円高進行)だと勝てるが、円安が進み、さらに定めた価格範囲を超えて進行すると死ぬ
- http://jp.dynamictrade.eu/forex-grid-trading
八年間ぐらい動かすと、160%ぐらいまで増える (ただし別途含み損もあり)。元手は50万。
一番右がその時点で保持しているポジションの評価損益と証拠金を反映する前の資産、右から2番目が1番目に先述の評価損益を反映させて、併せて、使用している証拠金を減算したもの(FX口座で言えばいつでも引き出せるお金に相当)。右から3番目が使用している証拠金。設定レンジは80円-120円で1円間隔。レバレッジは25倍。購入通貨単位は1000通貨固定(なので複利は効いていない)。やってることの性質上、レンジ内に収まっていて、かつ減少し続けていない相場であれば、安定して勝てるみたい。手仕舞いしにくいのは課題だけれど。
(省略)
2008-12-19 13:10:00 89.47 105470.8 294059.2 799925.0
2008-12-19 20:10:00 89.34 105470.8 291124.2 800240.0
2008-12-23 09:50:00 90.32 101870.8 319224.2 800545.0
2008-12-23 22:35:00 90.35 101870.8 320269.2 800870.0
2008-12-30 04:10:00 90.39 101870.8 321534.2 801175.0
■追記(2016.07.31)
ここ最近の一か月間で試すとUSDJPYがずっと下落していて死ぬが、同時に売りポジ保有のEURJPYを回すようにしたら良い感じのパフォーマンスが得られるようになった。
https://github.com/ryogrid/fx_systrade/blob/bf63ae88f12e84eae9a8d2b71d8aff3021248181/trap_repeat_trade_double.py
■追記(2016.08.28)
OANDAのリアル口座で動くようにした。
なお、5通貨でロング、ショートを割り振って同時並行に動作するようになっている。
https://github.com/ryogrid/fx_systrade/blob/master/trap_repeat_trade_oanda.py