
Стратегия является долголинейной торговой стратегией, использующей комбинацию фильтров с использованием случайных показателей K и индексных движущихся средних. Стратегия рассматривается как приемлемая для покупки, когда случайные показатели K входят в зону перепродажи, и как стоп-лосс или стоп-полизинг, когда цена падает ниже движущихся средних и случайные показатели фильтруют.
Двухполюсная торговая стратегия использует в основном технические характеристики индикаторов, такие как случайный показатель K для определения времени покупки и индикаторная движущаяся средняя для определения времени остановки. Разумный показатель K может быть использован для идентификации перепродажи, а движущаяся средняя является инструментом для определения ценового тренда.
Сначала стратегия рассчитывает значения K и D случайных индикаторов длиной 21 цикл, а также индексные движущиеся средние длиной 38 циклов. При этом устанавливается 13-процентное условие стоп-лосса.
Торговля с помощью двойных индикаторов и двойных фильтров позволяет эффективно отфильтровывать ложные сигналы, отслеживать длинные тренды и получать прибыль после покупки в зоне перепродажи. Эта стратегия подходит для средних и длинных позиций.
Эта стратегия имеет следующие преимущества:
Используйте случайный индикатор Determine buy point: когда случайный индикатор K пересекает D-значение и входит в зону перепродажи, это считается сигналом об обратном курсе акций и является лучшим временем для покупки.
Дизайн двойных фильтров: стратегия одновременного использования золотой форки K-значения/D-значения и фильтра низкой цены для определения времени покупки, которая может эффективно отфильтровывать ложные сигналы.
Индексные скользящие средние отслеживают остановки: индикаторы имеют запаздывание, использование которых для остановок позволяет максимально отслеживать тренд.
Снова фильтровать отклонения случайных индикаторов: при определении стоп-полизионных позиций, снова использовать фильтрование случайных индикаторов для обычных отклонений и обратных тенденций, чтобы сделать стратегию более стабильной.
Подходит для средне-длинных позиций: с помощью дизайна комбинации двух индикаторов, стратегия подходит для средне-длинных позиций, чтобы получить лучшую прибыль.
Однако эта стратегия также несет в себе некоторые риски:
Систематический риск: стратегия чувствительна к условиям крупных городов и подвержена убыткам в условиях медвежьего рынка.
Риск реверсии: при краткосрочной реверсии может быть вызван преждевременный выход из игры, что приведет к потере движущейся средней.
Риск оптимизации параметров: параметры индикатора требуют повторного тестирования оптимизации, неправильная настройка может повлиять на эффективность стратегии.
Риск возникновения внезапных событий: технические показатели не работают в случае серьезных непредвиденных событий, поэтому следует избегать таких моментов.
Некоторые из возможных направлений оптимизации стратегии включают:
Оптимизируйте параметры показателя: повторно тестируйте различные комбинации параметров, чтобы найти оптимальный параметр.
Увеличение методов остановки убытков: можно ввести такие методы, как остановка колебаний, отслеживание остановки убытков.
В сочетании с другими показателями: может быть введен показатель количественной мощности, Брин-пояса и т.д. для определения точки купли-продажи.
Оптимизация периода подвижной средней: тестирование эффективности более долгосрочной или более короткой средней.
Анализ крупных городов: изменение параметров стратегии в зависимости от динамики рынка.
Двойная индикаторная фильтрационная стратегия в целом является более полной стратегией отслеживания тенденций. Она использует случайные индикаторы для определения точки покупки, а затем использует движущиеся средние, чтобы отслеживать тенденции, и разработала двойные фильтры, которые могут эффективно отфильтровывать фальшивые сигналы.
/*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')