Стратегия EMA200 и стохастического RSI

Автор:Чао Чжан, Дата: 2023-09-06 11:28:53
Тэги:

Стратегия 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)

Больше