TradingViewでテクニカル分析に基づく株式トレードのアイデアが評価できます
今回は、RSIを使った株式トレードをTradingViewのストラテジーテスターで評価します。
過去に行った、テクニカル分析に基づく株式トレードについては、下記の記事を参照ください。
RSIに基づく株式トレードのストラテジー
今回評価するストラテジーは、以下の通りです。
■買いトレードのエントリー条件
RSIが30%のラインを下から上にクロスしたタイミング
■買いトレードのイグジット条件
RSIが70%以上となったタイミング
■空売りトレードのエントリー条件
RSIが70%のラインを上から下にクロスしたタイミング
■空売りトレードのイグジット条件
RSIが30%以下となったタイミング
RSIを算出する期間は14日とします。
また、建玉を保有している状況では、新たな売買は行わないものとします。
TradingViewのストラテジーテスター向けPineスクリプトのソースコード
上記のストラテジーをPineスクリプトで記述したものが、下記となります。
//@version=6
strategy("RSI", overlay = false, process_orders_on_close = true)
// バックテストの期間を設定
StartTime = input.time(defval = timestamp("01 Jan 2005 00:00 +0600"), title = "テスト開始年月日")
EndTime = input.time(defval = timestamp("31 Dec 2024 00:00 -1200"), title = "テスト終了年月日")
// 期間の条件式
bool CondTime = StartTime <= time and time <= EndTime
// RSIの各種設定
float RSISource = input.source(close, title = "RSI Source")
int RSILength = input.int(14, title = "RSI期間")
float RSIUpper = input.float(70.0, title = "RSI上限")
float RSILower = input.float(30.0, title = "RSI下限")
// RSIの算出
float RSIValue = ta.rsi(RSISource, RSILength)
// プロット
plot(RSIValue, title = "RSI", linewidth = 2, color = color.red, precision = 2)
RSILineTop = hline(RSIUpper, title = "RSI上限", linewidth = 2, linestyle = hline.style_dashed, color = color.white)
RSILineCenter = hline(50.0, title = "RSI中央", linewidth = 1, linestyle = hline.style_solid, color = color.white)
RSILineBottom = hline(RSILower, title = "RSI下限", linewidth = 2, linestyle = hline.style_dashed, color = color.white)
fill(RSILineTop, RSILineBottom, color = color.new(color.silver, 90))
// 売買ID
const string IDLong = "Long Entry"
const string IDShort = "Short Entry"
// 売買条件の設定
// 買いトレードのエントリー条件
bool CondLongIn = RSIValue[1] < RSILower and RSILower <= RSIValue
// 空売りトレードのエントリー条件
bool CondShortIn = RSIUpper < RSIValue[1] and RSIValue <= RSIUpper
// 買いトレードのイグジット条件
bool CondLongOut = RSIUpper <= RSIValue
// 空売りトレードのイグジット条件
bool CondShortOut = RSIValue <= RSILower
// 株式トレードの実行
// 買いトレード
if (CondTime and CondLongIn)
strategy.entry(IDLong, strategy.long, comment = "買")
// 空売りトレード
if (CondTime and CondShortIn)
strategy.entry(IDShort, strategy.short, comment = "売")
// 買いトレードの決済
if (CondTime and CondLongOut)
strategy.close(IDLong, comment = "返売")
// 空売りトレードの決済
if (CondTime and CondShortOut)
strategy.close(IDShort, comment = "返買")
上記のPineスクリプトにおいて、一つだけ修正すべき点があります。
■Pineスクリプトの修正内容
1行目の「@」を半角のアットマークに置き換えてください
coconalaブログは、半角のアットマークを記述することができない仕様であるため、このような対応を行っています。
TradingViewのストラテジーテスターによるストラテジーの評価結果 概要
今回は、日経平均株価を対象として、TradingViewのストラテジーテスターを使用したストラテジーの評価結果(概要)を以下に示します。
ストラテジーテスターによる評価結果 概要(出典: TradingView)
評価期間は、2005年1月1日から2024年12月31日の20年間としました。
また、株式トレードにおける手数料や税金、等は考慮していません。
- 純利益: 4,948.89円(1株単位)
- プロフィットファクター: 1.155
- トレード合計: 37
- トレード勝率: 70.27%
純利益は、100株単位に換算すると494,889円となります。
このため、1年平均では24,744.45円です。
純利益を見て、少なすぎて使えないと判断するのはまだ早いです。
ここから、テクニカル分析に基づく株式トレードのストラテジーの作成がスタートするのです。
株式トレードの詳細を日足チャートで確認し、問題点を改善する条件を抽出し、結果をストラテジーに反映し、評価を行うプロセスを繰り返すことで、より良いストラテジーが完成します。
もし、試してみたいストラテジーがあるけど、自分でPineスクリプトを作成するのは面倒、等であれば、私の方でPineスクリプトを作成致します。
さらには、私がストラテジーを作成するサービスもご提供しています。
ご興味のある方は、お気軽にお問い合わせください。