
빠른 평균이 느린 평균을 가로지르면 가격이 상승할 수 있으며, 빠른 이동 평균이 느린 이동 평균을 가로지르면 가격이 떨어질 수 있습니다. 이것은 미래의 가격 행동을 예측하는 지표로 사용될 수 있습니다.
이 전략은 두 가지 이동 평균을 사용한다. 빠른 이동 평균의 길이는 기본 25주기, 느린 이동 평균의 길이는 기본 62주기이다. 전략은 SMA, EMA, WMA, RMA 및 VWMA를 포함한 다양한 유형의 이동 평균을 선택할 수 있다.
빠른 이동 평균이 아래에서 느린 이동 평균을 통과 할 때, 단기 가격이 장기 가격을 돌파하기 시작한다는 것을 나타냅니다. 전형적인 황금 교차 신호에 속하며, 가격이 상승 경로로 들어갈 수 있음을 나타냅니다. 이 때 전략은 더 많이합니다.
이렇게 하면, 속속 평균선의 교차를 통해 가격의 추세와 방향을 판단하고, 그에 따라 상장하거나 하락하여 수익을 얻을 수 있다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
전체적으로 보면, 이 전략은 급속한 평균선 교차를 핵심 거래 신호로 삼고, 가격의 미래 경향을 판단하는 능력이 강하며, 트렌드 추적의 장점을 바탕으로 좋은 수익을 얻을 수 있으며, 실전 적용에 가치가 있다.
이 전략에는 몇 가지 잠재적인 위험도 있습니다.
이러한 위험은 다음과 같은 방법으로 통제되고 개선될 수 있습니다.
이 전략의 주요 최적화 방향은 다음과 같습니다.
빠른 평균선과 느린 평균선의 주기 선택: 현재 기본 변수가 최적이 아닐 수 있으며, 다른 주기 변수를 사용해 최적의 구성을 찾을 수 있습니다.
이동 평균 유형의 선택: 현재 여러 가지 이동 평균이 제공되어 특정 품종에 가장 적합한 유형을 테스트 할 수 있습니다.
다른 지표 또는 전략과 조합: 유동성 지표, 수량 지표 또는 트렌드 추적 전략과 조합하여 효과를 높일 수 있습니다.
매개 변수 적응 최적화: 평균 주기 매개 변수가 시장의 변동률과 유동성에 따라 자동으로 조정되어 안정성을 높인다.
AI 모델 보조: 기계 학습 알고리즘을 사용하여 대용량 데이터를 분석하여 최적의 거래 규칙을 자동으로 찾습니다.
이러한 최적화 수단으로 전략의 수익성과 안정성을 더욱 향상시킬 수 있을 것으로 기대된다.
빠른 느린 평균 선 교차 전략은 전체적으로 매우 실용적인 트렌드 추적 전략이다. 그것은 가격의 변화 법칙을 파악하고, 빠른 평균 선을 뚫고 느린 평균 선을 통해 가격의 가능한 미래 트렌드 및 방향을 판단한다. 전략 아이디어는 간단하고 명확하며, 이해하기 쉽고 구현할 수 있으며, 매개 변수는 사용자 정의 할 수 있으며, 신뢰성이 높고, 자동화도가 높으며, 적용 범위가 넓고 확장성이 강하다. 물론, 약간의 잘못된 리포트 위험이 있으며, 다른 지표 구성 요소와 결합하여 최대한의 효과를 발휘해야합니다. 지속적인 테스트와 최적화를 통해이 전략은 실물에서 좋은 안정적인 수익을 얻을 수 있습니다.
/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//Author @divonn1994
initial_balance = 100
strategy(title='Fast v Slow Moving Averages Strategy', shorttitle = 'Fast v Slow', overlay=true, pyramiding=0, default_qty_value=100, default_qty_type=strategy.percent_of_equity, precision=7, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent, initial_capital=initial_balance)
//Input for number of bars for moving average, Switch to choose moving average type, Display Options and Time Frame of trading----------------------------------------------------------------
fastBars = input.int(25, "Fast moving average length", minval=1)
slowBars = input.int(62, "Slow moving average length", minval=1)
strategy = input.string("EMA", "MA type", options = ["EMA", "VWMA", "SMA", "RMA", "WMA"])
redOn = input.string("On", "Red Background Color On/Off", options = ["On", "Off"], group='Display')
greenOn = input.string("On", "Green Background Color On/Off", options = ["On", "Off"], group='Display')
maOn = input.string("On", "Moving Average Plot On/Off", options = ["On", "Off"], group='Display')
startMonth = input.int(title='Start Month 1-12 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=12, group='Beginning of Strategy')
startDate = input.int(title='Start Date 1-31 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=31, group='Beginning of Strategy')
startYear = input.int(title='Start Year 2000-2100 (set any start time to 0 for furthest date)', defval=2011, minval=2000, maxval=2100, group='Beginning of Strategy')
endMonth = input.int(title='End Month 1-12 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=12, group='End of Strategy')
endDate = input.int(title='End Date 1-31 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=31, group='End of Strategy')
endYear = input.int(title='End Year 2000-2100 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=2100, group='End of Strategy')
//Strategy Calculations-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
inDateRange = true
maMomentum = switch strategy
"EMA" => (ta.ema(close, fastBars) >= ta.ema(close, slowBars)) ? 1 : -1
"SMA" => (ta.sma(close, fastBars) >= ta.sma(close, slowBars)) ? 1 : -1
"RMA" => (ta.rma(close, fastBars) >= ta.rma(close, slowBars)) ? 1 : -1
"WMA" => (ta.wma(close, fastBars) >= ta.wma(close, slowBars)) ? 1 : -1
"VWMA" => (ta.vwma(close, fastBars) >= ta.vwma(close, slowBars)) ? 1 : -1
=>
runtime.error("No matching MA type found.")
float(na)
fastMA = switch strategy
"EMA" => ta.ema(close, fastBars)
"SMA" => ta.sma(close, fastBars)
"RMA" => ta.rma(close, fastBars)
"WMA" => ta.wma(close, fastBars)
"VWMA" => ta.vwma(close, fastBars)
=>
runtime.error("No matching MA type found.")
float(na)
slowMA = switch strategy
"EMA" => ta.ema(close, slowBars)
"SMA" => ta.sma(close, slowBars)
"RMA" => ta.rma(close, slowBars)
"WMA" => ta.wma(close, slowBars)
"VWMA" => ta.vwma(close, slowBars)
=>
runtime.error("No matching MA type found.")
float(na)
//Enter or Exit Positions--------------------------------------------------------------------------------------------------------------------------------------------------------------------
if ta.crossover(maMomentum, 0)
if inDateRange
strategy.entry('long', strategy.long, comment='long')
if ta.crossunder(maMomentum, 0)
if inDateRange
strategy.close('long')
//Plot Strategy Behavior---------------------------------------------------------------------------------------------------------------------------------------------------------------------
plot(series = maOn == "On" ? fastMA : na, title = "Fast Moving Average", color = color.new(color.white,0), linewidth=2, offset=1)
plot(series = maOn == "On" ? slowMA : na, title = "Slow Moving Average", color = color.new(color.purple,0), linewidth=3, offset=1)
bgcolor(color = inDateRange and (greenOn == "On") and maMomentum > 0 ? color.new(color.green,75) : inDateRange and (redOn == "On") and maMomentum <= 0 ? color.new(color.red,75) : na, offset=1)