Эта стратегия рассчитывает скользящую среднюю величину и скорость изменения цен, чтобы определить, находится ли текущее состояние в восходящем или нисходящем тренде в сочетании с K-линиями в течение определенного периода, и соответственно идет длинным или коротким.
Эта стратегия сначала рассчитывает простую скользящую среднюю a длины l и скорость изменения цены r длины l. Затем рассчитывает разницу k между текущей ценой K-линии и скользящей средней. Наконец, рассчитывает сумму суммы k за прошлые s K-линий.
Если сумма > 0, это указывает на текущий рост, и стратегия будет длинной.
После длинного или короткого курса позиция будет удерживаться до тех пор, пока тенденция не изменится (сумма не изменится с положительной на отрицательную или наоборот), после чего позиция будет закрыта.
Самое большое преимущество этой стратегии заключается в том, что она может поймать тренд и подходит для торговли трендом.
Использование скользящей средней для определения общего направления тренда может эффективно фильтровать рыночный шум и блокировать основную тенденцию.
Применение показателя скорости изменения цен для измерения силы импульса позволяет избежать отсутствия сильного импульса.
Принимая во внимание несколько K-линий в течение периода, можно более точно определить тенденцию и избежать введения в заблуждение отдельных Ausreißer.
До тех пор, пока тенденция остается неизменной, продолжайте удерживать позицию, чтобы максимизировать прибыль от трендового рынка.
Основными рисками этой стратегии являются:
Неспособность точно определить время окончания тренда, может прервать убытки преждевременно или пропустить некоторые прибыли.
В условиях экстремальных рыночных условий убытки могут быть значительными, поскольку не удается эффективно контролировать размер одного убытка.
Неправильные параметры стратегии могут привести к чрезмерной частоте торговли или упущению некоторых торговых возможностей.
Долгосрочные активы могут подвергаться риску процентов и маржи на одну ночь.
Чтобы контролировать риски, мы можем устанавливать точки остановки потерь, торговать только высоколиквидными продуктами, оптимизировать параметры и разумно использовать рычаги.
К основным аспектам оптимизации этой стратегии относятся:
Проверьте скользящие средние и темпы изменения цен различной длины, чтобы найти наилучшую комбинацию параметров.
Попробуйте другие индикаторы, такие как MACD, чтобы лучше определить тенденцию и еще больше улучшить точность.
Добавьте механизмы управления позициями, такие как получение прибыли после получения некоторой прибыли, чтобы контролировать однократные потери.
Включить индикаторы волатильности для установки динамических остановок для снижения рисков в экстремальных рыночных условиях.
Оптимизировать логику входа и выхода, чтобы отфильтровать ложные прорывы и повысить эффективность торговли.
Общая логика этой стратегии ясна и проста в реализации. Отслеживая тенденции для долгосрочной торговли холдингами, контроль за снижением является относительно разумным. Он подходит для инвесторов, ищущих стабильную доходность. Дальнейшая оптимизация стоп-лосса и управления позициями позволяет ожидать хороших долгосрочных стабильных доходов.
/*backtest start: 2023-12-03 00:00:00 end: 2023-12-10 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=662, overlay=false) l = input(defval=170,title="Length for indicator") s = input(title="Length of summation",defval=18) a= sma(close,l) r=roc(close,l) k=close-a sum = 0 for i = 0 to s sum := sum + k[i] //plot(a,color=yellow,linewidth=2,transp=0) //bc = iff( sum > 0, white, teal) //plot(sum,color=bc, transp=20, linewidth=3,style=columns) //plot(sma(sum,3),color=white) //hline(0) inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0) inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0) inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0) inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0) useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na ////buyEntry = crossover(source, lower) ////sellEntry = crossunder(source, upper) if sum>0 strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands", comment="BBandLE") else strategy.cancel(id="BBandLE") if sum<0 strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands", comment="BBandSE") else strategy.cancel(id="BBandSE") strategy.initial_capital = 50000 plot(strategy.equity-strategy.initial_capital-strategy.closedtrades*.25/2, title="equity", color=red, linewidth=2) hline(0) //longCondition = sum>0 //exitlong = sum<0 //shortCondition = sum<0 //exitshort = sum>0 //strategy.entry(id = "Long", long=true, when = longCondition) //strategy.close(id = "Long", when = exitlong) //strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong) //strategy.entry(id = "Short", long=false, when = shortCondition) //strategy.close(id = "Short", when = exitshort) //strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)