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


Дата создания: 2024-02-29 12:11:23 Последнее изменение: 2024-02-29 12:11:23
Копировать: 0 Количество просмотров: 1116
1
Подписаться
1617
Подписчики

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

Обзор

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

Стратегический принцип

Ключевыми показателями стратегии являются случайные индексы K-линии и D-линии. K-линия отражает недавнее движение цены, а D-линия - движущееся среднее для K-линии. Их относительное положение и направление позволяют судить о ценовом тренде и возможном обратном направлении.

В частности, когда кратковременная K-линия пробивает среднюю D-линию снизу вверх, это означает, что в краткосрочной перспективе существует движение цены вверх; когда кратковременная K-линия пробивает среднюю D-линию снизу вверх, это означает, что в краткосрочной перспективе существует давление на цену вниз.

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

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

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

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

  1. Более высокие временные рамки гарантируют, что торговля будет вестись только в направлении тренда, что позволит снизить количество бесполезных смен и убытков;
  2. Текущие временные рамки гарантируют кратковременный обрат в тренде с более низким риском захвата, что позволяет более точным и своевременным входам и выходам.
  3. Двойная комбинация случайных показателей повышает точность сигнала и снижает вероятность появления ложного сигнала.

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

В этой стратегии есть свои риски, которые проявляются в следующих аспектах:

  1. При резком повороте событий показатели более высоких временных рамок могут задерживать идентификацию новых тенденций, что приводит к задержке стратегии по смене направления и увеличению убытков. Необходимо оптимизировать параметры временных рамок, чтобы обеспечить достаточно своевременную информацию о рынке.
  2. Нынешние временные рамки показателей слишком чувствительны, что может увеличить частоту стратегических сделок и затраты на торговлю. Необходимо соответствующе скорректировать параметры, чтобы отфильтровать незначительный рыночный шум.
  3. Несмотря на то, что комбинация двух случайных индикаторов повышает точность сигнала, она также задерживает скорость реакции. Если ситуация сильно колеблется, возможно, будет пропущена оптимальная точка пересечения.

Направление оптимизации

Основными направлениями оптимизации стратегии являются:

  1. оптимизация фактора сглаживания более высоких временных рамок, чтобы они могли своевременно отражать новые тенденции;
  2. Настройка параметров индикатора текущего временного фрейма с установкой разумного прорывного порога для фильтрации сигналов шума;
  3. Испытание эффективности различных комбинаций временных рамок, чтобы найти оптимальный баланс;
  4. Добавление стоп-стратегии для контроля риска одиночных потерь.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("MTF stochastic strategy", overlay=false,pyramiding=3,default_qty_type=strategy.percent_of_equity,default_qty_value=100,currency=currency.USD)
//
//this strategy is inspired to bobby thread in forexfactory forum
//
len = input(11, minval=1, title="Length for Main Stochastic") 
smoothK = input(3, minval=1, title="SmoothK for Main Stochastic")
smoothD = input(3, minval=1, title="SmoothD for Main Stochastic")
upLine = input(80, minval=50, maxval=90, title="Upper Line Value?")
lowLine = input(20, minval=10, maxval=50, title="Lower Line Value?")
trailStep=input(50,minval=10,title="Trialing step value")

// current stochastic calculation
k = sma(stoch(close, high, low, len), smoothK)
d = sma(k, smoothD)

//mtf stochastic calculation smoothed with period

mtfK= sma(stoch(close, high, low, len), smoothK*3)
mtfD= sma(k, smoothD*3)

plot(k,"current TF k",black,style=linebr)
plot(d,"current TF d",gray,style=linebr)
plot(mtfK,"MTF TF k",red,style=line)
plot(mtfD,"Multi TF d",green,style=line)
hline(upLine)
hline(50)
hline(lowLine)

longCondition = crossover(mtfK, 50) and k>50 and change(k,1)>0 and k>d and mtfK>mtfD
if (longCondition)
    strategy.entry("Lungo", strategy.long)

shortCondition = crossunder(mtfD, 50) and k<50 and change(k,1)<0 and k<d and mtfK<mtfD
if (shortCondition)
    strategy.entry("Corto", strategy.short)
    
exitlong=crossunder(mtfD, upLine)
exitshort=crossover(mtfK, lowLine)

if (exitlong)
    strategy.exit("Esci lungo","Lungo",trail_points=trailStep)
if (exitshort)
    strategy.exit("Esci corto","Corto",trail_points=trailStep)