TD 連続的なブレイクアウトとリトラセーション 買い/売る戦略

作者: リン・ハーンチャオチャン,日付: 2024-04-01 11:23:26
タグ:

img

概要

この戦略は,TDシーケンスベースのブレイクアウトとリトレースメントの買い/売る戦略である.TDシーケンス内の8番目と9番目のキャンドルを認識することによって,潜在的なトレンド逆転点を特定する.さらに,戦略は,エントリーポイントの精度を向上させるためにTDシーケンスブレイクアウト後のリトレースメントを検討する.さらに,トレンド決定のための補助ツールとして移動平均を使用する.

戦略の原則

  1. TD配列を計算する.現在の閉店価格と4かろうそく前の閉店価格を比較して,8か9つの連続した上下のキャンドルが存在するかどうかを判断する.
  2. 購入/販売ポイントを決定します. 8 つまたは 9 つ連続した上 (下) のろうそくがある場合,第 8 つまたは第 9 番目のろうそくで潜在的な販売 (購入) ポイントをマークします.
  3. 引き戻しについて考える.TD配列のブレイクの後,価格が引き戻すかどうかを観察する.ブレイクステータスが13,14,15,または16キャンドルで維持された場合,ブレイクが有効とみなされ,そうでなければ無効とみなされます.
  4. トレンド決定: 10 日間と 20 日間の移動平均間の関係を利用して,現在のトレンド方向を決定し,購入/販売決定の基準として使用します.

戦略 の 利点

  1. 効率的に潜在的なトレンド逆転点を特定する.特に,TDシーケンスブレイク後のリトラセーションエントリーポイントがしばしば良いリスク/リターン比をもたらす強いトレンドの場合.
  2. TDシーケンスブレイク後のリトラセーションを考慮することで,戦略は誤った信号を効果的にフィルタリングし,エントリーポイントの精度を向上させることができます.
  3. 移動平均値の使用は,現在のトレンド方向を決定するのに役立ちます.トレンド方向で取引する際に戦略をより効果的にします.

戦略リスク

  1. 不安定な市場では,TD配列は多くの誤った信号を生成し,頻繁に取引と資本損失につながる可能性があります.
  2. 戦略はパラメータ選択に敏感で,異なる市場環境ではパラメータの最適化と調整が必要かもしれません.
  3. この戦略には明瞭なストップ・ロスのメカニズムがないため,市場が激しい変動を経験すると,大幅な引き下げが起こりうる.

戦略の最適化方向

  1. RSIやMACDなどのより多くの技術指標を導入し,信号の信頼性とフィルタリング効果を向上させる.
  2. TD シーケンス ブレイク後のリトレースについては,リトレースの許容度を動的に調整するためにATRのような指標を使用するなど,より柔軟な判断基準を導入することを検討する.
  3. トレンド決定に関して,より包括的なトレンド判断を得るために,短期,中期,長期移動平均の関係などの,より多くの時間間の組み合わせを使用してみてください.
  4. ATRに基づくダイナミックストップ・ロスのような,明確なストップ・ロスのメカニズムを導入し,取引毎の最大損失を制御する.

概要

TDシーケンスと移動平均を組み合わせることで,この戦略は潜在的なトレンド逆転点を効果的に特定し,リトレース状況を検討することによってエントリーポイントの精度を向上させることができます.この戦略にはいくつかのリスクと制限がありますが,より多くの技術指標を導入し,トレンド決定方法を最適化し,明確なストップ・ロスのメカニズムを設定することで,強固性と収益性をさらに向上させることができます.


/*backtest
start: 2023-03-26 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Dipak Shankarrao Chavhan", shorttitle="Dipak Chavhan", overlay=true, pyramiding=0, default_qty_value=10)
Numbers = input(true)
SR = input(true)

var int TD = 0
var int TS = 0
var int TDUp = 0
var int TDDn = 0

TD := close > close[4] ? TD[1] + 1 : 0
TS := close < close[4] ? TS[1] + 1 : 0
TDUp := TD - valuewhen(TD < TD[1], TD, 1)
TDDn := TS - valuewhen(TS < TS[1], TS, 1)

plotshape(Numbers ? (TDUp == 8 ? true : na) : na, style=shape.triangleup, text="8", color=color.new(color.green, 0), location=location.belowbar)
plotshape(Numbers ? (TDUp == 9 ? true : na) : na, style=shape.triangleup, text="9", color=color.new(color.green, 0), location=location.belowbar)
plotshape(Numbers ? (TDDn == 8 ? true : na) : na, style=shape.triangledown, text="8", color=color.new(color.red, 0), location=location.abovebar)
plotshape(Numbers ? (TDDn == 9 ? true : na) : na, style=shape.triangledown, text="9", color=color.new(color.red, 0), location=location.abovebar)

priceflip = barssince(close < close[4])
sellsetup = close > close[4] and priceflip
sell = sellsetup and barssince(priceflip != 9)
sellovershoot = sellsetup and barssince(priceflip != 13)
sellovershoot1 = sellsetup and barssince(priceflip != 14)
sellovershoot2 = sellsetup and barssince(priceflip != 15)
sellovershoot3 = sellsetup and barssince(priceflip != 16)
priceflip1 = barssince(close > close[4])
buysetup = close < close[4] and priceflip1
buy = buysetup and barssince(priceflip1 != 9)
buyovershoot = buysetup and barssince(priceflip1 != 13)
buyovershoot1 = buysetup and barssince(priceflip1 != 14)
buyovershoot2 = buysetup and barssince(priceflip1 != 15)
buyovershoot3 = buysetup and barssince(priceflip1 != 16)
TDbuyh = valuewhen(buy, high, 0)
TDbuyl = valuewhen(buy, low, 0)
TDsellh = valuewhen(sell, high, 0)
TDselll = valuewhen(sell, low, 0)
plot(SR ? (TDbuyh ? TDbuyl : na) : na, style=plot.style_circles, linewidth=2, color=color.red)
plot(SR ? (TDselll ? TDsellh : na) : na, style=plot.style_circles, linewidth=2, color=color.lime)

sma1 = sma(close, 10)
sma2 = sma(close, 20)



if TDbuyh
    strategy.entry("Enter Long", strategy.long)
else if TDselll
    strategy.entry("Enter Short", strategy.short)

もっと