Стратегия EMA200 и стохастического RSI
Эта стратегия представляет собой сочетание экспоненциальной скользящей средней (EMA) и стохастического индекса относительной силы (RSI).
Как работает стратегия
Стратегия использует следующие условия для генерации сигналов входа:
Длинная запись: Цена выше EMA200. Стохастический показатель RSI находится ниже 20 и превысил RSI. Нынешняя свеча - более высокая. Тело нынешней свечи по меньшей мере на 5% больше, чем тело предыдущей. Короткая запись: Цена ниже EMA200. Стохастический показатель RSI выше 80 и перешел ниже RSI. Нынешняя свеча - нижняя свеча. Тело нынешней свечи по меньшей мере на 5% меньше, чем тело предыдущей свечи. Преимущества стратегии
Стратегия имеет ряд потенциальных преимуществ, в том числе:
Он основан на двух хорошо зарекомендованных технических показателях: EMA и Stochastic RSI, которые широко используются трейдерами и имеют давнюю историю успеха. Стратегия имеет ограниченное количество параметров, что облегчает понимание и использование трейдерами всех уровней опыта. Стратегия может использоваться для торговли как длинными, так и короткими позициями, а также на трендовых и диапазоновых рынках. Риски стратегии
Как и при любой торговой стратегии, существуют также некоторые потенциальные риски, связанные с использованием стратегии EMA200 и Stochastic RSI, в том числе:
Стратегия основана на исторических данных, и нет никаких гарантий, что она будет прибыльной в будущем. Стратегия может быть восприимчива к випсову. Это когда цена актива быстро движется в обоих направлениях, что может привести к потерям. Стратегия может быть волатильной, что означает, что существует риск больших потерь. Заключение
Стратегия EMA200 и Stochastic 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)