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