2つの移動平均オシレーター株式戦略

作者: リン・ハーンチャオチャン, 開催日:2024-02-05 10:47:38
タグ:

コンピュータは,ダブル_スムーズ_abs_pcを取得します

  1. 最後に TSI インデックス = 100* ((double_smoothed_pc/double_smoothed_abs_pc)

信号線 tsi_signal と TSI の値を比較することで,買い過ぎまたは売り過ぎのゾーンを特定し,買い過ぎや売り過ぎのポイントを決定することができます.

買い信号:TSIは上向きの信号を横断し 株価の逆転を示し オーバー買いゾーンの始まりを示します

売り信号:TSIが信号を下回り下を通り過ぎると 株価の逆転が示され 売り切りの期間の終わりを意味します

利点分析

この戦略の最大の利点は,二重移動平均指標を使用して株式価格の周期的特徴を特定することにある.二重移動平均で長期と短期間の両方を同時に採用することで,単一の移動平均値よりもより敏感で正確な価格変動傾向を把握することができ,取引信号を決定するのにより効果的です.

さらに,この戦略では,他の共通の技術指標よりも TSI インデックスを選択します. TSI は価格変動の動向を計算することにより注意を払っており,これは過買い/過売り状況をより正確に判断し,より良い取引ポイントをもたらします.

リスク分析

この戦略の最大のリスクは,二重移動平均値は価格変動に非常に敏感である.価格変動の場合,誤った信号を容易に生成することができる.さらに,過買い/過売りゾーンを判断するための TSIの基準は依然として主観的で,不適切なパラメータ設定も正確性に影響を与える.

このようなリスクを制御するために,ダブル移動平均の長さを調整することによってパラメータを適切に最適化することが推奨される.波動性の中でのポジション開設を避けるために,シグナルを確認するために他の指標を組み合わせることも必要です.さらに,ストップロスの戦略を最適化し,緊急事態に対するリスク管理措置を設定することは非常に重要です.

オプティマイゼーションの方向性

この戦略の最適化方向は主に2つの側面に焦点を当てています.

  1. パラメータ最適化. 長短の移動平均線と信号線の長さのようなパラメータの最適な組み合わせは,感度を向上させるためにバックテストすることができます.

  2. フィルタリングインジケーターを設定します.例えば,ボリンジャーバンド,KDJなどを組み合わせて購入/売却信号を検証し,ポジションの誤った開設を防止します.取引量フィルターは,ボリュームが急上昇するときにのみオープンポジションに適用することもできます.

  3. ストップ・ロスの戦略を追加します. 移動ストップ・ロスを設定し,単一のポジションの損失を制限するタイミングで退出します. また,体系的なリスクを制御するために,市場の状況に基づいて取引を一時停止することができます.

  4. ポジションのサイズを最適化する. 市場の状況に基づいてポジションのダイナミックなサイズと割合を設定し,すべての取引のリスク露出を管理する.

概要

この戦略は,価格動向の変化の長期および短期分析を統合し,デュアル・ムービング・アベア・オシレーター指数の計算方法を利用し,それによって入口と出口を決定するオーバーバイトおよびオーバーセールゾーンを決定する.単一のムービング・アベアと比較して,より正確なおよび敏感な判断の利点があります.もちろん,安定性と収益性を高めるため,シグナルフィルタリングのための他の指標と組み合わせて適切なパラメータ最適化は依然として必要です.全体として,この戦略は,ライブテストと最適化に値する取引ポイントを決定するための効果的な技術的ツールを提供します.


/*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)

もっと