듀얼 타임 프레임 슈퍼 트렌드 팔로잉 전략


생성 날짜: 2023-09-22 14:27:52 마지막으로 수정됨: 2023-09-22 14:27:52
복사: 1 클릭수: 760
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

이 전략은 쌍 시간 프레임의 초 트렌드 추적 전략이다. 이 전략은 동시에 두 개의 서로 다른 주기의 초 트렌드 지표를 적용한다. 하나는 주요 시간 프레임으로 트렌드 방향을 판단하고, 하나는 보조 시간 프레임으로 필터링한다. 두 시간 프레임의 초 트렌드 지표가 동시적으로 들어올 때만 트렌드 전환점을 더 정확하게 포착할 수 있다.

전략 원칙

이 전략의 핵심 지표는 슈퍼 트렌드 지표이다. 슈퍼 트렌드 지표는 가격 분산차를 계산하여 가격의 상대적인 트렌드 방향을 판단한다. 전략은 두 개의 시간 주기의 슈퍼 트렌드 지표를 사용하여 각각 메인 시간 프레임과 보조 시간 프레임의 슈퍼 트렌드 라인을 계산한다.

거래 논리는 다음과 같습니다.

  1. 메인 타임 프레임의 트렌드 라인을 넘어가는 방향을 대 트렌드 방향으로 판단한다.

  2. 보조 시간 프레임 초 트렌드 라인이 위치 동방향 신호를 발산할 때 출입한다.

  3. Stop Loss Stop Stop을 설정합니다.

  4. 메인 타임 프레임 초 트렌드 라인이 다시 변할 때 평행한다.

이렇게 두 개의 주기 지표를 조합하여, 몇 가지 오차 신호를 필터링하여 진입을 더 정확하게 할 수 있습니다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 이 두 개의 시간 프레임의 조합은 트렌드를 더 정확하게 판단할 수 있습니다.

  2. 초트렌드 지표는 트렌드 변화에 민감하고, 입시 정확하다.

  3. 스탠드피드 지점을 설정하여 위험을 조절할 수 있다.

  4. 전략적 논리는 간단하고 직설적이며 이해하기 쉽다.

  5. 다양한 품종에 적응할 수 있도록 스스로 최적화할 수 있다.

위험 분석

이 전략의 주요 위험은 다음과 같습니다.

  1. 트렌드 이상 지표의 지연은 신호를 잘못 판단할 수 있다.

  2. 손해 차단 장치의 잘못된 설정은 과도한 추적이나 의도적인 손상을 초래할 수 있다.

  3. 이중 시간 프레임 포지션은 짧은 회귀 기회를 놓칠 수 있습니다.

  4. 변수 최적화는 역사적 데이터에 의존하며, 과대응의 위험이 존재한다.

  5. 거래 비용의 영향을 고려하지 않고

대응방법:

  1. 다른 지표 조합 검증을 도입하여 지표 파라미터를 적절하게 조정하십시오.

  2. 역학적 최적화 스톱 로드 위치

  3. 더 짧은 테스트 사이클을 보조 판단으로 사용한다.

  4. 데이터 재검토 범위를 확장하고, 다중 시장 재검토 검증을 실시한다.

  5. 거래비용은 수수료, 슬라이드 포인트 등으로 계산됩니다.

최적화 방향

이 전략은 다음과 같은 측면에서 더욱 개선될 수 있습니다.

  1. 더 많은 지표의 조합을 테스트하여 최적의 조합을 찾습니다.

  2. 기계 학습 방법을 도입하여 동적으로 최적화 매개 변수를 도입한다.

  3. 손실을 막는 전략을 최적화하고 수익/손실 비율을 개선한다.

  4. 여러 시간 주기의 조합 효과를 시도한다.

  5. 거래 수에 따라 스톱 스톱 손실 범위를 조정하십시오.

  6. 추가 수수료와 슬라이드 포인트의 계산 논리

  7. 그래픽 변수 최적화 도구를 개발한다.

요약하다

이 전략은 쌍 시간 프레임 초 트렌드 지표를 통해 보다 정확한 트렌드 판단과 엔트리를 구현한다. 스톱 로드 스 제어 위험을 설정한다. 전략 논리는 간단하고 명확하며 확장하기 쉬운 최적화이다. 후기에는 더 많은 지표, 동적 최적화 파라미터, 거래 비용 계산 등을 도입하여 전략을 더 안정적으로 개선 할 수 있다. 전체적으로 이 전략은 쌍 시간 프레임 트렌드 추적 방법을 제공하며 좋은 참고 가치를 가지고 있다.

전략 소스 코드
/*backtest
start: 2023-08-22 00:00:00
end: 2023-09-21 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Supertrend Strategy by breizh29 using *rajandran.r* Supertrend Indicator

// strategy("Super Trend 2", overlay=true, default_qty_value=100)
TrendUp = 0.0
TrendDown = 0.0
Trend = 0.0
MTrendUp = 0.0
MTrendDown = 0.0
MTrend = 0.0

res = input(title="Main SuperTrend Time Frame",  defval="120")
Factor=input(1, minval=1,maxval = 100)
Pd=input(1, minval=1,maxval = 100)

tp = input(500,title="Take Profit")
sl = input(400,title="Stop Loss")


Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
MUp=security(syminfo.tickerid,res,hl2-(Factor*atr(Pd)))
MDn=security(syminfo.tickerid,res,hl2+(Factor*atr(Pd)))

Mclose=security(syminfo.tickerid,res,close)

TrendUp:=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown:=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn

MTrendUp:=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp
MTrendDown:=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn

Trend := close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown

MTrend := Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1)
MTsl = MTrend==1? MTrendUp: MTrendDown

linecolor = Trend == 1 ? green : red
plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")

Mlinecolor = MTrend == 1 ? blue : orange
plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main SuperTrend")

plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)

up = Trend == 1 and Trend[1] == -1 and MTrend == 1 
down = Trend == -1 and Trend[1] == 1 and MTrend == -1 
plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)


golong = Trend == 1 and Trend[1] == -1 and MTrend == 1 
goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1 

strategy.entry("Buy", strategy.long,when=golong)
strategy.exit("Close Buy","Buy",profit=tp,loss=sl)
   
   
strategy.entry("Sell", strategy.short,when=goshort)
strategy.exit("Close Sell","Sell",profit=tp,loss=sl)