Внутреннедневный стохастический осциллятор с двойной скользящей средней кроссоверной стратегией

Автор:Чао Чжан, Дата: 2023-10-27 17:00:04
Тэги:

img

Обзор

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

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

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

Двойной скользящий средний кроссовер состоит из быстрой скользящей средней, медленной скользящей средней и ультрамедленной скользящей средней. Когда быстрый MA пересекает поверх медленной MA, это сигнал покупки. Когда быстрый MA пересекает ниже медленной MA, это сигнал продажи.

Стохастический осциллятор содержит значения %K и %D. %K показывает, где текущее закрытие относится к самым высоким и самым низким ценам за последние N дней. %D представляет собой простую скользящую среднюю величину %K за M-день. Значения выше 80 означают уровни перекупления и значения ниже 20 означают уровни перепродажи. Стохастический осциллятор может идентифицировать краткосрочные зоны перекупления / перепродажи.

Эта стратегия сочетает в себе перекресток двойного MA и стохастический осциллятор. Он ищет сигналы обратного тренда от перекрестка двойного MA, когда стохастический показывает уровни перекупленности / перепродажи. Это направлено на обнаружение краткосрочных обратных тенденций.

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

Преимущества этой стратегии:

  1. Сочетание двойного кроссовера MA и стохастического осциллятора для выявления как среднесрочных, так и краткосрочных обратных тенденций.

  2. Использование стохастических сигналов перекупленности/перепроданности для выбора более эффективных сделок с перекрестным перекрестным перекрестным перекрестным перекрестным MAC.

  3. Ясные правила торговли, которые легко реализовать.

  4. Настройка параметров времени и месяца торговли, подходящих для различных продуктов и периодов времени.

  5. Остановить убытки для контроля рисков.

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

Риски этой стратегии:

  1. Двойной MA может иметь ложные прорывы. Стохастический может иметь недействительные дивергенции быка / медведя, что приводит к неправильным торговым сигналам. Прекрасно настройте параметры или добавьте другие индикаторы для подтверждения комбинации.

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

  3. Трудно определить точное время обратного движения MA, могут возникнуть проблемы с слишком тесными или слишком широкими остановками.

  4. Оптимизировать параметры для различных продуктов и временных рамок посредством обратного тестирования.

  5. Подходит только для краткосрочной торговли, не для долгосрочного хранения.

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

Стратегия может быть оптимизирована в нескольких аспектах:

  1. Проверьте больше комбинаций индикаторов, таких как KDJ, MACD и т. Д., Чтобы улучшить достоверность сигнала.

  2. Добавьте анализ объема торговли, чтобы избежать ложных вырывов.

  3. Оптимизировать параметры двойного MA для определения более точных точек перехода.

  4. Оптимизируйте стратегию стоп-лосса, чтобы уменьшить вероятность остановки.

  5. Добавить модули управления рисками экономических событий для предотвращения воздействия крупных событий.

  6. Используйте методы машинного обучения для автоматической оптимизации параметров для лучшей адаптации.

  7. Проверка на более широком спектре продуктов и временных рамок для поиска наилучших приложений.

Заключение

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


/*backtest
start: 2022-10-26 00:00:00
end: 2023-10-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="Intraday Stochiastic Strategy", shorttitle="Intraday Stochiastic Strategy", overlay=true, initial_capital = 1000)
//WORKS FOR BTCUSD M30
//OBVERVED GOOD PERFORMANCES FOR SELL MODE M15 : US30USD / UK100GBP / JP225USD / SPX500USD / BCOUSD / EURGBP
//Best Forex Hours are 7-21
//0 is Long Position
//1 is Short Position
//2 No position
mode=input(1, maxval=2, title="Mode")
lossLimit=input(10000, maxval=10000, title="Loss Limit")
hourStart=input(2, maxval=24, title="Hour Start")
hourStop=input(13, maxval=24, title="Hour Stop")

//Month selected for back testing. 0 is maximum number of months
monthSelected = input(0, maxval=12, title="Month Selected")

/////////////////////////////////////////////////

fast = 20, slow = 50, ultraSlow = 200
fastMA = sma(close, fast)
slowMA = sma(close, slow)
ultraSlowMA = sma(close, ultraSlow)

colorFast = red
colorSlow = black
colorUltraSlowMA = purple

if(timeframe.period == "1" or timeframe.period == "3" or timeframe.period == "5" or timeframe.period == "15" or timeframe.period == "30" or timeframe.period == "45" or timeframe.period == "60" or timeframe.period == "120" or timeframe.period == "180" or timeframe.period == "240")
    fastMA := ema(close, fast)
    slowMA := ema(close, slow)
    ultraSlowMA := ema(close, ultraSlow)
    colorFast := orange
    colorSlow := gray
    colorUltraSlowMA := blue

p1 = plot(fastMA, color=colorFast)
p2 = plot(slowMA, color=colorSlow, linewidth=2)  
p3 = plot(ultraSlowMA, color=colorUltraSlowMA, linewidth=3)

fill(p1, p2, color = fastMA > slowMA ? green : red)

////////////////////////////////////////////////

ema150 = 200
ema150MA = ema(close, ema150)

smooth = input(3, minval=1), K = input(14, minval=1), D=input(3,minval=1)
hh=highest(high,K)
ll=lowest(low,K)
k = sma((close-ll)/(hh-ll)*100, smooth)
d = sma(k, 3)
//plot(k, color=blue)
//plot(d, color=red)
//h0 = hline(80)
//h1 = hline(20)
//fill(h0, h1, color=purple, transp=95)


//plot(hour*100, color=red, linewidth=2)

stochiasticHigh = 80
stochiasticLow = 20

data = close < ema150MA and k>stochiasticHigh and d>stochiasticHigh and close>open
plotshape(data, style=shape.triangledown, location=location.belowbar, color=red)

data2 = close > ema150MA and k<stochiasticLow and d<stochiasticLow and close<open
plotshape(data2, style=shape.triangleup, location=location.abovebar, color=green)

isData = 0
isData := isData[1]

    
if(isData == 0)
    if(data)
        if(mode==1 and hour>hourStart and hour<hourStop and (monthSelected==0 or month==monthSelected)) //DOW hours : 2-13
            strategy.entry("SCALP SHORT", strategy.short)  
            isData := 1
else
    if(k<stochiasticLow and d<stochiasticLow)
        if(mode==1)
            strategy.close_all(when = true)
        isData := 0
        
isData2 = 0
isData2 := isData2[1]
    
if(isData2 == 0)
    if(data2)
        if(mode==0 and hour>hourStart and hour<hourStop and (monthSelected==0 or month==monthSelected))
            strategy.entry("SCALP LONG", strategy.long)  
            isData2 := 1
else
    if(k>stochiasticHigh and d>stochiasticHigh)
        if(mode==0)
            strategy.close_all(when = true)
        isData2 := 0

strategy.exit("STOP LOSS", "SCALP LONG", loss=lossLimit)
strategy.exit("STOP LOSS", "SCALP SHORT", loss=lossLimit) 

Больше