SonicR 이동 평균 채널 돌파 전략


생성 날짜: 2023-09-12 15:09:57 마지막으로 수정됨: 2023-09-12 15:09:57
복사: 2 클릭수: 713
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이 전략은 SonicR 시스템의 개념에 기반하여, 일률 채널을 통해 트렌드 방향을 인식하고, 통로가 뚫렸을 때 진입하여, 트렌드 추적 작업을 구현한다. 이 전략은 일률 채널과 모바일 일률 지표를 결합하여, 기계화된 트렌드 거래를 한다.

전략적 원칙:

  1. 평균선 통로를 계산하고, 통로의 중축은 종점값의 평균선이며, 통로의 상반도 및 하반도 각각은 높은 점과 낮은 점의 평균선이다.

  2. 더 긴 주기 이동 평균을 계산하여 거래 신호 라인으로 사용한다.

  3. 마감값이 아래에서 위로 신호선을 돌파했을 때, 더 많은 작업을 수행한다.

  4. 마감 가격이 위아래로 시그널 라인을 돌파했을 때, 하위 작업을 수행한다.

  5. 통로를 사용하여 통로를 시각적으로 표현하기 위해 통로를 채우십시오.

이 전략의 장점:

  1. 평행 경로는 가격의 추세와 돌파구를 명확하게 판단할 수 있다.

  2. 이동 평균은 단기시장 소음을 필터링합니다.

  3. 전략은 간단하고, 감정적인 영향을 미치지 않도록 해야 합니다.

이 전략의 위험은:

  1. 평균자책점과 이동 평균자책점에는 지연이 존재하며, 가장 좋은 진입점을 놓칠 수 있다.

  2. 너무 많은 무효 신호가 발생하지 않도록 파라미터를 최적화해야 합니다.

  3. 기계적 거래 전략의 철회율이 높고, 자금 관리가 필요합니다.

요약하자면, 이 전략은 SonicR의 철학에 기반하여, 일률적인 통로 방향을 식별하고, 기계화된 돌파구 거래를 수행한다. 간단한 규칙은 체계화된 거래를 유도하지만, 장기적인 수익을 안정적으로 얻기 위해 최적화 및 위험 관리에 주의를 기울여야 한다.

전략 소스 코드
/*backtest
start: 2022-09-11 00:00:00
end: 2022-11-12 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//Sonic R
// strategy("SonicR",shorttitle="Sonic R",overlay=true,default_qty_value=10000,initial_capital=1000,currency=currency.USD)
EMA = input(defval=89, title="EMA Signal")
HiLoLen     = input(34, minval=2,title="High Low channel 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=50)
H=plot(pacH, color=DODGERBLUE, linewidth=1, title="Low PAC EMA",transp=50)
C=plot(pacC, color=DODGERBLUE, linewidth=2, title="Close PAC EMA",transp=0)
fill(L,H, color=aqua,transp=90,title="Fill HiLo PAC")
//Moving Average
signalMA =ema(close,EMA)
plot(signalMA,title="EMA Signal",color=white,linewidth=4,style=line)
//Strategy
goLong() => crossover(pacC,signalMA)
strategy.entry(id = "Go to Buy", long = true, when = goLong())
goShort() => crossunder(pacC,signalMA)
strategy.entry(id = "Go to Sell", long = false, when = goShort())