EMA골격전략

저자:차오장, 날짜: 2023-12-07 17:20:44
태그:

img

전반적인 설명

이 전략은 EMA와 RSI 지표를 결합하여 비트코인의 단기 조정 기회를 식별합니다. 주로 EMA를 주요 그래픽 도구로 사용하고 RSI를 보조 판단 지표로 사용하여 명백한 조정 패턴을 찾습니다. 거래 신호는 가격이 EMA 라인을 넘어서거나 넘어서면 생성됩니다. 또한 매개 변수를 설정할 수있는 스톱 로스 및 수익 통제를 가지고 있습니다.

전략 원칙

이 전략은 주로 50주기 EMA 라인과 25주기 RSI 지표를 사용합니다. EMA 라인은 주요 그래픽 지표로 간주되며 RSI는 거래 신호를 생성하는 데 도움이되는 과잉 구매 및 과잉 판매 조건을 결정하는 데 사용됩니다. 가격이 EMA 라인 아래에 떨어지면 판매 신호가 생성되며 가격이 EMA 라인 이상으로 떨어지면 구매 신호가 생성되며 RSI 지표가 과잉 구매되지 않은 신호 (RSI 값이 70 미만) 를 보여줍니다. 잘못된 입력의 가능성을 줄이기 위해 전략은 추가 필터 조건으로 더 긴 기간 EMA 라인 (예를 들어 70 기간) 을 포함합니다.

트레이드에 진입 한 후 전략은 또한 스톱 로스 및 수익을 취하는 수준을 설정합니다. 스톱 로스 거리는 5.1%로 기본 설정되어 조정됩니다. 수익을 취하는 거리는 또한 9.6%로 기본 설정되어 조정됩니다. 이는 거래당 최대 손실을 효과적으로 제한합니다.

요약하자면, 전략은 주로 EMA 라인 패턴에 의존하고 있으며, 과도한 구매 및 과도한 판매 조건을 피하기 위해 RSI 지표로 보완되며, 스톱 로스 및 영업 통제를 가지고 있습니다. 단기 BT 비트코인 조정을 포착하는 데 적합합니다.

이점 분석

이 전략의 주요 장점은 다음과 같습니다.

  1. 전략 신호는 너무 많은 무작위 잘못된 항목 없이 비교적 명확합니다. EMA와 RSI의 조합은 단일 지표에만 의존하는 대신 신호를 더 신뢰할 수 있습니다.

  2. 내장된 스톱 로스 및 영업 영업 통제. 이것은 거래당 손실을 효과적으로 제한하고 매우 중요한 위험 관리 도구입니다.

  3. 전략 매개 변수는 최적화 할 수 있습니다. EMA 길이, RSI 길이 및 기타는 조정 가능한 매개 변수입니다. 사용자는 다른 시장 조건에 최적의 매개 변수 세트를 찾을 수 있습니다.

  4. 백테스트가 활성화되었습니다. 전략은 성능을 확인하기 위해 내부적으로 백테스트 날짜 범위를 설정할 수 있습니다.

위험 분석

이 전략은 또한 다음과 같은 위험성도 가지고 있습니다.

  1. BT 비트코인은 휘발성 움직임을 가지고 있으며, 스톱이 실행될 수 있습니다. 스톱이 설정되어 있지만, BT 비트코인은 종종 예상보다 큰 손실로 이어지는 스톱을 제거 할 수있는 큰 가격 변동을 가지고 있습니다.

  2. 유출 위험. 전략은 전체 유출 통제를 고려하지 않습니다. 그것은 장기 조정 기간 동안 유출을 경험 할 수 있습니다.

  3. 강한 트렌드에 약한 신호. BT 비트코인 트렌드는 특정 시장 조건에서 상당히 확장 될 수 있습니다. 단기 신호는 좋은 거래에서 중단되는 것을 초래하는 낮은 성능을 보이는 경향이 있습니다.

이러한 위험을 통제하고 완화하기 위해:

  1. 더 넓은 스톱 로스 범위를 허용하십시오. 강한 트렌드 조건에서, 스톱 로스 범위를 10%까지 확장 할 수 있습니다.

  2. 다른 지표 필터를 추가합니다. 추세를 따르는 지표를 추가하여 연장 된 통합 기간 동안 거래를 피할 수 있습니다.

  3. 매개 변수를 최적화 합니다. 테스트 매개 변수는 다른 시장 조건에 걸쳐 설정됩니다. 강력한 트렌드가 나타나면 신호 품질을 개선하기 위해 매개 변수를 전환합니다.

최적화 방향

이 전략을 최적화 할 수있는 더 많은 공간이 있습니다.

  1. 전체 마감 통제를 추가합니다. 최대 마감 비율을 설정할 수 있습니다. 예를 들어 20%, 손실을 제한할 때 거래를 중지합니다.

  2. 입력 주파수를 제한합니다. 과도한 거래를 방지하기 위해 시간 단위 당 최대 2 거래와 같은 거래 수를 제한 할 수 있습니다.

  3. 매개 변수를 최적화 합니다. 다른 시장 조건에 대한 매개 변수 조합을 테스트합니다. 현재 조건과 일치하는 실시간으로 매개 변수를 전환하는 매개 변수 템플릿을 생성합니다.

  4. 다른 지표와 결합합니다. 더 포괄적인 거래 시스템 진입 규칙을 만들기 위해 경향, 변동성 및 다른 메트릭을 통합합니다.

요약

전체적으로, 전략은 주로 단기 BT 비트코인 조정 패턴에 의존하며, EMA와 RSI를 사용하여 명확한 거래 신호를 생성하며, 스톱 로스 및 영업 영업 통제를 가지고 있습니다. 단기 미끄러짐 수익 기회를 효과적으로 포착 할 수 있습니다. 그러나 다른 전략과 결합하여 더 일관된 초과 수익을 창출하는 데 가장 잘 작동합니다.


/*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)


더 많은