見出し画像

脱初心者。BOTで利益を上げるための読み物

かぴぱら(@kapipara180)です。(2018/7/18更新 随時更新予定)

色々な本を読み、日々BOT作成をしているうちに知識が体系化されてきたため、整理して公開します。何か一つでも気づきや共感があればnoteかtwitterにコメントをくれると喜びます。

・BOTの構成要素

BOTの構成要素は以下に挙げる5つ。

①セットアップ
BOTを使うべき条件が満たされたかどうかを見極める。
十分なボラティリティがあるか、レンジか、トレンドかを確認する。
フィアットFXと違ってBTCFXは常にハイボラティリティなので、セットアップは満たしているとして売買シグナルを考えればよいと思う。あえてセットアップを設定するならば、売買しない時間帯を設定するというのは有効な気がする。フィアットFXの場合、トレンドやレンジが長期化することや、きれいなトレンドを形成することが多いことから、セットアップの重要性が高まる印象。

②売買シグナル
時間枠が長くなるほど、仕掛けは重要ではなくなる。逆に、短い足であるほど仕掛けの重要性が高くなる。
一般的な売買シグナルとしては、チャネルブレイクアウト、ボラティリティブレイクアウト、ADX、移動平均線のクロス等がある。
1分足で勝負する場合売買シグナルが極めて重要だが、15分以上の足で勝負する場合、手仕舞いの方が重要だという印象。5分足の場合はどちらかがハマれば勝てる印象。

③プロテクティブストップ
プロテクティブストップには2つの意味がある。
1つは最大損失の設定であり、もう1つは利益を図るうえでの目安となるベンチマークの設定である。最大損失を設定せずに行う売買はギャンブルである。また、最大損失に対してどれだけ1トレードで利益を上げられるかを考えてBOTの有用性を考えることは非常に重要である。プロテクティブストップの一般的な選択としては、パーセントリトレースメント、ボラティリティストップ、チャネルブレイクアウト、移動平均線ストップがある。
※各手法の詳細は後述

④ポジションサイジング
基本的に、ポジションサイジングは逆マルチンゲールになるように設計するべきである。すなわち、資産が増えたら賭け金を増やし、資産が減ったら賭け金を減らすように設計する。
ストップは1単位当たりのリスクをコントロールするためのものだが、ポジションサイジングはトータルリスクをコントロールするためのものである。
BOT作成において非常に重要な要素がこのポジションサイジングである。正の期待値を持つシステムにおいて、正の期待値を達成できるまで試行回数を増やせるかどうかはポジションサイジングにかかっている。
ポジションサイジングの一般的な選択肢としては、資産一定額当たり1単位モデル、パーセントリスクモデル、パーセントボラティリティモデルがある。勝率が50%以下になるBOT(小さな負けと大きな勝ちで稼ぐタイプ)の場合、リスクを小さく(1%程度)にすると利益が最大化する印象。勝率が上がるほどリスクを大きくとるほど利益が上がるようになる。ただしリスクが4%を超えてくるとだいたい利益率が下がってくる。
※各手法の詳細は後述

⑤手仕舞い(利益確定)
強力なBOTを作るうえでポジションサイジングとともに非常に重要なのが、手仕舞いである。なぜなら、利益がでるかどうかといくら利益がでるかを支配しているのは手仕舞いだからである。手仕舞いの目的はマーケットに返す含み益を極力減らして、最大の利益を得ることである。
手仕舞いの方法として一般的な選択肢は、時間ストップ、トレーリングストップ(ボラティリティトレーリングストップ、チャネルブレイクアウト・トレーリングストップ、移動平均線トレーリングストップ)、利益目標手仕舞い、ボラティリティブレイクアウト手仕舞いがある。
※各手法の詳細は後述


・プロテクティブストップの手法一覧

パーセントリトレースメント
仕掛け値から一定のパーセント上昇、下落した位置にストップを置く方法
ボラティリティストップ(★おすすめ★)
市場のノイズの外にストップを置く方法。ATRの数倍をストップの位置として使うのが一般的。最も合理的。
チャネルブレイクアウトストップ
あらかじめ決めた足の最大、最小値をストップとする方法
移動平均線ストップ
あらかじめ決めた足の平均線をストップとする方法


