
Эта стратегия использует комбинацию движущихся средних, MACD и RSI для определения тенденций цен на акции, чтобы достичь низких покупок и высоких продаж, чтобы получить прибыль. Когда краткосрочные движущиеся средние пересекают долгосрочные движущиеся средние, и цена закрытия выше 50-дневного движущегося среднего, это создает сигнал покупки.
Эта стратегия основывается на стратегии двойных движущихся средних, то есть, когда краткосрочные движущиеся средние ((3-дневная ЭМА) находятся над долгосрочными движущимися средними ((30-дневная ЭМА), это создает сигнал к покупке, а когда долгосрочные движущиеся средние находятся под краткосрочными движущимися средними, это создает сигнал к продаже. Это обычно используется для определения краткосрочных и долгосрочных тенденций в ценах на акции.
Кроме того, в этой стратегии был введен 50-дневный скользящий средний, который дает сигнал о покупке только в том случае, если цена выше 50-дневной линии, и сигнал о продаже только в том случае, если она ниже, чтобы избежать частых торгов и отфильтровать ложные сигналы.
Кроме того, RSI используется для определения того, перевыполняется ли перекуп. Если RSI выше 70, то это считается зоной перекупа, в которой даже сильный краткосрочный тренд может столкнуться с обратным поворотом. Если RSI ниже 30, то это считается зоной перепродажи, в которой даже сильный краткосрочный спад может вызвать отскок.
Наконец, MACD-диаграмма используется для определения среднесрочной и долгосрочной тенденции. Если MACD-диаграмма > 0, то среднесрочная линия представляет собой тенденцию к росту, и тогда входный сигнал более надежен; если MACD-диаграмма < 0, то среднесрочная линия представляет собой тенденцию к снижению, и тогда даже в краткосрочной перспективе может быть произведена сигнал к покупке.
Наибольшим преимуществом этой стратегии является комбинация из нескольких индикаторов, что делает входные и выходные сигналы более точными и надежными. Одиночный индикатор может создавать ложные сигналы, а стратегия определяет краткосрочные тенденции с помощью движущихся средних, RSI определяет перекуп и перепродажу, MACD определяет среднесрочные тенденции, что значительно повышает вероятность успеха каждой сделки.
Другим преимуществом является сочетание трендовых и регрессивных торгов. Следовать тренду, следовать импульсу - это кредо всех трендовых трейдеров. Однако высокотехнологичная стратегия не задерживает тренд, а соответствующая регрессивная торговля может принести богатую дополнительную прибыль.
Основные риски этой стратегии исходят из внезапных событий, которые приводят к быстрой коррекции. Любая количественная стратегия трудно справиться с резкими колебаниями цен, вызванными значительными пробелами или хорошими новостями.
Другой риск заключается в том, что краткосрочная коррекция в многостороннем движении приводит к остановке убытков. Даже если средне-долгая линия все еще является бычьим рынком, краткосрочная коррекция может быть остановлена при закрытии длинной позиции.
Эта стратегия может быть оптимизирована в следующих аспектах:
Оптимизация параметров. Можно тестировать больше комбинаций параметров, чтобы найти оптимальные параметры.
Добавление дополнительных показателей. Можно тестировать добавление других показателей, таких как линия буринга, KDJ, обогатить комбинацию многозначных показателей, улучшить качество сигнала.
Оптимизация механизмов остановки. Можно тестировать более продвинутые способы остановки, такие как отслеживание остановки, промежуточная прорывная остановка, чтобы уменьшить вероятность удара остановки.
Приспособность к более широким рыночным условиям. Можно оптимизировать некоторые параметры стратегии, чтобы она могла получать стабильную прибыль на более широком типе рынков.
Эта стратегия использует комбинацию движущихся средних, RSI и MACD для создания высококачественных сигналов, избегая ограничений одного индикатора, что позволяет иметь большую уверенность в каждом решении о покупке или продаже. В то же время, стратегия учитывает торговлю по тренду и торговлю по контрасту, обеспечивая эффективную контрастную операцию в критические моменты. В целом, эта стратегия стабильна, эффективна и является отличной количественной стратегией.
/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('sachin 3.30 ', overlay=true)
// Input parameters
length = input.int(14, title='RSI Length', minval=1)
overbought = input.int(70, title='RSI Overbought Level', minval=0, maxval=100)
oversold = input.int(30, title='RSI Oversold Level', minval=0, maxval=100)
ema3_length = input(3, title='EMA 3 Length')
ema30_length = input(30, title='EMA 30 Length')
ema50_length = input(50, title='EMA 50 Length')
// Calculate EMAs
ema3 = ta.ema(close, ema3_length)
ema30 = ta.ema(close, ema30_length)
ema50 = ta.ema(close, ema50_length)
// Calculate RSI
rsiValue = ta.rsi(close, length)
// Calculate MACD
[macdLine, signalLine, hist] = ta.macd(close, 12, 26, 9)
var float buyPrice = na
// Buy condition: EMA 3 crosses above EMA 30 and price is above EMA 50
buyCondition = ta.crossover(ema3, ema30) and close > ema50
if (buyCondition)
buyPrice := close
strategy.entry('Buy', strategy.long)
// Exit long position when close is below EMA30 and below the low of the previous 3 candles after the buy entry
exitLongCondition = close < ema30 and close < ta.lowest(low, 3) and close < buyPrice
if (exitLongCondition)
strategy.close('BuyExit')
// Sell condition: EMA 3 crosses below EMA 30 and price is below EMA 50
sellCondition = ta.crossunder(ema3, ema30) and close < ema50
if (sellCondition)
strategy.entry('Sell', strategy.short)
// Exit short position when close is above EMA30 and above the high of the previous 3 candles after the sell entry
exitShortCondition = close > ema30 and close > ta.highest(high, 3)
if (exitShortCondition)
strategy.close('SellExit')
// Plot EMAs on the chart
plot(ema3, color=color.new(color.blue, 0), title='EMA 3')
plot(ema30, color=color.new(color.red, 0), title='EMA 30')
// Change color of EMA 50 based on MACD histogram
ema50Color = hist > 0 ? color.new(color.blue, 0) : hist < 0 ? color.new(color.black, 0) : color.new(color.blue, 0)
plot(ema50, color=ema50Color, title='EMA 50 Colored')
// Change color of EMA 30 based on RSI trend
ema30Color = rsiValue > oversold ? color.new(color.green, 0) : rsiValue < overbought ? color.new(color.red, 0) : color.new(color.blue, 0)
plot(ema30, color=ema30Color, title='EMA 30 Colored')
// Highlight Buy and Sell signals on the chart
bgcolor(buyCondition ? color.new(color.green, 90) : na)
bgcolor(sellCondition ? color.new(color.red, 90) : na)
// Plotting Buy and Sell Signals on the Chart until strategy exit
barcolor(strategy.position_size > 0 and rsiValue > overbought ? color.new(color.yellow, 0) : strategy.position_size < 0 and rsiValue < oversold ? color.new(color.black, 0) : na)