
この策略は,株の買入と売却の判断に二平平均線振動器の指数を使用する.二平平均線振動器の指数は,長短が2つの異なるパラメータの二指数移動平均で構成され,価格変化の動力を計算することによって,超買超売現象を測定する.
この戦略の核心指標は,双平滑均線振動器指数 (TSI) である.この指数は,以下の計算方法によって計算される.
pc=close-preclose 価格の変化を計算する
pcを二次指数平滑処理して,それぞれ長周期12日および短周期9日指数平均をとる. 二次平滑の値が得られる.
同じように絶対値のgadgetpcを二次指数平滑処理すると,double_smoothed_abs_pcが得られる.
最終的なTSI指数は100*(double_smoothed_pc/double_smoothed_abs_pc)
TSI値とその信号線tsi_signalとの関係を計算して,超買超売領域を判断し,これにより買入と売却を決定する.
買入シグナル:TSI値の上のシグナルラインを横切って,株価が逆転したことを示し,超売り領域に入ると買入することができる.
売り出しシグナル:TSI値を下回るシグナルラインを横切って,株価が逆転し,超売り領域が終了し,売り出すべきである.
この戦略の最大の利点は,二重平滑平均線指標を用いて株価の周期的特性を識別することにある.二重平滑平均線指標では,同時に長短な2つの周期を使用することで,価格変化の傾向をより繊細かつ正確に捉えることができ,買賣点を判断する際に単一の平均線と比較してより強い優位性を有する.
また,この戦略は,TSI指数よりも他の一般的な技術指標を選択した理由は,TSI指数が価格変化の動的情報を計算することにより重点を置いているからです.これは,より正確に超買超売現象を判断し,より良い買賣ノード選択を得ることができます.
この戦略の最大のリスクは,二重滑り平均線自体が価格変化に敏感であり,株価が揺れると誤ったシグナルが生じやすいことである.さらに,TSI指数は,超買い超売り地域を判断する基準は,比較的主観的であり,パラメータの設定が不適切であることも判断の正確さに影響する.
これらのリスクを制御するために,適切な最適化パラメータを推奨し,長短平均線の長さを調整し,同時に他の指標と組み合わせてシグナルを検証し,震動の状況でポジションを開くのを避ける.さらに,損失停止戦略を最適化し,突発的な出来事に対するリスク管理措置を設定することも非常に重要です.
この戦略の最適化方向は,主に2つの側面に集中しています.
パラメータ最適化 長い平均線と信号線のパラメータの最適な組み合わせを,より多くの反射でテストすることができ,指標の感度が向上する.
フィルタリング指標を配置する.例えば,ブリン帯,KDJなどの他の指標を組み合わせて,買入シグナルを検証し,誤った開設を回避する.または取引量フィルタを設定し,取引量が大きくなった場合にのみ開設する.
損失策の増強 移動的損失と時間的損失を設定して単一の損失を制御する ほか,大株状況に応じて取引を一時停止して,システム的リスクを制御する ほか
ポジション管理の最適化. ポジションの規模と割合を動的に調整し,市場状況に応じて各取引のリスクを制御することができます.
この戦略は,二平滑均線振動器指数の計算方法を使用し,同時に長短の2サイクル分析価格動力の変化を融合させ,超買超売領域を判断し,買い売りのタイミングを決定する.単一の均線と比較して,判断がより正確な判断の敏度の優位性がある.もちろん,適切な最適化パラメータが依然として必要であり,他の指標でフィルター信号を補足して,戦略の安定性と収益性を向上させる.全体的に,この戦略は,買い売り点を判断する効果的な技術的手段を提供し,検証と最適化の価値がある.
/*backtest
start: 2023-01-29 00:00:00
end: 2024-02-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © shankardey7310
//@version=5
strategy("TSI STOCKS", shorttitle="TSI", overlay=true)
initialCapital = input(10000, title="Initial Capital")
riskPercent = input(1, title="Risk Percentage") / 100
longLength = input(12, title="Long Length")
shortLength = input(9, title="Short Length")
signalLength = input(12, title="Signal Length")
price = close
pc = ta.change(price)
double_smooth(src, long, short) =>
first_smooth = ta.ema(src, long)
ta.ema(first_smooth, short)
double_smoothed_pc = double_smooth(pc, longLength, shortLength)
double_smoothed_abs_pc = double_smooth(math.abs(pc), longLength, shortLength)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
tsi_signal = ta.ema(tsi_value, signalLength)
riskAmount = (initialCapital * riskPercent) / close
if (tsi_value > tsi_signal and tsi_value[1] <= tsi_signal[1])
strategy.entry("Long", strategy.long)
if (tsi_value < tsi_signal and tsi_value[1] >= tsi_signal[1])
strategy.close("Long")
plot(tsi_value, title="True Strength Index", color=#2962FF)
plot(tsi_signal, title="Signal", color=#E91E63)
hline(0, title="Zero", color=#787B86)