EMA200 및 스토카스틱 RSI 전략
이 전략은 기하급수적인 이동 평균 (EMA) 과 스토카스틱 상대 강도 지수 (RSI) 를 결합하여, EMA200와 스토카스틱 RSI 값의 위 또는 아래의 가격 움직임에 따라 긴 및 짧은 거래 기회를 식별하도록 설계되었습니다.
전략의 작동 방식
이 전략은 다음 조건들을 이용하여 입력 신호를 생성합니다.
긴 항목: 가격은 EMA200보다 높습니다. 스토카스틱 RSI는 20보다 낮고 RSI를 넘었습니다. 현재 촛불은 더 높은 촛불입니다. 현재 촛불의 몸집은 이전 촛불의 몸집보다 적어도 5% 크다. 짧은 항목: 가격은 EMA200보다 낮습니다. 스토카스틱 RSI는 80보다 높고 RSI 아래로 넘어갔습니다. 현재 촛불은 낮은 촛불입니다. 현재 촛불의 몸집은 이전 촛불의 몸집보다 적어도 5% 작습니다. 전략의 이점
이 전략은 다음과 같은 여러 가지 잠재적 이점을 가지고 있습니다.
이 지표는 두 가지 정립된 기술 지표에 기초합니다. EMA와 스토카스틱 RSI는 거래자들이 널리 사용하고 있으며 오랜 성공 역사를 가지고 있습니다. 이해 및 구현에 상대적으로 쉽다. 전략은 제한된 수의 매개 변수를 가지고 있으며 모든 경험 수준의 거래자가 이해하기 쉽고 사용하기 쉽다. 이 전략은 유연하며 다양한 시장 조건에서 사용할 수 있습니다. 이 전략은 장과 짧은 포지션을 거래하는 데 사용할 수 있으며 트렌딩 및 범위 시장에서 모두 사용할 수 있습니다. 전략의 위험
모든 거래 전략과 마찬가지로 EMA200 및 스토카스틱 RSI 전략을 사용하는 것과 관련된 잠재적 위험도 있습니다.
이 전략은 역사적인 자료에 기초하고 있습니다. 이 전략이 미래에 수익을 낼 것이라는 보장은 없습니다. 이 전략은 윙사 (whipsaw) 에 민감할 수 있습니다. 이것은 자산의 가격이 두 방향으로 빠르게 움직일 때 손실로 이어질 수 있습니다. 전략은 변동적일 수 있습니다. 이것은 큰 손실의 위험이 있다는 것을 의미합니다. 결론
EMA200 및 스토카스틱 RSI 전략은 모든 경험 수준의 거래자가 사용할 수있는 비교적 간단하고 효과적인 거래 전략입니다. 그러나 거래 전략이 수익성이 보장되지 않는다는 것을 기억하는 것이 중요하며 거래자는 항상 거래 전략을 사용할 때 신중해야합니다.
/*backtest start: 2022-08-30 00:00:00 end: 2023-09-05 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/ // © eaglezou1006 //@version=5 //strategy("70000%", overlay = true, initial_capital = 100, commission_value = 0.04, commission_type =strategy.commission.percent, pyramiding = 1, default_qty_value = 100, default_qty_type = strategy.cash, currency = currency.USDT) //Stoch RSI rsi1 = ta.rsi(close, 14) k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, 14), 3) d = ta.sma(k, 3) //ema ema200 = ta.ema(close, 200) plot(ema200, color = color.white) //atr length = 14 smoothing = 'RMA' m = input(2, 'ATR倍数', group = "用户自定义参数") src1 = high src2 = low pline = true collong = color.teal colshort = color.red a = ta.rma(ta.tr(true), length) * m x = ta.rma(ta.tr(true), length) * m + src1 x2 = src2 - ta.rma(ta.tr(true), length) * m p1 = plot(x, title='ATR Short Stop Loss', color=color.new(colshort, 20), trackprice=pline ? true : false) p2 = plot(x2, title='ATR Long Stop Loss', color=color.new(collong, 20), trackprice=pline ? true : false) rewardRiskRatio = input.float(defval = 1.5, title = "盈亏比", minval = 1, maxval = 15, step = 0.1, group = "用户自定义参数") highLowShadowRatio = input.int(defval = 20, title = "上下影线点比(%)", minval = 1, maxval = 100, step = 1, group = "用户自定义参数") keyCandlestickChange = input.float(defval = 0.5, title = "关键K线涨跌幅(%)", minval = 0.1, maxval = 100, step = 0.1, group = "用户自定义参数") longCondition = close > ema200 and (k < 20 and d < 20 and ta.crossover(k, d)) and high > high[1] and close[1] > open[1] and (close > open and (high-close) / (high-low) <= highLowShadowRatio / 100 and (close / open) - 1 >= keyCandlestickChange / 100) shortCondition = close < ema200 and (k > 80 and d > 80 and ta.crossunder(k, d)) and low < low[1] and close[1] < open[1] and (close < open and math.abs(high-open) / math.abs(high-close) <= highLowShadowRatio / 100 and 1 - (close / open) >= keyCandlestickChange / 100 ) plotshape(longCondition, 'Buy', shape.labelup, location.belowbar, color=collong, size=size.small, offset=0) plotshape(shortCondition, 'Sell', shape.labeldown, location.abovebar, color=colshort, size=size.small, offset=0) if longCondition strategy.entry("Enter Long", strategy.long) else if shortCondition strategy.entry("Enter Short", strategy.short)