皆さん初めまして!makoto(@Makoto_beginner)です!
今回は、前回の記事にて紹介したTradingViewのPineスクリプトで作成したストラテジーの最適化を支援するツール、
Optima Heat(オプティマヒート)
の特徴や使用方法について解説したいと思います。
1、OptimaHeatでできること・できないこと
まずは、OptimaHeatでできること・できないことを紹介します。
(1)できること
OptimaHeatでできることは、
与えられた条件下で最適なパラメーターを探し出すこと
です。
TradingViewで作成した「EMA-CROSS」というストラテジーがあったとします。このストラテジーに設定できるパラメータの数は2つありますが、一体どんなパラメータの組み合わせが最適なのかわかりません。また、適応する銘柄や適応するタイムフレームも変えることができるため、これらの組み合わせで最も利益が出る組み合わせを調べたい状況だとします。
こういった場面でOptimaHeatを使用すれば簡単にヒートマップを作成することができます。
以下のヒートマップは、
・ストラテジー名:EMA-CROSS
・銘柄 : BYBIT:BTCUSD
・タイムフレーム : 1H
・パラメーター1 : Short_termというパラメーターを50から180まで10ずつ増加
・パラメーター2 : Long_termというパラメーターを100から400まで30ずつ増加
という条件を設定した際に出力された総利益のヒートマップです。
このストラテジーの場合は、Short_termを180、Long_termを400にした時に最大の利益が出たことがわかります。
また、今回は最大利益のヒートマップを出力しましたが他にも23種類(合計24種類)の指標のヒートマップが出力可能です。
例えば、同じストラテジーのプロフィットファクターを見てみましょう。
プロフィットファクターについても、またもやShort_termを180、Long_termを400にした時に最大であることがわかります。
「このパラメーター最強なんじゃね?」と言いたいところですが、取引回数をみてみましょう。
他のパラメーターと比較して取引回数が”19回”と少ないことがわかりますね。
このように、取引回数が少ないストラテジーの場合は高い利益率、勝率、プロフィットファクターが出ることがあります。
そのようなことを防ぐためにも、必ず他の指標と合わせてストラテジーを評価することが大切です。
そのため、OptimaHeatでは全24種類の指標に関してヒートマップを作成できるようにしています。
出力できるヒートマップは、以下の24種類です(TradingViewの表記に合わせています)
「純利益」「総利益」「総損失」「最大ドローダウン」「シャープレシオ」「ソルティノレシオ」「プロフィットファクター」「最大保有数」「未決済の損益」「支払い済み手数料」「終了したトレードの合計」「未決済トレードの合計」「勝ちトレード数」「負けトレード数」「勝率」「平均トレード」「平均勝ちトレード」「平均負けトレード」「ペイオフレシオ」「最大勝ちトレード」「最大負けトレード」「トレードでの平均バー数」「勝ちトレードでの平均バー数」「負けトレードでの平均バー数」
(2)できないこと
次にできないことですが
1、与えられたパラメーター以外の検証は不可能
2、高速な処理実施
です。
1、与えられたパラメーター以外の検証は不可能
先ほどの例を再度あげますが、
・ストラテジー名:EMA-CROSS
・銘柄 : BYBIT:BTCUSD
・タイムフレーム : 1H
・パラメーター1 : Short_termというパラメーターを50から180まで10ずつ増加
・パラメーター2 : Long_termというパラメーターを100から400まで30ずつ増加
という条件設定をしました。
しかし、仮に本ストラテジーの最大利益が出るパラメーターの組み合わせが、
・パラメーター1 : Short_termが55
・パラメーター2 : Long_termが112
等であった場合は見逃してしまうことになります。
このようにOptimaHeatはあくまでも、
与えられた条件下で最適なパラメーターを探し出す
ツールであることをご理解ください。
2、高速な処理実施
OptimaHeatはTradingViewからデータを自動でダウンロードして処理を実施するソフトウェアです。
そのため最適化にかかる時間だけで言えば、Pythonなどで最適化を実施する場合よりも長い時間が処理に必要となります。
しかし、そもそもPythonでTradingViewなどのストラテジーを最適化しようとすると、ストラテジーを1つずつPython用に変換したり手間がかかるので、その時間と比較すればこちらの方が高速で処理が行えます。
「兼業トレーダーの方で、仕事に行ってる間に自動で検証したい」
「今から少しお出かけするので、その間に自動で検証したい」
なんて方にオススメです!
あなたが思う存分買い物を楽しんでいる間にOptimaHeatがせっせと働いてくれます。
2、OptimaHeatの仕組み
得体の知れないソフトウェアを動かすのは気がひけますので、どのような仕組みでOptimaHeatが動いているのかを簡単に説明いたします。
①OptimaHeatからChrome WEBドライバーを駆動する
②Chrome WEBドライバーからChromeを操作する
③ChromeでTradingViewにアクセスして、与えられたパラメーターを使用してストラテジーの成績をCSV形式でダウンロード
④全てのパラメーターのデータをダウンロードしたら、OptimaHeatがフォルダ内のデータを読み込む
⑤読み込んだデータをもとにヒートマップを作成して指定のフォルダへ画像を保存する
このような流れで処理をしています。
そのため本ソフトウェアを動かす際は、
Chromeが使用できる環境であること
ことが必須条件となりますのでご注意ください。
※(2021/12/29追記)従来のバージョンではChromeDriverを手動でダウンロードする必要がありましたが、バージョン1.02以降不要となりました。
3、ヒートマップの出力ルールについて
次に、どのようにして1枚のヒートマップが出力されるかについて説明します。
OptimaHeatで指定できる条件は、
1、シンボル
2、タイムフレーム
3、ストラテジー
4、ストラテジーの各種パラメーター
の4つがありますが、「シンボル」「タイムフレーム」「ストラテジー」の組み合わせごとにヒートマップが出力されます。
イメージを図で表すとこんな感じです。
上図のように、シンボルを2つ・タイムフレームを1つ・ストラテジーを2つ指定した場合は、計4ペアのヒートマップが出力されます。
フォルダ自動作成機能について
OptimaHeatは、作成したヒートマップを簡単に見つけられるようにフォルダ自動作成機能を実装しています。
先ほどのように、様々な条件を指定した場合には多くのヒートマップが出力されます。
そこで、後から簡単にヒートマップにアクセスできるようにフォルダの自動作成機能を実装しております。
先ほどと同様の条件だと、”プロパティ”にて指定したヒートマップ保存先フォルダの中に以下のようにフォルダが作成されます。
4、OptimaHeatの使い方
次に使い方について説明します。以下に示すようにOptimaHeatは
1、プロパティ
2、シンボル&タイムフレーム
3、パラメーター設定
4、出力するヒートマップ
5、処理実行ボタン・設定を保存ボタン・進捗バー
の5部で構成されています。それぞれについて詳しく説明していきます。
(1)プロパティ
プロパティは、OptimaHeatを動かす際に必要となる情報を入力する箇所です。
下部にある「設定を保存」ボタンを押すことで、次回以降起動時に入力された状態となります。
①TradingViewのID・②TradingViewのパスワード
これらの情報はTradingViewにログインする際に必要となります。
③ダウンロードデータの保存先パス
TradingViewからダウンロードされたデータが保存されるフォルダのパスを入力してください。
設定などを変えていない限り、基本的にパソコンの「ダウンロード」フォルダが指定されていることが多いです。windowsではShiftキーを押しながら対象のフォルダを右クリックするとメニューに「パスのコピー」が出てくるので、これを押すとパスをコピーできます。
パスを入力する際は¥を¥¥に変換して入力してください。
例えば、パスが
“C:¥〇〇¥▽▽▽¥◇◇◇”
だった場合は、
“C:¥¥〇〇¥¥▽▽▽¥¥◇◇◇”
と入力してください。
④Chromeドライバー保存先パス(Ver1.02以降不要となりました)
Chromeを駆動させるために必要なChromeDriverのパスを入力してください。
こちらは、フォルダではなくてChromeDriver自身のパスを指定してください。(必ずパスの最後がchromedriver.exeとなります)
先ほど同様にShiftキーを押しながらChromeDriverを右クリックするとメニューに「パスのコピー」と出てくるので、それをコピーして¥を¥¥に変換して貼り付けてください。
⑤ヒートマップの保存先パス
出力されたヒートマップを保存したいフォルダのパスを入力してください。
これも同様に、¥を¥¥に変換するのをお忘れなく!
(2)シンボル&タイムフレーム
①シンボル名
ストラテジーを適応させたいシンボルを入力してください。シンボルの入力は、ブローカー名と銘柄をコロンで繋いで、
ブローカー名:銘柄
のように入力してください。
例えば、ビットフライヤーのBTCJPYにストラテジーを適応する場合は、
BITFLYER:BTCJPY
と入力してください。
カンマ(,)で区切ることで複数の銘柄に適応することができます。
②タイムフレーム
タイムフレームを指定します。1m(一分足)から1M(一月足)まで指定できます。
カンマ(,)で区切ることで複数のタイムフレームに適応することができます。
(3)パラメーター設定
①ストラテジー名
ヒートマップを作成したいストラテジー名を入力します。大文字小文字含め、正しいストラテジー名を入力してください。
カンマ(,)で区切ることで複数のタイムフレームに適応することができます。
②パラメーター
Y1,X1,Y2,X2
変化させたいパラメーターを入力する画面です。入力するパラメーターをカンマ(,)で区切って入力してください。
No.
パラメーターを入力する箇所を指定する番号です。下図のように、ストラテジーのオプションを開いて、入力欄が何番目にあるかを指定します。
ラベル名
ヒートマップに表示するラベル名(下図青枠)を入力します。(今のところ日本語には対応していません)
(4)出力するヒートマップ
出力したいヒートマップを選択します。プロパティと同様、下部にある「設定を保存」ボタンを押すことで、次回以降起動時に入力された状態となります。
(5)処理実行ボタン・設定を保存ボタン・進捗バー
処理実行ボタン
このボタンを押すと処理を開始します。
設定を保存ボタン
・プロパティ
・出力するヒートマップ
の二項目に関して、次回立ち上げた際に設定を引き継ぐために、現在の設定を保存するボタンです。
進捗バー
全体の処理に対してどの程度進捗しているかを示すバーです。
5、まとめ
以上がOptimaHeatの特徴および使用方法です。
次回は、OptimaHeatを使用する手順を一から丁寧に説明します。
では、次回の記事でお会いしましょう!
皆さんの応援がブログを更新するモチベーションになっています!
記事について「面白い!」「わかりやすかった!」と思っていただけましたら、ぜひブログのお気に入り登録 & Twitter(@Makoto_beginner)のフォローをよろしくお願いいたします!
本記事を気に入っていただけたらブックマークお願いします!また、ツイッターもやってるのでフォローよろしくお願いいたします!
Twitter : makoto(@Makoto_beginner)
また、記事中で不明なことや間違い等ありましたら以下のコメント欄からコメントいただけると幸いです。
皆様のコメントをもとにどこよりもわかりやすいブログを目指していきます。