Стратегия стохастических и скользящих средних с двойными фильтрами

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

img

Обзор

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

Логика стратегии

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

Конкретно, эта стратегия рассчитывает 21-периодные стохастические значения K и D, а также 38-периодную EMA. Когда K пересекает выше D в зону перепроданности (по умолчанию 25), генерируется сигнал покупки. Когда цены пересекают ниже EMA и стохастический K выше порога фильтра (65), предполагается обратный тренд и позиция закрывается. Также реализуется правило стоп-лосса 13%.

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

Анализ преимуществ

Основными преимуществами этой стратегии являются:

  1. Стохастический К определяет хорошие точки входа при переходе на перепроданную территорию.

  2. Двойные фильтры К/Д и ценовые экстремалы эффективно избегают ложных сигналов.

  3. Отслеживание прибыли с EMA в полной мере использует динамику роста.

  4. Стохастическая система фильтрует нормальные отклонения от отклонений при учете прибыли.

  5. Подходит для средне- и долгосрочных активов с хорошей рентабельностью.

Анализ рисков

Некоторые риски следует учитывать:

  1. Системный риск - медвежие рынки могут привести к большим потерям.

  2. Риск отклонения - временные отклонения цены могут преждевременно вызвать стоп-лосс MA.

  3. Риск оптимизации параметров - неправильная настройка параметров влияет на производительность.

  4. Риск черного лебедя - технические показатели не справляются с шоками рынка.

Руководство по оптимизации

Некоторые способы оптимизации стратегии:

  1. Оптимизировать параметры показателей посредством строгого обратного тестирования.

  2. Добавьте другие методы остановки потери, такие как волатильность или остановка потери.

  3. Включить другие показатели, такие как объем, полосы Боллинджера и т.д.

  4. Испытать более короткие/длинные периоды скользящей средней.

  5. Динамическое регулирование параметров на основе рыночных режимов.

Заключение

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


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

//@version=5
// English version
strategy(title='Stochastic & MA',  overlay=false)
// INPUTS : all default value have already been optimized
length = input.int(21, 'period', minval=1)
lossp = input.int(13, 'stop loss %', minval=2, step=1)
leverage = input.int(1, 'leverage', minval=1, step=1)
// leverage has been introduced for modifying stop loss levels for financial instruments with leverage, like ETF 
n = input(2, 'n days ago')
filtro = input.int(65, 'k filter for throwbacks', minval=20, step=1)
OverSold = input.int(25, 'Oversold value', minval=5, step=5)
// Building indicators
smoothK = input.int(6, 'k', minval=1)
smoothD = input.int(4, 'd', minval=1)
k = ta.sma(ta.stoch(close, high, low, length), smoothK)
d = ta.sma(k, smoothD)
//Empowerment: introducing EMA
sma_period = input.int(38, 'periodo Sma', minval=1)
emaf = ta.ema(close, sma_period)
//ENTRY condition and order
// First of all, it's better not trade shares with a quaterly loss or with a bad surprise towards to analysts' expectations or ipevaluated (P/E > 50), but on your choice
// You entry when Stochastic's K is higher than D in Oversold area (you may personalize), applying the condition that today's close should be higher than one of n-days ago (default of the day before yesterday or 2 candles ago)
entry1 = k > d and k <= OverSold and close >= close[n]
strategy.entry('Long', strategy.long, comment='k basso', when=entry1)
//EXIT CONDITIONS
//  1) close crosses under exponential movinig average with filter that k >= fixed level (65), in order to distinguish a violent movement of prices with a possibile beginning of a trend from an almost exhausted "ordinary" throwback
// 2) fixed stop loss on percentage
exit1 = ta.crossunder(close, emaf) and k >= filtro
losspel = strategy.position_avg_price * (1 - lossp / 100 * leverage)
exit2 = close < losspel
strategy.close('Long', when=exit1, comment='sma')
strategy.close('Long', when=exit2, comment='stop loss')
// plotting indicators (add Ema on your choice)
plot(k, color=color.new(color.blue, 0), linewidth=1, title='k Stoch')
plot(d, color=color.new(color.red, 0), linewidth=1, title='d stoch signal')
plot(OverSold, title='Oversold', color=color.new(color.aqua, 0))
plot(filtro, color=color.new(color.gray, 0), title='k-filter for ema')





Больше