
이 전략은 EMA와 RSI 지표를 결합하여 비트코인의 단선 조정 기회를 식별한다. 그것은 주로 EMA를 주 그래프로 사용하고, RSI를 보조 판단 지표로 사용하여, 보다 명백한 조정 형태를 찾는다. 가격이 EMA 유동선에 떨어지거나 다시 올라갈 때 거래 신호를 생성한다. 그것은 동시에 중지 손실과 중지 제어를 가지고 있으며, 파라미터를 최적화 할 수 있다.
이 전략은 주로 50 주기의 EMA 라인과 25 주기의 RSI 지표를 사용합니다. EMA 라인은 주요 그래픽 지표로 간주되며, RSI는 초과 판매를 판단하고 거래 신호를 생성하는 데 도움을줍니다. 가격이 상향에서 아래로 EMA 라인을 깨면 판매 신호를 생성합니다. 가격이 상향에서 아래로 EMA 라인을 깨고 RSI 지표가 초과 구매 신호를 표시하지 않으면 구매 신호를 생성합니다. 오류의 기회를 줄이기 위해 전략은 더 긴 기간의 EMA 라인 (예: 70 주기) 을 필터링 조건 중 하나로 추가합니다.
거래 입시 후, 전략은 동시에 중지 손실과 중지 위치를 설정한다. 중지 손실 거리는 설정할 수 있으며, 5.1%를 기본으로; 중지 거리 또한 설정할 수 있으며, 9.6%를 기본으로한다. 이것은 단일 손실의 최대치를 효과적으로 줄일 수 있다.
전체적으로, 이 전략은 주로 EMA 라인 형태에 의존하며, RSI 지표에 의해 과매매를 피하고, BT 비트코인의 단선 조정에 적합한 HIT 컨트롤을 갖추고 있다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
전략적 신호는 명확하고 너무 많은 무작위적인 오작동이 발생하지 않습니다. EMA와 RSI의 결합은 신호를 더 명확하고 신뢰할 수있게 만들어 단일 지표에만 의존하지 않습니다.
전략 자율 손해 중지 컨트롤. 이것은 각 손실을 효과적으로 제어할 수 있으며, 매우 중요한 위험 제어 수단이다.
전략 매개 변수는 최적화할 수 있다. EMA 길이, RSI 길이 등은 조정할 수 있는 매개 변수이며, 사용자는 서로 다른 시장에 대한 최적의 매개 변수 조합을 찾을 수 있다.
정책은 재검토를 허용한다. 직접 정책 내에서 재검토의 시간 범위를 설정하여 정책을 검증한다.
이 전략은 다음과 같은 몇 가지 측면에서 위험성을 가지고 있습니다.
BT비트코인 시장상황이 격렬하여, 상쇄 손실이 뚫릴 수 있다. 전략이 상쇄 손실을 설정했음에도 불구하고, 비트코인 대상황에서 가격 이동이 큰 만큼 상쇄 손실이 직접 뚫릴 수 있다. 이 때 큰 손실이 발생할 수 있다.
철회 위험. 전략은 전체적인 철회 통제를 고려하지 않는다. 비교적 긴 조정 상황이 발생하면, 전략은 약간의 철수를 낳는다.
대시장에서는 신호효과가 저하된다. 비교적 야생 대시장에서는, BTC 가격이 비교적으로 크고 긴 파동이 있다. 이 때 단기 신호효과가 저하되고, 기용되기 쉽다.
이러한 위험들을 통제하고 완화하기 위해 다음과 같은 조치를 취할 수 있습니다.
적절히 느슨한 스톱레이드 범위를 . 대시황일 경우, 적절히 느슨한 스톱레이드 거리를 수 있다. 예를 들어 10% 정도까지 확대하여 스톱레이드가 너무 쉽게 뚫릴 수 없도록 한다.
다른 지표 필터링과 함께 . 수평선 다중 헤드 배열과 같은 트렌드 지표를 추가할 수 있으며, 장기 조정 시점에 이 전략을 사용하지 않도록 한다.
최적화 매개 변수 집합. 다양한 시장 단계의 매개 변수 설정을 테스트할 수 있으며, 여러 매개 변수 조합을 구축하고, 대시황이 올 때 매개 변수를 전환하여 신호 품질을 향상시킬 수 있다.
이 전략은 다음의 몇 가지 측면에서 더 많은 최적화를 할 수 있습니다.
전체적인 회수 통제를 추가한다. 최대 회수 비율을 설정할 수 있다. 예를 들어, 20%가 이 회수 수준에 도달했을 때, 전략적으로 거래를 중단하고, 과도한 손실을 방지한다.
포지션 개시 빈도 조절을 늘리십시오. 전략 단위 시간 내에 포지션을 개시하는 횟수를 제한할 수 있습니다. 예를 들어 시간당 2 번 이상, 너무 자주 거래되는 것을 피하십시오.
최적화 매개 변수 설정. 다양한 시장 상황에서의 매개 변수 조합을 테스트하고, 여러 매개 변수 템플릿을 구축하여, 실시간으로 현재 상황에 따라 적절한 매개 변수를 선택하여 전략 효과를 향상시킬 수 있습니다.
다른 지표 포지션과 함께 사용한다. 이 전략은 트렌드, 변동성 등 다른 지표 포지션과 함께 사용되어 더 포괄적이고 신뢰할 수 있는 거래 시스템 입시 기반을 형성한다.
전반적으로 이 전략은 주로 BTC의 단기 조정 형태에 의존하며, EMA와 RSI를 이용하여 비교적 명확한 거래 신호를 생성하고, 동시에 스톱로스 및 스톱스톱 컨트롤을 갖추고, BT의 단기 슬라이드에서 가져오는 중도 기회를 효과적으로 잡을 수 있다. 그러나 이 전략은 짧은 라인 보조 도구로 더 적합하며, 다른 전략 조합으로 사용할 때 효과가 더 좋아서 비교적 안정적인 초과 수익을 창출할 수 있다.
/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 1h
basePeriod: 15m
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/
// © mmoiwgg
//@version=4
strategy(title="EMA+RSI Pump & Drop Swing Sniper (With Alerts & SL+TP) - Strategy", shorttitle="EMA+RSI Swing Strategy", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=50, minval=0)
emarsiSource = input(close, title="EMA+RSI Source")
condSource = input(high, title="Long+Short Condition Source")
emaVal = ema(emarsiSource, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(emarsiSource, rsiLength)
//Safety
emaLength2 = input(title="Safety EMA Length", type=input.integer, defval=70, minval=0)
emaSource2 = input(close, title="Safety EMA Source")
ema = ema(emaSource2, emaLength2)
emaColorSource2 = close
emaBSource2 = close
// Backtest+Dates
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest end window
window() => time >= start and time <= finish ? true : false // create function - add window() to entry/exit/close
// Conditions
exit_long = crossover(emaVal, condSource)
longCond = crossunder(emaVal, condSource) and close > ema
//Stoploss + TakeProfit
sl = input(0.051, step=0.001, title="Stop Loss")
tp = input(0.096, step=0.001, title="Take Profit")
// Plots Colors
colors = emarsiSource > emaVal and rsiVal > 14 ? color.green : color.red
emaColorSource = input(close, title="Line Color Source")
emaBSource = input(close, title="Line Color B Source")
// Plots
plot(ema, color=emaColorSource2[1] > ema and emaBSource2 > ema ? color.green : color.red, linewidth=1)
plot(emaVal, color=emaColorSource[1] > emaVal and emaBSource > emaVal ? color.green : color.red, linewidth=3)
plotcandle(open, high, low, close, color=colors)
//Strategy Entry+Exits
strategy.entry("long",1,when=window() and longCond)
strategy.close("long",when=window() and exit_long)
strategy.exit("long tp/sl", "long", profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick)