Средняя стохастическая стратегия торговли

Автор:Чао Чжан, Дата: 2023-10-26 16:20:33
Тэги:

img

Обзор

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

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

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

  2. Для получения средних значений _avg_k и _avg_d среднего стохастического осциллятора применяется экспоненциально плавная скользящая средняя (EMA) на %K и %D соответственно.

  3. Определить торговые сигналы:

    • Сигнал покупки: когда _avg_k пересекает _avg_d и _avg_d < 20, перейти на длинный.

    • Сигнал продажи: когда _avg_k переходит ниже _avg_d и _avg_d > 80, перейти на короткий.

  4. Управление позициями:

    • Длинный стоп-лосс: закрыть длинный, когда _avg_d > 80

    • Краткий стоп-потеря: закрыть короткий, когда _avg_d < 20

  5. Позвольте максимум 3 ордера в одном направлении, что является пирамидальной стратегией.

Преимущества

  1. Использование двойных скользящих средних для определения золотого креста и креста смерти может эффективно фильтровать ложные прорывы и улучшать качество сигнала.

  2. Применение среднего стохастического осциллятора может эффективно отслеживать тенденции цен.

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

  4. Разрешая пирамиды можно получить больше прибыли на трендовом рынке.

  5. Стратегия стоп-лосса контролирует одиночные потери.

Риски

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

  2. Использование фиксированных точек остановки потерь может привести к тому, что остановка потерь может произойти слишком рано, выходя из тренда.

  3. Слишком много пирамиды может увеличить потерю.

  4. Он не может эффективно определять точки переворота тренда и может привести к большим потерям при перевороте тренда.

  5. Периоды параметров должны быть оптимизированы, потому что разные периоды могут привести к очень разным результатам.

Оптимизация

  1. Подумайте о введении индикаторов оценки тренда, чтобы избежать торговли с противоположным трендом.

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

  3. Оптимизировать стратегию пирамиды, например, постепенно увеличивать размер позиции.

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

  5. Оптимизация параметров испытания отдельно для различных продуктов для улучшения адаптивности.

Резюме

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


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

//@version=5
//1. AVG Stochastic Calculate
//1.1 AVG %K is calculated by apply EMA with smooth K period on Average of Original Stochastic %k & %d
//+ avg_k=ema((%k+%d)/2,smoothK)
//1.2 AVG %D is calculated by apply EMA with %d period on AVG %K
//+ avg_d=ema(avg_k,periodD)
//2. Parameter
//+ %K Length: 21
//+ %K Smoothing: 3
//+ %D Smoothing: 3
//+ Symbol: BTC/USDT
//+ Timeframe: M30
//+ Pyramiding: Maximum 3 orders at the same direction.
//3. Signal
//3.1 Buy Signal
//+ Entry: AVG %K crossover AVG %D and AVG %D < 20
//+ Exit: AVG %D > 80 
//3.2 Sell Signal
//+ Entry: AVG %K crossunder AVG %D and AVG %D > 80
//+ Exit: AVG %D < 20 
strategy(title="AVG Stochastic Strategy [M30 Backtesting]", overlay=true, pyramiding=3)
periodK = input.int(21, title="%K Length", minval=1)
smoothK = input.int(3, title="%K Smoothing", minval=1)
periodD = input.int(3, title="%D Smoothing", minval=1)
k = ta.sma(ta.stoch(close, high, low, periodK), smoothK)
d = ta.sma(k, periodD)
_avg_k=ta.ema(math.avg(k,d),smoothK)
_avg_d=ta.ema(_avg_k,periodD)
up=
   _avg_k[1]<_avg_d[1]
   and _avg_k>_avg_d
   and _avg_d<20
dn=
   _avg_k[1]>_avg_d[1]
   and _avg_k<_avg_d
   and _avg_d>80
var arr_val=0
if up
    arr_val:=1
    strategy.entry("Long", strategy.long)
if dn
    arr_val:=-1
    strategy.entry("Short", strategy.short)
if up[1] or dn[1]
    arr_val:=0
plotarrow(arr_val,title="Signal",colorup=color.green,colordown=color.red)
if _avg_d>80 
    strategy.close("Long")
if _avg_d<20 
    strategy.close("Short")
//EOF

Больше