모바일 베가스 채널 크로싱 전략


생성 날짜: 2024-01-02 10:53:06 마지막으로 수정됨: 2024-01-02 10:53:06
복사: 0 클릭수: 1205
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

모바일 베가스 채널 크로싱 전략

이 전략의 핵심 아이디어는 EMA 36,143,169와 같은 다양한 주기의 평균선에 따라 주식의 단기 및 장기 트렌드 방향을 판단하여 MACD 지표와 결합하여 매매 신호를 발산하는 것입니다. 구체적으로, 단기 기간은 5, 10 일 EMA로 판단하고, 중기 기간은 20, 60 일 EMA로 판단하고, 장기 기간은 120, 250 일 EMA로 판단하여, 단기 EMA를 통과 할 때 더 많이보고, 더 많이보고; MACD의 공평한 지표와 결합하여 매매 기회를 판단합니다.

베가스 터널 전략의 구체적인 원칙:

  1. EMA36과 EMA43을 사용하여 단기 트렌드 판단을 하고, 빨간 채널을 구성합니다.
  2. EMA144와 EMA169를 사용하여 중기 경향 판단을 구성하고 녹색 통로를 구성합니다.
  3. EMA576과 EMA676을 사용하여 회색 통로를 구성하는 장기 추세 판단을 수행합니다.
  4. 가격이 각 EMA의 평행선에 서면 더 많이 할 수 있으며 MACD 지표와 함께 0 축을 상향으로 돌파하여 구매 신호를 발산합니다.
  5. 가격이 각 EMA 평균선 아래로 떨어지면 공백을 할 수 있으며, MACD 지표와 함께 아래로 돌파 0 축을 통해 판매 신호를 낸다.
  6. EMA 평균선 사이클을 가로질러 각각 다른 포지션 사이클에 대응하는 짧은, 중장기 세 가지 거래 전략으로 나다.

이 전략의 장점은 다음과 같습니다.

  1. 동시, 짧은, 중간, 긴 세 개의 통로를 결합하여 트렌드 방향을 판단하는 것은 비교적 안정적입니다.
  2. 베가스 채널은 명확하고 직관적이며, 트렌드를 쉽게 판단할 수 있습니다.
  3. MACD 지표와 결합하면 매매 시기를 파악할 수 있다.
  4. 3가지 전략으로 구성되어 있어 보다 유연하게 운영할 수 있습니다.

이 전략의 주요 위험은:

  1. 주가가 급격하게 변동할 때 EMA 평균이 지연되어 판단 오류가 발생할 가능성이 높습니다.
  2. 세 통로 판단이 일치하지 않을 때, 잘못된 조작의 위험이 있습니다.
  3. 시간표를 조작하는 것은 강한 심리적 용기가 필요합니다.

어떻게 대처해야 할까요?

  1. 현재 시장 특성에 더 잘 맞게 EMA의 평균 주기를 적절하게 조정할 수 있습니다.
  2. 거래 전 지분 비율을 조정하여 단편 손실을 제어하십시오.

이 전략의 최적화 공간은:

  1. 베가스 통로 구분 트렌드 판단은 충분하지 않으며, 부린 통로 보조 판단을 도입할 수 있다.
  2. MACD 지표는 간격적인 변동상태에 효과가 좋지 않아 KD, RSI 등의 지표로 대체할 수 있다.
  3. 클로즈오프가 핵심 EMA를 넘으면 적극적으로 중지하는 것과 같은 손실을 막는 전략을 추가하십시오.
  4. A 주식의 하락이 큰 영향을 미치므로, ETF 상쇄를 고려할 수 있다.
