
이 전략은 빠른 EMA 평균선과 느린 EMA 평균선의 교차점을 계산하여 시장의 추세 방향을 판단하고, 트렌드 추적 거래를 구현한다. 빠른 EMA 상에서 느린 EMA를 통과할 때, 더 많이 하고, 가격이 빠른 EMA를 넘어갈 때, 평지한다.
전략은 빠른 기간의 EMA 평균 주기 i_shortTerm와 느린 기간의 EMA 평균 주기 i_longTerm를 입력하여 각각 빠른 EMA와 느린 EMA를 계산한다. 짧은 기간의 EMA에 긴 EMA ((goLongCondition1 조건) 을 착용하고, 가격이 짧은 기간의 EMAgo ((LongCondition2 조건) 보다 높을 때, 더 많은 입장을 한다. 가격이 짧은 기간의 EMA ((exitCondition2 조건) 을 넘어지면, 평점 입장을 탈퇴한다.
이 전략은 EMA 평균의 황금 교차 원칙을 기반으로, 빠른 느린 EMA의 교차를 통해 시장의 주요 흐름을 판단하고, 트렌드를 추적하여 거래한다. 단기 EMA에서 장기 EMA를 넘으면, 시장의 진입 트렌드를 나타냅니다. 단기 EMA보다 가격이 높으면, 현재 트렌드 상승 단계에 있다는 것을 나타냅니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
captured 시장의 주요 트렌드 방향을 판단하기 위해 EMA 평균을 사용하여 시장의 단기 변동이 방해되는 것을 피하고 주요 트렌드를 고정하십시오.
트렌드 판단에 대한 민감도를 조정할 수 있는 빠른 느린 EMA 파라미터를 설정하고, 다른 상황에 따라 유연하게 적응한다.
전략 논리는 간단하고 명확하며, 이해하기 쉬운 구현으로, 양자 거래 초보자에게 적합하다.
맞춤형 EMA 주기 파라미터, 다양한 품종과 시장에 대한 조정 파라미터, 전략 효과를 최적화한다.
가격의 EMA 돌파를 이용해서 스톱로드를 탈퇴하면 위험을 효과적으로 통제하고 자금을 보호할 수 있다.
이 전략에는 몇 가지 위험도 있습니다.
동향이 역전될 때, EMA 교차 신호는 가격보다 더 느리게 변하게 되며, 더 큰 손실을 초래할 수 있다.
단기 EMA에 진입할 때 여러 번 돌파하면, 가짜 돌파가 발생하여 손실이 발생할 수 있다.
paramedic 파라미터를 잘못 설정하면 정책 효과에도 영향을 미칠 수 있다.
효과는 시장의 흐름과 밀접하게 관련되어 있으며 모든 품종과 단계에 적합하지 않습니다.
이에 대응하는 위험 관리에는:
EMA 파라미터를 최적화하여 트렌드 반향에 대한 민감도를 높인다.
다른 지표 필터를 추가하여 입학 시간을 결정합니다.
debug 매개 변수는 계속 최적화되고, 품종과 시장에 맞게 조정된다.
전략이 적용되는 시나리오를 충분히 이해하고 무심한 사용을 피하십시오.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
MACD, KD 등의 다른 지표들을 이용하여 신호를 필터링하여 출전 시간을 최적화한다.
이동식 스톱로스를 추가하고, 수익을 추적하고, 위험을 더욱 통제합니다.
변동률 지표 ATR과 결합하여 스톱로드를 최적화한다.
더 과학적인 EMA 매개 변수 설정 방법을 테스트하여 매개 변수를 더 최적화하십시오.
여러 시간 프레임으로 신호를 검증하여 신호의 정확성을 향상시킵니다.
BREAKOUT는 트렌드 가속화 단계에서 더 큰 시장을 포착하기 위한 전략입니다.
이 전략은 EMA 평균을 가로질러 시장의 주요 트렌드 방향을 판단하여 간단하고 효과적인 트렌드 추적 거래를 구현한다. 전략 논리는 명확하고 구현하기 쉽고, 위험은 제어할 수 있으며, 양적 거래 초보자 연습에 적합하다. 추가로 최적화 된 매개 변수 설정, 필터링 및 중지 손실 방법을 도입함으로써 더 나은 전략 효과를 얻을 수 있습니다. 그러나 모든 전략에는 한계가 있으며, 사용자는 실장에서 시장 환경을 충분히 고려하고 신중하게 사용해야합니다.
/*backtest
start: 2023-02-15 00:00:00
end: 2024-02-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © pradhan_abhishek
//@version=5
strategy('EMA cross-over strategy by AP', overlay=true, shorttitle='EMACS-AP', initial_capital=100000, default_qty_value=100, default_qty_type=strategy.percent_of_equity, commission_value=0.025)
// inputs
i_shortTerm = input(title='Fast EMA', defval=21)
i_longTerm = input(title='Slow EMA', defval=55)
// select backtest range: if this is not given, then tradingview goes back since inception / whereever it finds data
i_from = input(defval = timestamp("01 Jan 2023 00:00"), title = "From")
i_to = input(defval = timestamp("31 Dec 2033 23:59"), title = "To")
i_showBg = input(defval = true, title = "Show In-trade / Out-trade background")
// create date function "within window of time"
date() => true
// exponential moving average (EMA) variables, derived from input parameters
shortTermEMA = ta.ema(close, i_shortTerm)
longTermEMA = ta.ema(close, i_longTerm)
atr = ta.atr(14)
// ### Trade strategy: begins ###
inTrade = strategy.position_size > 0
notInTrade = strategy.position_size <= 0
goLongCondition1 = shortTermEMA > longTermEMA
goLongCondition2 = close > shortTermEMA
// exitCondition1 = shortTermEMA < midTermEMA
exitCondition2 = close < shortTermEMA
// enter if not in trade and long conditions are met
if date() and goLongCondition1 and goLongCondition2 and notInTrade
strategy.entry('long', strategy.long)
// exit on stop-Loss hit
stopLoss = close - atr * 3
strategy.exit('exit', 'long', stop=stopLoss)
// exit if already in trade and take profit conditions are met
if date() and exitCondition2 and inTrade
strategy.close(id='long')
// ###Trade strategy: ends ###
// plot emas & background color for trade status
plot(shortTermEMA, color=color.new(color.blue, 0))
plot(longTermEMA, color=color.new(color.green, 0))
trade_bgcolor = notInTrade ? color.new(color.red, 75) : color.new(color.green, 75)
bgcolor(i_showBg ? trade_bgcolor : color.new(color.white, 75))