(1)概要
(2)plot関数
(3)change関数・iff関数
(4)input関数
(5)security関数、相関係数インジケータ
(6)fill関数
(7)bgcolor関数
(8)複数行を一括でコメントアウトできる?
(9)line.new関数・line.set関数、ピボット・インジケータ
(10)関数宣言(カスタム関数)、ピボット・ハイ・ロー・インジケータ
(11)ジグザグ(ZigZag)インジケータ
(12)平均足バー・マルチタイムフレーム(MTF)
(13)ストラテジー・バックテストの概要
(14)ストラテジー・サンプル「EMAクロス+固定TP/SL」
(15)ストラテジーの「最適化」をめぐるTradingViewとMetaTraderの違い
(16)Security関数のgapsとlookaheadとは?
(17)アラート条件の設定:alertcondition
はじめに
今回はPineScript入門ガイドの13回目です。今回から、バックテストで売買のシミュレーション(エミュレーション)ができる「ストラテジー」の機能をご紹介したいと思います。今回は基本的な概要をまとめます。
ストラテジーによるバックテストの流れ
ストラテジーとは、買い・売り注文を送信、変更、キャンセルできるPineスクリプトです。 ストラテジーを使用することによって、特定の売買ロジックに従ってバックテスト(過去データにおける当該ストラテジー取引のシミュレーション)とフォワードテスト(リアルタイムデータでのストラテジー取引のシミュレーション)を実行することができます。
ストラテジーは、「インジケータとストラテジー」メニューから選んで利用(TradingViewに最初からビルトインされているものと、ユーザーによって公開されたもの)できるほかに、自分で「Pineエディター」上で作成することができます。
下記は、「Pineエディター」上で、「Open」メニューから、「New Blank Strategy」を選ぶと表示されるサンプル・スクリプトです。
このサンプルスクリプトは、以下の通りです。
2本の単純移動平均線のゴールデンクロスで買い、デッドクロスで売り、いわゆる「ドテン売買」によるロング・ショートの繰り返しのロジックです。strategy.entryなどの関数は、次回に解説します。
//@version=4 strategy("My Strategy", overlay=true) longCondition = crossover(sma(close, 14), sma(close, 28)) if (longCondition) strategy.entry("My Long Entry Id", strategy.long) shortCondition = crossunder(sma(close, 14), sma(close, 28)) if (shortCondition) strategy.entry("My Short Entry Id", strategy.short)
上記のストラテジーについて、「Add to Chart」メニューをクリックすることで、現在表示されている通貨ペアと時間足の過去データに対して、当該ストラテジー取引のシミュレーションを実行できます。
シミュレーションの実行結果は、以下の通りです。
チャート上には、エントリー及び決済をしたポイントで、その内容が表示されます。
ストラテジーの設定ダイアログでは、以下のように、シミュレーションの条件を設定します。
- 「ピラミッディング」とは、買い・売りそれぞれについて、注文数の上限を意味します。
- 「手数料」は、約定金額に対する割合、注文(per order)、約定(per contract)に対して手数料を設定することができます。
シミュレーション結果の損益は、この手数料の設定で大きく異なってきます。
- 「指値価格の厳密性」は、指値による売買ロジックにおいて、1ティック以上離れていても約定とみなす場合に設定します。
- 「スリッページ」とは、注文価格と約定価格の差をいいます。現実の売買ではスリッページが発生することがありますので、それを前提にシミュレーションするときに設定します。
「ストラテジー・テスター」のメニューでは、シミュレーションの結果を確認できます。
結果は、「Overview(概要)」「Performance Summary(パフォーマンスサマリー)」「List of Trades(トレード一覧)」の3つのタブに分かれています。
「Overview(概要)」では、結果の概要と、損益グラフが以下のように表示されます。グラフでは青い部分は資金残高(Equity)の増減を示し、ピンクはドローダウンの増減を示しています。
「Performance Summary(パフォーマンスサマリー)」では、純利益、総利益、最大ドローダウンなどの各種データを確認できます。
「トレード一覧」では、一つ一つのトレードの詳細(エントリー・決済の時間、価格、損益など)を確認することができます。
それでは次回より、具体的なストラテジーのサンプルをご紹介します。