전략 소스 코드
/*backtest
start: 2022-12-26 00:00:00
end: 2024-01-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy("Vegas Tunnel strategy", overlay=true)
//-------------------------------------------
//-------------------------------------------
// Inputs
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above", type=input.resolution, defval="D")
//tfSet = input(title = "Time Frame", options=["Current","120", "240", "D", "W"], defval="D")
tfSet = useCurrentRes ? timeframe.period : resCustom
maPeriods2 = input(12, "12 EMA")
maPeriods6 = input(240, "240 SMA")
BBlength = input(20, title="BB Length", minval=1)
BBsrc = input(close, title="BB Source")
mult = input(2.0, minval=0.001, maxval=50, title="BB StdDev")
sm2 = security(syminfo.tickerid, tfSet, ema(close, maPeriods2))
sm6 = security(syminfo.tickerid, tfSet, sma(close, maPeriods6))
p2 = plot(sm2, color=color.green, transp=30,  linewidth=2, title="SMA2")
p6 = plot(sm6, color=color.white, transp=30,  linewidth=2, title="SMA6")
//BB
basis = sma(BBsrc, BBlength)
dev = mult * stdev(BBsrc, BBlength)
upper = basis + dev
lower = basis - dev
offset = input(0, "BB Offset", type = input.integer, minval = -500, maxval = 500)
//plot(basis, "Basis", color=color.blue,linewidth, offset = offset)
pBB1 = plot(upper, "Upper", color=color.blue, offset = offset)
pBB2= plot(lower, "Lower", color=color.blue, offset = offset)

//MACD
fast_ma = ema(close, 48)
slow_ma = ema(close, 56)
macd = fast_ma - slow_ma

//vagas隧道
f1=ema(close, 36)
f2=ema(close, 43)
f3=ema(close, 144)
f4=ema(close, 169)
f5=ema(close, 576)
f6=ema(close, 676)
f7=ema(close,2304)
z1=plot(f1,color=color.red, title="ema36",transp=100)
z2=plot(f2,color=color.red, title="ema43",transp=100)
z3=plot(f3,color=color.green, title="ema144",transp=100)
z4=plot(f4,color=color.green, title="ema169",transp=100)
z5=plot(f5,color=color.white, title="ema576",transp=100)
z6=plot(f6,color=color.white, title="ema676",transp=100)
fill(z1, z2, color=color.red,transp=60)
fill(z3, z4, color=color.green,transp=60)
fill(z5, z6, color=color.gray,transp=60)

// Make input options that configure backtest date range
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
     defval=2018, minval=1800, maxval=2100)
endDate = input(title="End Date", type=input.integer,
     defval=1, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer,
     defval=11, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer,
     defval=2030, minval=1800, maxval=2100)
// Look if the close time of the current bar
// falls inside the date range
inDateRange =  true

//波段多
if (inDateRange and crossunder(f3,f1))// 
    strategy.entry("buy", strategy.long,1, when=macd>0, comment = "買Long-term")
buyclose=crossunder(f3,f5) 
strategy.close("buy", when = buyclose, comment = "關Long-term")
//多策略1
if (inDateRange and crossover(low , f3) and macd>0 and f3>f6)
    strategy.entry("buy1", strategy.long,100, comment = "買Mid-term")
buyclose1=crossunder(close,upper*0.999) 
if (macd<0 or f3<f6)
    strategy.close("buy1", comment = "關Mid-term")
//strategy.close("buy1",when=cross(basis,close), comment = "關M",qty_percent=50)
strategy.close("buy1", when = buyclose1, comment = "關Mid-term",qty_percent=100)
//多策略3
if (inDateRange and  (macd>0) and crossunder(low,f1) and f1>f4) // 
    strategy.entry("buy3", strategy.long,1, comment = "買Short-term")
buyclose3=crossunder(close,upper*0.999)
if (macd<0 or f1<f4)
    strategy.close("buy3", comment = "關Short-term")
strategy.close("buy3", when = buyclose3, comment = "關Short-term")
//多策略4
if (inDateRange and  (macd>0) and crossunder(low,f5) and f4>f5) // 
    strategy.entry("buy4", strategy.long,1, comment = "買Long-term")
buyclose4=crossunder(close,upper*0.999)
if (macd<0 or f4<f6)
    strategy.close("buy4", comment = "關Long-term")
strategy.close("buy4", when = buyclose4, comment = "關Long-term")
    
//空策略1
if (inDateRange and  (macd<0) and crossunder(high,f1) and f1<f3 and f3<f6) // 
    strategy.entry("sell1", strategy.short,1, comment = "空Short-term")
sellclose1=crossunder(lower*0.999,close)
if (macd>0 or f1>f4)
    strategy.close("sell1", comment = "關空Short-term")
strategy.close("sell1", when = sellclose1, comment = "關空Short-term")
//空策略2
if (inDateRange and  (macd<0) and crossunder(high,f4) and f4<f6) // 
    strategy.entry("sell2", strategy.short,1, comment = "空Mid-term")
sellclose2=crossunder(lower,close)
if (macd>0 or f4>f6)
    strategy.close("sell2", comment = "關空Mid-term")
strategy.close("sell2", when = sellclose2, comment = "關Mid-term")
//空策略3
if (inDateRange and (macd<0) and crossunder(high,f6)) // 
    strategy.entry("sell3", strategy.short,1, comment = "空Long-term")
sellclose3=crossunder(lower,close)
if (macd>0 or f6>f7)
    strategy.close("sell3", comment = "關空Long-term")
strategy.close("sell3", when = sellclose3, comment = "關空Long-term")