Эта стратегия основана на среднем стохастическом осцилляторе для оценки торговых сигналов и относится к следующей стратегии тренда. Она рассчитывает движущиеся средние значения %K и %D среднего стохастического осциллятора. Когда происходит золотой крест, идите длинным. Когда происходит смертельный крест, идите коротким. Это типичная стратегия, следующая за трендом.
Вычислить значения %K и %D среднего стохастического осциллятора. %K - скользящая средняя случайных значений, рассчитанных на основе цен закрытия за определенный период, отражающая относительную позицию текущей цены к самым высоким и самым низким ценам за определенный период. %D - скользящая средняя %K, используемая для подтверждения тенденции.
Для получения средних значений _avg_k и _avg_d среднего стохастического осциллятора применяется экспоненциально плавная скользящая средняя (EMA) на %K и %D соответственно.
Определить торговые сигналы:
Сигнал покупки: когда _avg_k пересекает _avg_d и _avg_d < 20, перейти на длинный.
Сигнал продажи: когда _avg_k переходит ниже _avg_d и _avg_d > 80, перейти на короткий.
Управление позициями:
Длинный стоп-лосс: закрыть длинный, когда _avg_d > 80
Краткий стоп-потеря: закрыть короткий, когда _avg_d < 20
Позвольте максимум 3 ордера в одном направлении, что является пирамидальной стратегией.
Использование двойных скользящих средних для определения золотого креста и креста смерти может эффективно фильтровать ложные прорывы и улучшать качество сигнала.
Применение среднего стохастического осциллятора может эффективно отслеживать тенденции цен.
Сочетание зон перекупки и перепродажи помогает избежать частой торговли на рынке с ограниченным диапазоном.
Разрешая пирамиды можно получить больше прибыли на трендовом рынке.
Стратегия стоп-лосса контролирует одиночные потери.
Стратегии торговли двойной скользящей средней, как правило, приводят к частым сделкам, что повлияет на прибыльность, если затраты на транзакции слишком высоки.
Использование фиксированных точек остановки потерь может привести к тому, что остановка потерь может произойти слишком рано, выходя из тренда.
Слишком много пирамиды может увеличить потерю.
Он не может эффективно определять точки переворота тренда и может привести к большим потерям при перевороте тренда.
Периоды параметров должны быть оптимизированы, потому что разные периоды могут привести к очень разным результатам.
Подумайте о введении индикаторов оценки тренда, чтобы избежать торговли с противоположным трендом.
Динамически регулируйте точки остановки потери, чтобы лучше соответствовать тренду.
Оптимизировать стратегию пирамиды, например, постепенно увеличивать размер позиции.
Включить другие показатели для раннего оценки изменения тренда и выхода прибыли.
Оптимизация параметров испытания отдельно для различных продуктов для улучшения адаптивности.
В общем, это типичная стратегия, следующая за трендом. Он использует средний стохастический осциллятор для определения направления тренда и пирамид, когда происходит тренд. Преимущество заключается в сильной способности отслеживания, подходящей для трендового рынка. Но важно избегать торговли с контртендом. Дальнейшая оптимизация может быть сделана путем внедрения суждения о тренде, оптимизации стратегии стоп-лосса, контроля времени пирамидирования и т. Д. При правильном выборе параметров можно достичь хороших результатов отслеживания.
/*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