
Эта стратегия ищет торговые возможности, используя в комбинации движущиеся средние и случайные относительно слабые показатели (Stochastic RSI). В частности, она одновременно смотрит на среднесрочные движущиеся средние, которые имеют тенденцию к росту, и на случайные показатели RSI, которые перекупают и перепродают, и работает, когда они выдают сигналы о покупке и продаже. Использование этой комбинации может отфильтровать некоторые ложные сигналы и повысить стабильность стратегии.
Стратегия состоит из следующих частей:
Вычислите скользящие средние MA1 и MA2 для двух различных периодов.
Расчет случайного относительно сильного и слабого индекса Stochastic RSI. Этот показатель объединяет принципы RSI и случайного показателя и может показать, находится ли RSI в состоянии перекупа или перепродажи.
Сигнал покупки возникает, когда случайный индикатор RSI пересекает отметку от перепродажи; сигнал продажи, когда он пересекает отметку от перепродажи.
Покупайте, когда случайный индикатор RSI подает сигнал, и короткопериодическая скользящая средняя находится выше долгопериодической скользящей средней. Это позволяет отфильтровать большинство ложных сигналов.
Расчет суммы риска и позиции. Фиксированная сумма риска позволяет эффективно контролировать убытки.
Настройка стоп-лосса и стоп-стопа. Отслеживание стоп-стопа для максимизации прибыли.
Эта комбинация имеет следующие преимущества в стратегии, использующей движущиеся средние и случайные RSI:
Лучшую отдачу можно получить в трендовых ситуациях. Средняя и длинная комбинация средних линий позволяет определить направление основного тренда.
Рандомный RSI может быть эффективным в определении перепродажи и перекупа, что может быть полезным для поимки возможности для переворота.
Возможность фильтрации ложных сигналов в комбинации повышает стабильность.
Применение метода рискованной суммы для управления средствами позволяет ограничить одиночные потери и избежать превышения пределов допустимости.
Установка стоп-лосса для блокировки прибыли и предотвращения риска.
В этой стратегии есть определенные риски, которые сосредоточены на следующих аспектах:
При колебаниях средне- и долголинейная средняя линия может подавать ошибочный сигнал. Для управления риском необходимо установить стоп-лосс.
Случайный RSI подвержен воздействию резких ценовых изменений и может подавать ошибочные сигналы.
Сумма риска не позволяет полностью избежать крупных убытков. Необходимо разумно установить позицию.
При резких изменениях рынка невозможно получить разумные цены на установку стоп-лосса. В этом случае необходимо своевременное вмешательство.
Эта стратегия может быть оптимизирована в следующих направлениях:
Тестируйте больше комбинаций параметров, чтобы найти оптимальные циклы. Циклы, используемые в настоящее время, не обязательно являются оптимальными.
Попробуйте комбинировать другие показатели с подвижными средними. Например, KDJ, MACD и т. Д. Выберите наиболее подходящий показатель.
Оптимизация для тестирования торговой разновидности. Сейчас это тестирование на форекс, можно попробовать на других рынках.
Динамическая оптимизация параметров с использованием таких методов, как машинное обучение. В настоящее время параметры настроены статически, что может не адаптироваться к изменениям рынка.
Комбинированная стратегия, состоящая из движущихся средних и случайных RSI, определяет большую тенденцию с помощью равновесия, а случайные RSI определяет обратную точку, которые в сочетании формируют торговый сигнал и устанавливают стоп-стоп и контроль риска, что позволяет получить стабильную стратегическую логику. Такая комбинационная структура стратегии проста, практична, заслуживает дальнейшего тестирования и оптимизации и может быть расширена на большее количество вариантов и параметров.
/*backtest
start: 2023-01-09 00:00:00
end: 2024-01-15 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)