仮想通貨で始めるシステマチック_トレード3

第三章 日足のトレードで資産2倍を目指す(理論編)

初めに

いよいよ、本マガジンの核心です。

本マガジンのために、あるトレードルールを準備しました。このルールでシステマチックにトレードを行い、数か月程度で運用資金を2倍にすることを目標とします。

このトレードルールは、非常によく知られたオーソドックスな手法を用いています。トレードの鉄則「トレンドフォロー」タイプであり、数日~数十日程度のスイングトレードを行うものです。

また、日足ベースでのトレードです。このため、1日1回だけ値動きを確認すればよく、運用面のコストが非常に少ないのです。また、検証や運用にボットを必要としないため、非プログラマーの方や主婦の方でも十分運用が可能な優れものです。

また、システムトレードに興味がないという人にとっても、トレンドを意識してトレードすることは非常に有益となります。特に何もトレンド判定の指標を使っていないという人は、ぜひこの章だけでも目を通して下さい。

トレードルール~移動平均を利用したトレンド判定~

それでは、トレードルールの紹介です。
本マガジンで採用したルールは、2本の移動平均線のクロスによってトレンド判定を行う、オーソドックスなトレンドフォロー・システムです。

①短期の移動平均は、5日間のEMA(指数平滑移動平均)
②長期の移動平均は、10日間のEMA

①が②を上向きにクロスしたとき、ロング
①が②を下向きにクロスしたとき、ショート

以上がルールの全てです。経験者の方にとっては拍子抜けするルールです。なぜなら、この2本の移動平均を使ったトレンド判定は、トレードの教科書の中で一番最初に出てくるような内容だからです。

加えて、以下の内容でトレードを行います。
・取引所は、BitMEX。
・運用資金は、10,000ドル(もちろん、手持ちの資金に応じて1,000ドルでも100ドルでも構いません)。
・レバレッジは1倍。
・複利で運用する(トレードで得た利益を次のトレードの資金に加える)。
・利食いと損切りはしない。

トレードルールを検討するにあたり、以下を念頭に置きました。
・基本に忠実に、トレンドをフォローすること
・誰もが知るような、基本中の基本の指標を利用すること
・シンプルさを最も重視すること

典型的なトレンドフォローのため、レンジ相場でコツコツと損失を出し、大きなトレンド相場で大きな利益を得る、という「損小利大」のストラテジー(戦略のこと)です。

EMAをそのまま使うなんて!とおっしゃるベテラントレーダーもおられるかもしれませんが、教材としてこれ以上のものはないという結論に至りました。

・・・

さて、今回のnoteは長文です。経験者向けに、まず結論を述べます。

上記のルールで、日足のトレード(始値でエントリー&終値で決済、毎日1BTCずつエントリー)を行った場合、直近5か月で約1.5BTCの利益を得ることができます(約250%のリターン)。検証内容はこちらのスプレッドシートにまとめてあります。

勝率 53.2%
トータルリターン 10,198ドル
プロフィットファクター 1.45

・・・

これ以降は、トレード初心者、特に非プログラマーの方が、実際に指標の検証を行い、それに基づくトレードを実践できるようになるための講座となります。

EMA(指数平滑移動平均)とは?そして2本の移動平均を使ったトレンド判定とは?

まずはEMAについての説明が必要ですが、本マガジン上では割愛します。なぜなら、インターネット上のいたるところで紹介されている有名な手法だからです。

もしもご存知ないという方は、Google検索などで調べておきましょう。例えばこちらのサイトが分かりやすいです。

また、複数の移動平均を使ったトレンド判定は、こちらのサイトが分かりやすかったです。

特定のサイトをひいきしているわけではありません。他にもよい記事がたくさんあると思います。これまで全くこのような指標に触れたことのない方は、この機会に学習することをお勧めします。

さて、このような単純な指標で本当に利益が出るのか?
さっそく、実際の過去の値動きに照らし合わせて検証していきましょう。この作業が「バックテスト」です。前述しましたが、チャートソフトなどは必要ありません。
分かりやすいように、Excelを利用しましょう。Excelがなければ、Googleのスプレッドシートや、フリーでつかえるOpenOfficeなどの表計算ソフトでも構いません。
本マガジン上では、ファイル公開を簡便にするためGoogleスプレッドシートを利用します。

ヒストリカルデータの取得

バックテストを行うにあたり、まずは過去の値動きのデータを取得しましょう。この過去の値動きのデータのことを、「ヒストリカルデータ」と呼びます。いわゆるローソク足のデータで、一日の値動きが4種類のデータで表現されます。

・始値(Open)
・高値(High)
・安値(Low)
・終値(Close)

頭文字をとって、「OHLC」などとも呼ばれます。
BitMEXのヒストリカルデータを取得するには、いくつか方法があります。本マガジンで使うデータは、pythonのCCXTというライブラリで取得しています。やり方はこちらのnoteが参考になります。

cryptowatchから取得される方は、こちらのサイトで簡単に取得できます。

BitMEXのデータではありませんが、他にも以下のようなサイトで簡単に取得できますので、検証用に使うことが可能です。

なお、本マガジンで掲載したヒストリカルデータや、リンク先のコンテンツやヒストリカルデータに責任を持つものではありませんので、ご利用はご自身の判断でお願いいたします。

ExcelによるEMAの計算

上述のヒストリカルデータを、Googleスプレッドシートに配置しました。
まず、こちらのリンクから閲覧してください(冒頭のスプレッドシートと同じファイルです)。

