Hull MAチャネルと線形回帰スウィング・トレーディング戦略

作者: リン・ハーンチャオチャン, 日付: 2023-12-01 16:47:01
タグ:

img

概要

このスウィング・トレーディング戦略は,ハルMA,価格チャネル,EMA信号と線形回帰を組み合わせたものです.ハルMAを使用して市場傾向の方向性,価格チャネル,線形回帰を決定し,中期トレンドを把握するために,底面領域,EMA信号と市場エントリー時間を特定します.

戦略の論理

戦略は以下の主要指標からなる.

  1. ハルフMA
    • Hull MAの典型的な期間は337で,中期から長期間のトレンド方向を示しています
    • 18期間のWMAを2倍すると 337期間のWMAを超えると,それは牛市場です,そうでなければそれは熊市場です
  2. 価格チャネル
    • サポートとレジスタンスの領域を表す EMAの高値とEMA低値のチャネルグラフ
  3. EMA 信号
    • 典型的な期間は89年であり,短期的な傾向とエントリーシグナルを表しています.
  4. 線形回帰
    • 底辺と突破の6分の速行
    • 中期から長期間の傾向の89期間のスローライン

エントリー論理:

ロングエントリー: Hull MAが上向きで価格が上部帯以上,線形回帰が EMA信号を上向きに交差する ショートエントリー: Hull MAがダウンし,価格が下の帯を下回り,線形回帰が EMA信号をダウンする

出口論理:

ロング エクジット: 価格が下帯を下回り,線形回帰を横切る ショートアウト: 上部帯を超える価格と上部回帰を横切る

利点分析

この戦略には以下の利点があります.

  1. 複数の指標でより高い精度
    • 主なトレンドのHull MA,サポート/レジスタンスのチャネル,エントリーEMA
  2. 中期トレンドを把握するためのスウィング・トレード
    • 戦略 主に各中期サイクルを把握するために逆転
  3. 制御可能なリスクとより少ない利用率
    • シグナルは高確率領域で生成されます 追いかける高低殺し回避

リスク分析

リスクもあります:

  1. 制限された最適化空間
    • EMA期間のような主要なパラメータは,小さな最適化スペースで固定されています
  2. 範囲限定市場で損をする可能性がある
    • ストップ・ロスは横の範囲で起動する可能性があります.
  3. 技術的な分析の知識が必要です
    • 戦略の論理は,価格行動と指標の知識を必要とし,すべての人に適していません

改善:

  1. ストップ・ロスの戦略を調整する.例えば,ストップ・ロスの遅れ
  2. 入口と出口ロジックを最適化
  3. MACD のような他のフィルター指標を追加します.

概要

この戦略は,Hull MA,価格チャネル,EMAおよび線形回帰を組み合わせて,完全な中期スウィングトレーディング戦略を策定している.単一指標戦略と比較して,トレンドと逆転を把握する精度を大幅に向上させる.しかし,技術分析知識を必要とするリスクはまだ存在している.パラメータと論理のさらなる改善は安定性を高める.


/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Swing Hull/SonicR/EMA/Linear Regression Strategy", overlay=true)
//Hull MA
n=input(title="HullMA Period",defval=377)
//
n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))
//
n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))
//
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
condDown = n2 >= n1
condUp = condDown != true
col =condUp ? lime : condDown ? red : yellow
plot(n1,title="Hull MA", color=col,linewidth=3)
// SonicR + Line reg
EMA = input(defval=89, title="EMA Signal")
HiLoLen     = input(34, minval=2,title="High Low channel Length")
lr     = input(89, minval=2,title="Linear Regression Length")
pacC        = ema(close,HiLoLen)
pacL        = ema(low,HiLoLen)
pacH        = ema(high,HiLoLen)
DODGERBLUE = #1E90FFFF
// Plot the Price Action Channel (PAC) base on EMA high,low and close//
L=plot(pacL, color=DODGERBLUE, linewidth=1, title="High PAC EMA",transp=90)
H=plot(pacH, color=DODGERBLUE, linewidth=1, title="Low PAC EMA",transp=90)
C=plot(pacC, color=DODGERBLUE, linewidth=2, title="Close PAC EMA",transp=80)
//Moving Average//
signalMA =ema(close,EMA)
plot(signalMA,title="EMA Signal",color=black,linewidth=3,style=line)
linereg = linreg(close, lr, 0)
lineregf = linreg(close, HiLoLen, 0)
cline=linereg>linereg[1]?green:red
cline2= lineregf>lineregf[1]?green:red
plot(linereg, color = cline, title = "Linear Regression Curve Slow", style = line, linewidth = 1)
//plot(lineregf, color = cline2, title = "Linear Regression Curve Fast", style = line, linewidth = 1)
longCondition = n1>n2
shortCondition = longCondition != true
closeLong =  lineregf-pacH>(pacH-pacL)*2 and close<lineregf and linereg>signalMA
closeShort = pacL-lineregf>(pacH-pacL)*2 and close>lineregf and linereg<signalMA
if shortCondition    
    if (close[0] < signalMA[0] and close[1] > pacL[1] and linereg>pacL and close<n1 and pacL<n1) //cross entry
        strategy.entry("SHORT", strategy.short, comment="Short")
strategy.close("SHORT", when=closeShort) //output logic
if longCondition // swing condition          
    if (close[0] > signalMA[0] and close[1] < pacH[1] and linereg<pacH and close>n1 and pacH>n1) //cross entry
        strategy.entry("LONG", strategy.long, comment="Long")
strategy.close("LONG", when=closeLong) //output logic


もっと