이동평균 조합에 기초한 전략을 따르는 경향

저자:차오장2024-02-23 14:54:34
태그:

img

전반적인 설명

이 전략은 여러 개의 빠르고 느린 이동 평균의 조합을 계산하여 트렌드 방향을 식별합니다. 빠른 MAs가 느린 MAs보다 높을 때 구매 신호를 생성하고 빠른 MAs가 느린 MAs보다 낮을 때 판매 신호를 생성합니다.

전략 논리

  1. 3/6/9/12/15/18/21일 기간의 빠른 EMA의 7개의 그룹을 계산합니다.
  2. 24일, 27일, 30일, 200일 간격의 느린 EMA의 14개의 그룹을 계산합니다.
  3. 빠른 EMA에 대한 색상 규칙을 설정하십시오: 6MA 위의 3MA는 상승 추세 (aqua), 아래는 하락 추세 (오렌지).
  4. 느린 EMA에 대한 색상 규칙을 설정하십시오: 25MA 이상의 24MA는 상승 추세 (화화), 아래는 하락 추세 (붉은).
  5. 빠른 EMA 그룹이 느린 EMA 그룹을 넘을 때, 상승 추세를 나타내는 구매 신호를 생성합니다.
  6. 빠른 EMA 그룹이 느린 EMA 그룹 아래로 넘어가면 하락 추세를 나타내는 판매 신호를 생성합니다.

빠른 및 느린 MAs를 결합함으로써 위치 추적의 중장기 트렌드의 변화를 효과적으로 식별 할 수 있습니다.

장점

  1. 빠르고 느린 MAs가 결합되면 트렌드 변화를 강력하게 식별 할 수 있습니다. 빠른 MAs는 단기 트렌드를 캡처하고 느린 MAs는 통합을 필터합니다.
  2. 여러 MA를 결합하면 더 명확하고 신뢰할 수있는 신호를 제공하여 잘못된 신호를 피할 수 있습니다.
  3. 다양한 EMA 기간을 사용하여 유연한 운영 주기가 가능합니다.
  4. 긴 포지션 추적은 대부분의 개인 펀드 운영 방식에 적합합니다.

위험성

  1. 너무 오래 포지션을 보유하면 단기 거래 기회를 놓칠 수 있습니다.
  2. EMA 조합은 급격한 가격 변동을 잡기 위해 적합하지 않습니다.
  3. 부적절한 매개 변수 설정으로 인해 신호가 너무 자주 또는 보수적일 수 있습니다. 매개 변수 테스트 및 실시간 검증이 권장됩니다.

최적화 제안

  1. 더 빠른 EMA를 추가하여 단기 동향에 대한 판단을 개선합니다.
  2. 중장기 동향에 대한 판단을 개선하기 위해 더 느린 EMA를 추가하십시오.
  3. 거짓 신호를 줄이기 위해 MA 신호 확인을 추가합니다.
  4. 부피 분석을 포함하여 다양한 시장에서 잘못된 파장을 피합니다.

요약

이 전략은 빠른 및 느린 MA 시스템을 구축하여 중장기 트렌드 변화를 식별합니다. 이는 전형적인 추적 위치 전략입니다. 매개 변수 선택 및 신호 필터링에 최적화 할 여지가 여전히 많습니다. 투자자는 다른 시장 조건에 적응하도록 조정할 수 있습니다.


/*backtest
start: 2023-02-16 00:00:00
end: 2024-02-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("CM Super Guppy ala WY", pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=99, overlay=true)


///////////////////////////////////////////////
//* Backtesting Period Selector | Component *//
///////////////////////////////////////////////

//* https://www.tradingview.com/script/eCC1cvxQ-Backtesting-Period-Selector-Component *//
//* https://www.tradingview.com/u/pbergden/ *//
//* Modifications made *//

