이동 평균 트렌드 추적 전략은 간단한 이동 평균과 빠른 이동 평균의 조합을 사용하여 시장의 경향 방향을 판단하여 거래 신호를 생성합니다. 가격이 간단한 이동 평균과 빠른 이동 평균을 통과할 때 더 많이하고, 가격이 간단한 이동 평균과 빠른 이동 평균을 통과할 때 비로소됩니다. 이 전략은 역으로 역전 없이 최적화되고 실시간 거래 신호를 통해 트렌드의 변화를 잡을 수 있습니다.
이 전략은 스마 함수를 사용하여 50주기 길이의 간단한 이동 평균 스마를 계산하고, 빠른 이동 평균 fsma. fsma의 계산은 스마의 기초에 가격의 n주기 표준 차이의 6배를 더하는 것이다.
전략은 두 개의 볼리안 변수 long와 short를 사용하여 장점과 단점을 기록한다. 가격이 스마와 fsma를 상회할 때, long는 1로 설정되어 장점; 가격이 하락할 때, long는 1로 설정되어 평점이다. 짧은 변수도 이와 유사한 논리를 사용하여 단점을 처리한다.
전략은 트렌드 변수를 사용하여 트렌드 판단을 기록한다. 가격이 fsma와 sma보다 높을 때, 트렌드는 1로 상승하는 경향을 나타냅니다. 가격이 fsma와 sma보다 낮을 때, 트렌드는 -1으로 하락하는 경향을 나타냅니다.
트렌드의 실시간 판단에 따라, 장단과 단 단 단 거래 신호를 생성한다. 트렌드가 하향에서 상향으로 전환하면, 가격이 fsma보다 높으면 더 많이 한다. 트렌드가 상향에서 하향으로 전환하면, 가격이 sma보다 낮으면 공백한다.
이 전략은 트렌드 판단과 거래의 돌파구를 고려하여 트렌드 전환으로 인한 거래 기회를 효과적으로 포착합니다.
이중 확인 모형을 사용하여 두 개의 이동 평균을 동시에 검출하여 가짜 돌파구를 효과적으로 필터링 할 수 있습니다.
트렌드 판단과 브레이크 트레이드를 결합하면 트렌드 전환점에서 기회를 잡을 수 있습니다.
모든 거래 신호가 실시간으로 생성되고, 곡선 조정이 없습니다.
전략적 논리는 간단하고 명확하며, 이해하기 쉽고 수정하기 쉽습니다.
시각화 구성 매개 변수, 길이 주기, 배수 등은 시장에 따라 조정할 수 있다.
이중 일률 전략은 빈번한 거래와 역 손실을 초래할 수 있다.
이동 평균 자체의 지연적 효과는 트렌드 전환을 놓칠 수 있다.
단편적 손실을 통제할 수 없는 막부장치
매개 변수가 적절하지 않으면 거래가 너무 빈번하거나 너무 늦어질 수 있습니다.
위험 1과 2에 대해, 적당히 평균선 주기를 연장하고, 회수 스톱을 추가할 수 있다.
리스크 3에 대해, 백분율 중지 또는 단축 중지 설정할 수 있습니다.
위험 4에 대해, 단일 고정 파라미터를 피하여, 다른 시장에 대한 파라미터를 조정해야합니다.
트렌드 필터링 조건을 추가하고 MACD, DMI 등의 지표로 트렌드를 확인한다.
KD, RSI 등의 지표와 함께 오버 바이 오버 셀드 상황을 이용해서 입점한다.
전체적인 중지 메커니즘을 추가합니다. 예를 들어, 추적 중지, 손실 비율 중지 등.
포지션 크기를 동적으로 조정하는 것과 같은 포지션 관리 모듈을 추가합니다.
다른 상황 주기들에 보다 효율적으로 적응할 수 있도록 파라미터 설정을 최적화한다.
기계 학습 모듈을 추가하여 AI 기술을 사용하여 매개 변수를 자동으로 최적화하십시오.
복합적인 전략을 수립하고, 다른 지표들을 이용해 가짜 돌파구를 만들 수 있다.
더 복잡한 트렌드 패턴을 인식하기 위해 딥러닝 기술을 활용한다.
이동 평균 트렌드 추적 전략은 전체적으로 비교적 간단한 트렌드 추적 전략이다. 그것은 빠른 느린 평균 선의 조합을 사용하여 트렌드 방향을 결정하고, 트렌드 전환점에서 트렌드 변경을 수행하여 가격 트렌드의 전환을 효과적으로 포착할 수 있다. 그러나 이 전략에는 빈번한 거래, 지연 등의 위험과 같은 몇 가지 문제도 있다.
/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("SMA STRATEGY", shorttitle="SMA TREND", overlay=true, calc_on_order_fills=true)
length = input(title="Length", type=input.integer, defval=50)
src_=input(close, title="Source", type=input.source)
mult=input(6.0, title="Mult")
barc=input(true, title="Use barcolor?")
plots=input(false, title="Show plots?")
tri=input(false, title="Use triangles?")
r(src, n)=>
s = 0.0
for i = 0 to n-1
s := s + ((n-(i*2+1))/2)*src[i]
x=s/(n*(n+1))
x
l=sma(low, length)
h=sma(high, length)
lr= l+mult*r(low, length)
hr= h+mult*r(high, length)
trend=0
trend:=src_ > lr and src_ > hr ? 1 : src_ < lr and src_ < hr ? -1 : trend[1]
strategy.close("Long", when=trend==-1)
strategy.close("Short", when=trend==1)
strategy.entry("Long", strategy.long, when=trend==1 and src_>h)
strategy.entry("Short", strategy.short, when=trend==-1 and src_<l)
long=0
short=0
long:= trend==1 and src_>h ? 1 : trend==-1 ? -1 : long[1]
short:= trend==-1 and src_<l ? 1 : trend==1 ? -1 : short[1]
barcolor(barc? (long>0? color.green : short>0? color.red : trend>0? color.orange: trend<0 ? color.white : color.blue) : na)
plotshape(tri? close : na, style= shape.diamond, color= long>0? color.green : short>0? color.red : trend>0? color.orange: trend<0 ? color.white : color.blue, location=location.top)
//shortenter=
a1=plot(plots? l : na, color=color.blue, linewidth=1)
//longenter=
a2=plot(plots? h : na, color=color.blue, linewidth=1)
fill(a1, a2, color=color.blue)
//stopshort=
b1=plot(plots? hr : na, color=color.navy, linewidth=1)
//stoplong=
b2=plot(plots? lr : na, color=color.navy, linewidth=1)
fill(b1, b2, color=color.navy)