Стратегия движущихся сред и относительно слабых случайных индикаторов

Автор:Чао Чжан, Дата: 2024-02-01 11:37:40
Тэги:

移动平均线和随机相对强弱指标策略

Обзор

Эта стратегия была протестирована на трёхминутной временной шкале для торговли парой биткойнов и долларов США (BTC/USDT) и дает очень хорошие результаты. Эта стратегия использует комбинацию движущихся средних и случайных относительно слабых индикаторов (Stochastic RSI) для распознавания торговых сигналов.

Принципы стратегии

Эта стратегия использует две простые движущиеся средние с разными сроками, 20 циклов и 50 циклов соответственно. Эти две средние используются для определения ценового тренда, когда короткие движущиеся средние пересекают длинные движущиеся средние.

Формула вычисления Stochastic RSI: ((RSI - минимальный RSI) / ((Highest RSI - минимальный RSI) * 100); этот показатель отражает текущее состояние RSI по отношению к позиции самого высокого и самого низкого RSI за последнее время.

Стратегия использует в комплексе движущиеся средние для определения направления тренда и использует стохастический RSI для определения потенциальных переменных в качестве времени входа.

Анализ стратегических преимуществ

По сравнению с использованием одной только движущейся средней или стохастического RSI, эта стратегия сочетает в себе преимущества обоих и позволяет лучше идентифицировать тенденции, а также позиционировать потенциальные переломные точки, что повышает вероятность получения прибыли.

В отличие от одного индикатора, стратегия объединяет несколько индикаторов и устанавливает строгие правила входа, которые эффективно фильтруют фальшивые сигналы и избегают ненужных сделок.

Эта стратегия также хорошо контролирует риски, эффективно ограничивая влияние потерь на одну сумму.

Стратегический анализ рисков

Эта стратегия в основном опирается на технические показатели для определения торговых сигналов, которые могут привести к ошибочным сигналам, которые приводят к убыткам, если индикатор не работает. Кроме того, неправильное настройка параметров индикатора также может повлиять на производительность стратегии.

В условиях резкой волатильности рынка, возможно, будет прорван режим остановки, что приведет к риску увеличения потерь.

Оптимизация стратегии

Можно проверить больше комбинаций и параметров движущейся средней, чтобы найти наилучшую комбинацию параметров. Также можно попробовать комбинировать другие индикаторы потенциала, такие как KD, RSI и т. д. с движущейся средней.

Можно выбрать оптимальный режим стоп-стоп-потери в зависимости от особенностей различных криптовалют, чтобы еще больше контролировать риск.

Можно внедрить алгоритмы машинного обучения, которые автоматически оптимизируют параметровые настройки и правила определения сигналов, чтобы сделать стратегию более гибкой и адаптивной.

Подведение итогов

Успешное сочетание движущихся средних и стохастического RSI определяет торговые сигналы. По сравнению с единым техническим показателем, стратегия обеспечивает более надежные торговые сигналы. Благодаря строгому контролю риска и оптимизации параметров, стратегия может обеспечить стабильную прибыль.


/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Moving Average and Stochastic RSI Strategy", shorttitle="MA+Stoch RSI", overlay=true)

// Input variables
ma1_length = input.int(20, title="MA1 Length")
ma2_length = input.int(50, title="MA2 Length")
stoch_length = input.int(14, title="Stochastic RSI Length")
overbought = input.int(80, title="Overbought Level")
oversold = input.int(20, title="Oversold Level")
risk_percentage = input.float(2.0, title="Risk Percentage")

// Calculate moving averages
ma1 = ta.sma(close, ma1_length)
ma2 = ta.sma(close, ma2_length)

// Calculate Stochastic RSI
rsi1 = ta.rsi(close, stoch_length)
rsiH = ta.highest(rsi1, stoch_length)
rsiL = ta.lowest(rsi1, stoch_length)
stoch = (rsi1 - rsiL) / (rsiH - rsiL) * 100

// Determine buy and sell signals based on Stochastic RSI
buySignal = ta.crossover(stoch, oversold)
sellSignal = ta.crossunder(stoch, overbought)

// Plot signals on the chart
plotshape(buySignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Calculate position size based on equity and risk percentage
equity = strategy.equity
riskAmount = equity * risk_percentage / 100
positionSize = riskAmount / ta.atr(14)

// Entry and exit conditions
var float stopLoss = na
var float takeProfit = na

if buySignal
    stopLoss := low
    takeProfit := high
    strategy.entry("Buy", strategy.long)
else if sellSignal
    strategy.exit("Sell", from_entry="Buy", stop=stopLoss, limit=takeProfit)


Больше информации