A列・・・時刻。2018/1/1の行は、2018年1月1日の0時(日本時間9時)で確定した、前日の値動きが記載されています。
B列・・・前日始値。
C列・・・前日高値。
D列・・・前日安値。
E列・・・前日終値。この終値が、2018年1月1日0時時点の価格です。

それでは、F列に5日間EMA、G列に10日間EMAを計算しましょう。EMAの計算式はこちらです。数学の試験同様、公式として考えてください。

N日間のEMAの計算方法
EMA(i)・・・i日目のEMAの値  C(i)・・・i日目の価格

N日目・・・EMA(N) = ( C(1)+C(2)+…+C(N) ) / N
 つまり直近N日間の平均。

N日目以降・・・EMA(i) = EMA(i-1) + ( 2 / ( N + 1 ) ) * ( C(i) - EMA(i-1) )
 前日のEMAに、当日価格と前日EMAの差分を重みづけして加えた値。

理解できなくてもひとまず大丈夫です。そのままExcelに入力していきましょう。それでは、まずは5日間EMAです。

①F6のセルに「=AVERAGE(E2:E6)」と入力してください。
②F7のセルに「=F6+(2/(5+1))*(E7-F6)」と入力してください。
③それより下のセルは数式をコピーしてください。
(コピーの仕方はここを参考にしてください)

分からなくなってしまった方は、上記のスプレッドシートに全て入力済ですので、参考にしてください。

同様に、10日間EMAの計算です。

①G11のセルに「=AVERAGE(E2:E11)」と入力してください。
②G12のセルに「=G11+(2/(10+1))*(E12-G11)」と入力してください。
③それより下のセルは数式をコピーしてください。

では、終値、5EMA、10EMAをグラフで出力してみましょう(グラフの作り方はググってください)。

トレンドの反転を、赤と黄色の二本の曲線の交差によってきれいに検出できている様子が分かると思います。
分かりやすく色をつけたのが下の図です。青の領域が下降トレンド、赤の領域が上昇トレンドです。

実際にこのタイミングで売買を行うとどうなるのかを、Excel上で検証していきましょう。

売買フラグの計算

2つのEMAの値を利用し、トレンド判定を行います。
まず、H列を使って、「前日まで」の5日間EMAと10日間EMAがどちらが上にあるかを判定しましょう。簡単なIF分の式を使えば大丈夫ですね。

①H12のセルに「=IF(F11>G11,1,IF(F11<G11,-1,H11))」と入力してください。
②それより下のセルは数式をコピーしてください。
IF文の内容の解説(分かっている人は読み飛ばしてOK)
 前日の5日間EMA(F11セル)が10日間EMA(G11セル)より大きいか?
 →大きいなら、1(上昇トレンド)
 →そうでないなら、
  前日の5日間EMA(F11セル)が10日間EMA(G11セル)より小さいか?
  →小さいなら、-1(下降トレンド)
  →そうでないなら(=等しければ)、H11セル(前日トレンド継続)

スクリーンショットをご覧ください。H列が1だと、トレンドが上向きということ、つまりBuy(ロング)のフラグです。逆に-1だとトレンドが下向き、つまりSell(ショート)のフラグです。

このフラグに基づいて売買を行ったとき、性能評価を行ってみましょう。

トータルリターンの計算と性能評価

単純に、毎日1BTCの売買を行ったとします。前述のフラグに応じてその日の始値でエントリーし、その日の終値で決済を行います。
ロングの場合、終値と始値の差分が損益となり、ショートの場合はこの逆になります。以下が日次リターンの式となります。

①I12のセルに「=(E12-B12)*H12」と入力してください。
②それより下のセルは数式をコピーしてください。

続いて、トータルリターンを計算します。トータルリターンは、それまでのリターンに日次リターンを加えたものです。

①J12のセルに「=J11+I12」と入力してください。
②それより下のセルは数式をコピーしてください。

こちらがI列のトータルリターンをグラフ化したものです。これが冒頭のグラフです。

1月中旬から6月中旬までの約5か月間で10,000ドルを超えるリターンを得ることができました。現在値で計算すると、約1.5BTCを得られたことになり、リターンは約250%となります。

エントリー数 156
勝ち数 83
負け数 72
勝率 53.2%
獲得利益 33,095ドル
獲得損失 -22,897ドル
プロフィットファクター 1.45

やはり、偉大なる先人たちの教えは正しかったようです!

単純な、使い古された2本の移動平均によるトレンド判定でさえ、それに従って何も考えずにトレードするだけで良好な結果を得ることができます。

「トレンドに逆らわない」はスイングトレードの鉄則です。トレード初心者の方は、必ず「トレンドを意識したトレード」をするようにしましょう。

もしも、上昇トレンドに逆らってショートするときは、必ずトレンド以上の理由が必要になります。トレンドを常に意識しながら、特別な理由がある場合のみ(そしてその理由を明確に説明できるときのみ)、逆張りのエントリーをしましょう。

長くなったので今回はここまでです。
今回は毎日1BTCでのエントリーでしたが、次回は10,000ドルの資金を複利運用したときの検証方法を解説します。

そして、実際の運用方法を提案しますので、お楽しみに。

ご質問やご意見について

ご質問やご意見は、随時twitter(@i_love_profit)で受け付けています。

ただし、頂いたご質問やご意見の全てにご返答することを確約するものではありませんので、悪しからずご了承ください。
また、頂いたご質問やご意見の内容については、特別な許可を得ずに、twitterやnote、その他の媒体でご紹介させて頂く可能性がありますので、併せてご了承ください。


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