・ポジションサイジング手法一覧

資産一定額当たり1単位モデル
資産いくら当たり、1単位持つということをあらかじめ決める方法。
リスクによらず一定のポジションを持つ方法であるため、1トレードのリスクが非常に大きくなる危険性がある。
パーセントリスクモデル(★おすすめ★)
プロテクティブストップにかかった場合、資産の何%を失ってもよいかを設定し、1トレード当たりのリスクを一定にする方法。
1トレード当たりのリスクを一定にできるため、立ち直れないようなダメージを負うことがなく、長期的に複利を効かせることができる。
資産の1%~3%をリスクに設定することが一般的。
パーセントボラティリティモデル
ボラティリティに対するリスクを一定にする方法。
ボラティリティが大きい場合はポジションを小さくし、ボラティリティが小さい場合はポジションを大きくする。理にかなってはいるが、ボラティリティが小さいときの方が勝率が下がりやすいことを考えると利益が上がりにくい印象。


手仕舞い(利益確定)手法一覧

時間ストップ
仕掛けた後に価格が思惑通りの方向に動くことを期待して仕掛けるのであるから、一定時間たっても利益が出ない場合は思惑が外れているため手仕舞いをするという手法。あらかじめ期間を決めておいた期間が経過したら手仕舞いする。
ボラティリティトレーリングストップ(★おすすめ★)
ボラティリティの数倍の位置にトレーリングストップを置くという手法。
ボラティリティトレーリングストップと売買シグナルの反転を組み合わせた手仕舞い手法が今のところ様々なシグナルを用いたBOTで成功している。
チャネルブレイクアウト・トレーリングストップ
割愛
移動平均線トレーリングストップ
割愛
利益目標手仕舞い
エリオット波動や、ハーモニックパターンを使用したBOTにおいて、利益目標が設定できる場合に用いる手法。あらかじめ手仕舞いする金額を決めて置き、その価格に逆指値のクローズ注文を入れておく。
ボラティリティブレイクアウト手仕舞い
割愛


・BOT作成に気づきをくれた言葉

成功の秘訣は手法そのものではなく、全員の手法に共通する「ローリスク」のアイデアであるという結論に達した。
知識は、理論を証明することよりも反証することによって発展する。自分が信じていることや仮説を具体化し、反証するほど、市場で成功する確率は上がる。
市場にランダムな要素はあるが、だからと言って市場がランダムだというわけではない。「ランダムに見える」ことと、「ランダムである」ことは違う。
ランダムなシステムの平均勝率は45~55%。システムがランダムよりも優れている場合、システムの勝率は55%以上になる。
セットアップはシステムの最も重要ではない要素のひとつにすぎない。
横ばいでもボラティリティが十分高ければ、短期のバンドトレーダーにとっては良い市場になる。
ボラティリティの3倍のトレーリングストップ、リスクを1%とする簡単なマネーマネジメントからなるランダムな仕掛けシステムは、全施行の100%で利益を上げた。


・期待値の計算方法

BOTの1トレード当たりの期待値=1トレードの平均損益 / 負けトレードの平均損失

いうまでもなく、期待値が高ければ高いほど有用なBOTだと言える。


・pine scriptでの検証について

pine scriptでの検証では、まずマルチタイムフレームでのシステム検証を行うことは難しい。これは、TradingViewが各タイムフレームのOHLCVしか保持していないことが原因で、正しいバックテストが実行できないためである。version2では先読み誤差ありでしかテストできず、version3であれば先読み誤差を選ぶオプションが追加されている。詳細は下記

また、きつめのプロテクティブストップやトレーリングストップを使用する場合は、バックテスト時は実際の値動きに従ってテストされていないことに留意する必要がある。バックテスト時の値動きはOHLCを満たすようにシステムで生成されている。体感では実際の値動きよりも有利な結果がでている。このようなシステムの検証をする場合は、必ずフォワードテストを実施する必要がある。(チャートにストラテジーを追加して放置することで実施できる)


以上です。コメントや感想お待ちしています!

この記事が気に入ったらサポートをしてみませんか?