리소스 로딩... 로딩...

EMA5와 EMA13의 크로스오버 전략

저자:차오장날짜: 2024-05-17 15:28:17
태그:EMASMA

img

전반적인 설명

전략 원칙

전략적 장점

  1. 확장성: 이 전략을 바탕으로 다른 기술적 지표나 근본적인 요소를 결합하여 전략 성과를 더 이상 최적화 할 수 있습니다.

전략 위험

  1. 지연: EMA는 SMA에 비해 지연이 적지만 여전히 약간의 지연이 있으며, 최고의 입구 지점을 놓칠 수 있습니다.

전략 최적화 방향

요약

EMA5 및 EMA13 크로스오버 전략은 서로 다른 기간의 두 개의 EMA의 크로스오버를 통해 가격 트렌드의 변화를 포착하는 간단하고 사용하기 쉬운 트렌드 추적 전략입니다. 이 전략의 장점은 단순성, 높은 적응성 및 높은 시기성이지만 잘못된 신호, 지연 및 스톱-로스 부족과 같은 위험도 있습니다. 전략 성능을 더욱 최적화하기 위해 트렌드 필터링, 스톱-로스 설정, 매개 변수 최적화 및 기타 기술 지표와 결합하는 것을 고려할 수 있습니다. 실제 응용에서는 특정 시장 조건 및 거래 도구에 따라 조정 및 최적화해야합니다.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Milankacha

//@version=5
strategy('5-13 EMA by Naimesh ver04', overlay=true)

qty = input(1, 'Buy quantity')

testStartYear = input(2021, 'Backtest Start Year')
testStartMonth = input(1, 'Backtest Start Month')
testStartDay = input(1, 'Backtest Start Day')
testStartHour = input(0, 'Backtest Start Hour')
testStartMin = input(0, 'Backtest Start Minute')
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, testStartMin)
testStopYear = input(2099, 'Backtest Stop Year')
testStopMonth = input(1, 'Backtest Stop Month')
testStopDay = input(30, 'Backtest Stop Day')
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriodBackground = input(title='Color Background?', defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? #00FF00 : na
testPeriod() => true


ema1 = input(5, title='Select EMA 1')
ema2 = input(13, title='Select EMA 2')
//ema3 = input(50, title='Select EMA 3')
//SL = input(70, title='Stoploss')
//TR = input(250, title='Target')

expo = ta.ema(close, ema1)
ma = ta.ema(close, ema2)
//EMA_50 = ta.ema(close, ema3)

//avg_1 = avg (expo, ma)
//s2 = ta.cross(expo, ma) ? avg_1 : na
//plot(s2, style=plot.style_line, linewidth=3, color=color.red, transp=0)

p1 = plot(expo, color=color.rgb(231, 15, 15), linewidth=2)
p2 = plot(ma, color=#0db63a, linewidth=2)
fill(p1, p2, color=color.new(color.white, 80))

longCondition = ta.crossover(expo, ma)

shortCondition = ta.crossunder(expo, ma)


if testPeriod()
    //strategy.entry('Long', strategy.long, when=longCondition)
    strategy.entry('Short', strategy.short, when=expo<ma)

//strategy.close("Long", expo<ma, comment= 'SL hit')
strategy.close("Short", expo>ma, comment= 'SL hit')



//plotshape(longCondition and close>EMA_50, title='Buy Signal', text='B', textcolor=color.new(#FFFFFF, 0), style=shape.labelup, size=size.normal, location=location.belowbar, color=color.new(#1B8112, 0))
//plotshape(shortCondition and close<EMA_50, title='Sell Signal', text='S', textcolor=color.new(#FFFFFF, 0), style=shape.labeldown, size=size.normal, location=location.abovebar, color=color.new(#FF5733, 0))



관련

더 많은