
Строка пересечения K-линий со стандартным отклонением в течение нескольких периодов времени является типичной стратегией отслеживания тенденций. Эта стратегия используется для вычисления значения стандартного отклонения в разные периоды времени (например, солнечный, солнечный, лунный и т. Д.), для построения нескольких групп K-линий и D-линий, а затем для построения среднего значения этих линий.
Основная логика этой стратегии заключается в том, чтобы вычислить стандартное отклонение на протяжении нескольких периодов времени, а затем, с помощью средних, построить торговый сигнал.
Во-первых, принятие стратегииstoch()Функция вычисляет значения стандартного отклонения K при различных параметрах, здесь в общей сложности вычисляются 5 групп значений K, соответствующие временным периодам - солнечный, круговой и лунный уровни.
smoothK = input(55)
SMAsmoothK = input(13)
k = sma(stoch(price, high, low, smoothK), SMAsmoothK)
smoothK1 = input(89)
SMAsmoothK1 = input(8)
k1 = sma(stoch(price, high, low, smoothK1), SMAsmoothK1)
...
smoothK4 = input(377)
SMAsmoothK4 = input(2)
k4 = sma(stoch(price, high, low, smoothK4), SMAsmoothK4)
Затем вычислить D-линию с различными параметрами:
smoothD = input(34)
d = sma(k, smoothD)
...
smoothD4 = input(233)
d4 = sma(k4, smoothD4)
Затем рассчитывается среднее значение каждой группы K-линий и D-линий, чтобы построить быстрые линии Kavg и медленные линии Davg:
Kavg = avg(k,k1,k2,k3,k4)
Davg = avg(d,d1,d2,d3,d4)
В конце концов, когда вы набираете скорость, вы делаете больше, а когда вы набираете медленную, вы делаете меньше:
long = crossover(Kavg, Davg)
short = crossunder(Kavg, Davg)
С помощью комбинации средних стандартных отклонений из нескольких временных периодов можно отсеивать рыночный шум в более крупных временных периодах и блокировать направление основных тенденций.
Решение:
Дополнительные фильтрационные условия, чтобы избежать ошибочных краткосрочных ложных прорывов
Использование адаптивной циклической настройки для корректировки циклических параметров в зависимости от степени волатильности рынка
Настройка мобильного стопа для своевременного прекращения убытков, чтобы избежать преследования высоких и низких
Оптимизация параметров среднелинейного цикла для нахождения оптимальной точки равновесия
Комбинирование большего количества сигналов для повышения стабильности стратегии
Эта стратегия может быть улучшена в следующих аспектах:
Введение других индикаторных сигналов в комбинации, например, введение MACD, Bollinger Bands и т. д., может улучшить качество сигнала
Добавление фильтров на тенденции, например, введение направления средней линии SMA, а также показателей, таких как ADX, для определения тенденции и предотвращения обратной торговли
Параметры цикла, динамически корректируемые в зависимости от степени волатильности рынка, с использованием адаптивных циклов
Добавление мобильных стоп-стратегий, установка стоп-точек в соответствии с параметрами стратегии, своевременная остановка
Оптимизация среднелинейных параметров для быстрого и медленного цикла, чтобы найти оптимальную комбинацию параметров
Добавление условий фильтрации на открытом складе, чтобы избежать ошибочных сигналов от краткосрочного шума
Попытайтесь выйти на рынок и открыть позицию после прорыва средней линии.
Тестирование различных стратегий выхода, таких как Chandelier Exit, оптимизация стоп-лосса
Крок-стратегия K-линии с стандартным отклонением в течение нескольких временных периодов объединяет способность отслеживать тренд от стандартного отклонения и стабильность равномерной стратегии. С помощью расчета среднего значения K-линии и D-линии с стандартным отклонением в течение нескольких временных периодов, создание торговых сигналов позволяет эффективно использовать прогнозируемую силу от стандартного отклонения в разных временных масштабах, фильтровать рыночный шум и улавливать основные тенденции.
/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title="Slow Stochastic Multi K&D Average Crossover Strategy", overlay=false, pyramiding=0, calc_on_order_fills=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, currency="USD", default_qty_value=100)
price = input(close)
///////////////////////////////
smoothK = input(55)
SMAsmoothK = input(13)
k = sma(stoch(price, high, low, smoothK), SMAsmoothK)
smoothD = input(34)
d = sma(k, smoothD)
///////////////////////////
smoothK1 = input(89)
SMAsmoothK1 = input(8)
k1 = sma(stoch(price, high, low, smoothK1), SMAsmoothK1)
smoothD1 = input(55)
d1 = sma(k1, smoothD1)
//////////////////////////////////////
smoothK2 = input(144)
SMAsmoothK2 = input(5)
k2 = sma(stoch(price, high, low, smoothK2), SMAsmoothK2)
smoothD2 = input(89)
d2 = sma(k2, smoothD2)
/////////////////////////////////////
smoothK3 = input(233)
SMAsmoothK3 = input(3)
k3 = sma(stoch(price, high, low, smoothK3), SMAsmoothK3)
smoothD3 = input(144)
d3 = sma(k3, smoothD3)
////////////////////////////////////////////////
smoothK4 = input(377)
SMAsmoothK4 = input(2)
k4 = sma(stoch(price, high, low, smoothK4), SMAsmoothK4)
smoothD4 = input(233)
d4 = sma(k4, smoothD4)
/////////////////////////////////////////////////
Kavg = avg(k,k1,k2,k3,k4, k4)
plot(Kavg, color=green)
Davg = avg(d,d1,d2,d3,d4, d4)
plot(Davg, color=red)
///////////////////////////////////////
hline(50, color=gray)
long = crossover(Kavg, Davg)// and d < 50
short = crossunder(Kavg, Davg)// and d > 50
last_long = long ? time : nz(last_long[1])
last_short = short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)
strategy.entry("Long", strategy.long, when=long_signal)
strategy.entry("Short", strategy.short, when=short_signal)
//len1 = input(3)
//closelong = d[1] < k[len1]
//closeshort = d[1] > k[len1]
//strategy.close("Long", when=closelong)
//strategy.close("Short", when=closeshort)