testStartYear = input(2017, "Backtest Start Year") 
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(3, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => true

///////////////////////////////////////////////

src = close, 
len1 = input(3, minval=1, title="Fast EMA 1")
len2 = input(6, minval=1, title="Fast EMA 2")
len3 = input(9, minval=1, title="Fast EMA 3")
len4 = input(12, minval=1, title="Fast EMA 4")
len5 = input(15, minval=1, title="Fast EMA 5")
len6 = input(18, minval=1, title="Fast EMA 6")
len7 = input(21, minval=1, title="Fast EMA 7")
//Slow EMA
len8 = input(24, minval=1, title="Slow EMA 8")
len9 = input(27, minval=1, title="Slow EMA 9")
len10 = input(30, minval=1, title="Slow EMA 10")
len11 = input(33, minval=1, title="Slow EMA 11")
len12 = input(36, minval=1, title="Slow EMA 12")
len13 = input(39, minval=1, title="Slow EMA 13")
len14 = input(42, minval=1, title="Slow EMA 14")
len15 = input(45, minval=1, title="Slow EMA 15")
len16 = input(48, minval=1, title="Slow EMA 16")
len17 = input(51, minval=1, title="Slow EMA 17")
len18 = input(54, minval=1, title="Slow EMA 18")
len19 = input(57, minval=1, title="Slow EMA 19")
len20 = input(60, minval=1, title="Slow EMA 20")
len21 = input(63, minval=1, title="Slow EMA 21")
len22 = input(66, minval=1, title="Slow EMA 22")
len23 = input(200, minval=1, title="EMA 200")

//Fast EMA
ema1 = ema(src, len1)
ema2 = ema(src, len2)
ema3 = ema(src, len3)
ema4 = ema(src, len4)
ema5 = ema(src, len5)
ema6 = ema(src, len6)
ema7 = ema(src, len7)

//Slow EMA
ema8 = ema(src, len8)
ema9 = ema(src, len9)
ema10 = ema(src, len10)
ema11 = ema(src, len11)
ema12 = ema(src, len12)
ema13 = ema(src, len13)
ema14 = ema(src, len14)
ema15 = ema(src, len15)
ema16 = ema(src, len16)
ema17 = ema(src, len17)
ema18 = ema(src, len18)
ema19 = ema(src, len19)
ema20 = ema(src, len20)
ema21 = ema(src, len21)
ema22 = ema(src, len22)

//EMA 200
ema23 = ema(src, len23)

//Fast EMA Color Rules
colfastL = (ema1 > ema2 and ema2 > ema3 and ema3 > ema4 and ema4 > ema5 and ema5 > ema6 and ema6 > ema7)
colfastS = (ema1 < ema2 and ema2 < ema3 and ema3 < ema4 and ema4 < ema5 and ema5 < ema6 and ema6 < ema7)
//Slow EMA Color Rules
colslowL = ema8 > ema9 and ema9 > ema10 and ema10 > ema11 and ema11 > ema12 and ema12 > ema13 and ema13 > ema14 and ema14 > ema15 and ema15 > ema16 and ema16 > ema17 and ema17 > ema18 and ema18 > ema19 and ema19 > ema20 and ema20 > ema21 and ema21 > ema22
colslowS = ema8 < ema9 and ema9 < ema10 and ema10 < ema11 and ema11 < ema12 and ema12 < ema13 and ema13 < ema14 and ema14 < ema15 and ema15 < ema16 and ema16 < ema17 and ema17 < ema18 and ema18 < ema19 and ema19 < ema20 and ema20 < ema21 and ema21 < ema22 
//Fast EMA Final Color Rules
colFinal = colfastL and colslowL? aqua : colfastS and colslowS? orange : gray
//Slow EMA Final Color Rules
colFinal2 = colslowL  ? lime : colslowS ? red : gray
//Fast EMA Plots
p1=plot(ema1, title="Fast EMA 1", style=line, linewidth=2, color=colFinal)
plot(ema2, title="Fast EMA 2", style=line, linewidth=1, color=colFinal)
plot(ema3, title="Fast EMA 3", style=line, linewidth=1, color=colFinal)
plot(ema4, title="Fast EMA 4", style=line, linewidth=1, color=colFinal)
plot(ema5, title="Fast EMA 5", style=line, linewidth=1, color=colFinal)
plot(ema6, title="Fast EMA 6", style=line, linewidth=1, color=colFinal)
p2=plot(ema7, title="Fast EMA 7", style=line, linewidth=2, color=colFinal)

//Slow EMA Plots
p3=plot(ema8, title="Slow EMA 8", style=line, linewidth=1, color=colFinal2)
plot(ema9, title="Slow EMA 9", style=line, linewidth=1, color=colFinal2)
plot(ema10, title="Slow EMA 10", style=line, linewidth=1, color=colFinal2)
plot(ema11, title="Slow EMA 11", style=line, linewidth=1, color=colFinal2)
plot(ema12, title="Slow EMA 12", style=line, linewidth=1, color=colFinal2)
plot(ema13, title="Slow EMA 13", style=line, linewidth=1, color=colFinal2)
plot(ema14, title="Slow EMA 14", style=line, linewidth=1, color=colFinal2)
plot(ema15, title="Slow EMA 15", style=line, linewidth=1, color=colFinal2)
plot(ema16, title="Slow EMA 16", style=line, linewidth=1, color=colFinal2)
plot(ema17, title="Slow EMA 17", style=line, linewidth=1, color=colFinal2)
plot(ema18, title="Slow EMA 18", style=line, linewidth=1, color=colFinal2)
plot(ema19, title="Slow EMA 19", style=line, linewidth=1, color=colFinal2)
plot(ema20, title="Slow EMA 20", style=line, linewidth=1, color=colFinal2)
plot(ema21, title="Slow EMA 21", style=line, linewidth=1, color=colFinal2)
plot(ema22, title="Slow EMA 22", style=line, linewidth=2, color=colFinal2)
p4=plot(ema23, title="EMA 200", style=line, linewidth=2)


// Strategy Center
enterLong = colfastL and colslowL
exitLong = not colfastL

if testPeriod()
    strategy.entry("WY Long", strategy.long, when=enterLong, comment="WY Long")
else
    strategy.cancel(id="WY Long")

if testPeriod()
    strategy.close("WY Long", when=exitLong)

더 많은