TDシーケンシャルブレイクアウトとリトレースメントに基づく買いポイントと売りポイント戦略


作成日: 2024-04-01 11:23:26 最終変更日: 2024-04-01 11:23:26
コピー: 3 クリック数: 755
1
フォロー
1617
フォロワー

TDシーケンシャルブレイクアウトとリトレースメントに基づく買いポイントと売りポイント戦略

概要

この戦略は,TD序列の突破と引き戻し買い売りポイント戦略である.これは,TD序列の8根と9根のK線を識別することによって,潜在的なトレンドの逆転点を決定する.同時に,この戦略は,TD序列の突破後の引き戻しを考慮して,エントリーポイントの精度を向上させる.さらに,この戦略は,移動平均をトレンド判断の補助ツールとして使用する.

戦略原則

  1. TD 序列を計算する.現在の閉店価格と4つのK線前の閉店価格を比較して,連続8つのK線または9つのK線が上昇 (下降) しているかどうかを判断する.
  2. 買賣点の特定:連続8つまたは9つのK線が上下する場合は,第8つまたは第9のK線で潜在的買賣点をマークします.
  3. 撤回を考慮する:TD列の突破後に価格が撤回したかどうかを観察する.13 ,14 ,15 ,または16根のK線で突破状態がまだ維持されている場合,突破は有効とみなされ,そうでない場合は無効の突破とみなされる.
  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)