Движущаяся средняя тенденция в соответствии с торговой стратегией

Автор:Чао Чжан, Дата: 2023-12-11 15:05:31
Тэги:

img

Обзор

Эта стратегия рассчитывает скользящую среднюю величину и скорость изменения цен, чтобы определить, находится ли текущее состояние в восходящем или нисходящем тренде в сочетании с K-линиями в течение определенного периода, и соответственно идет длинным или коротким.

Принцип стратегии

Эта стратегия сначала рассчитывает простую скользящую среднюю a длины l и скорость изменения цены r длины l. Затем рассчитывает разницу k между текущей ценой K-линии и скользящей средней. Наконец, рассчитывает сумму суммы k за прошлые s K-линий.

Если сумма > 0, это указывает на текущий рост, и стратегия будет длинной.

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

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

Самое большое преимущество этой стратегии заключается в том, что она может поймать тренд и подходит для торговли трендом.

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

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

  3. Принимая во внимание несколько K-линий в течение периода, можно более точно определить тенденцию и избежать введения в заблуждение отдельных Ausreißer.

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

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

Основными рисками этой стратегии являются:

  1. Неспособность точно определить время окончания тренда, может прервать убытки преждевременно или пропустить некоторые прибыли.

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

  3. Неправильные параметры стратегии могут привести к чрезмерной частоте торговли или упущению некоторых торговых возможностей.

  4. Долгосрочные активы могут подвергаться риску процентов и маржи на одну ночь.

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

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

К основным аспектам оптимизации этой стратегии относятся:

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

  2. Попробуйте другие индикаторы, такие как MACD, чтобы лучше определить тенденцию и еще больше улучшить точность.

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

  4. Включить индикаторы волатильности для установки динамических остановок для снижения рисков в экстремальных рыночных условиях.

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

Заключение

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


/*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)

Больше