Стратегия следования за трендом, основанная на пересечении канала BB и пробитии скользящей средней SMA200


Дата создания: 2023-11-16 11:04:42 Последнее изменение: 2023-11-16 11:04:42
Копировать: 0 Количество просмотров: 700
1
Подписаться
1617
Подписчики

Стратегия следования за трендом, основанная на пересечении канала BB и пробитии скользящей средней SMA200

Обзор

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

Стратегический принцип

  1. Вычисление SMA200 Экспоненциальной Передвигающейся Средней как индикатора больших тенденций
  2. Рассчитывается лента бурин, включающая верхний, средний, нижний рельсы, и заполняется цветом как прибыльная зона
  3. Когда буринская лента находится в восходящем тренде, когда она выше SMA200
  4. Повышенный вход, когда цены выходят из средней полосы Брин-Бенда.
  5. Частично свернуто, когда цена упала вниз и вышла из Бринского пояса
  6. Когда цена падает ниже SMA200, это означает, что тенденция изменилась, и все позиции были сброшены.
  7. Установите точку остановки, чтобы избежать лишних потерь
  8. Количество сделок, рассчитанных на основе средств на счету и приемлемого риска

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

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

  1. Существует явная тенденция к использованию оценок по Бринговым полосам, а не на основе одного показателя.
  2. SMA200 оценивает направление большого тренда, чтобы избежать бесполезной торговли в условиях колебаний
  3. Частично приостановить сделку, отследить тренд
  4. Прекращение убытков в ключевых точках и своевременное прекращение убытков, чтобы максимально предотвратить их увеличение
  5. Рассчитывание количества сделок внедряет концепцию управления рисками, чтобы предотвратить чрезмерные потери

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

  1. В результате взлома в Брин-Бенде может возникнуть более высокий уровень ложных сигналов.
  2. Некоторые параметры остановки требуют оптимизации для предотвращения преждевременной остановки
  3. Стойки слишком малы, могут быть слишком частыми
  4. Параметры цикла SMA требуют оптимизации тестирования для баланса задержки и чувствительности
  5. Методы расчета количества сделок могут нуждаться в оптимизации, чтобы предотвратить чрезмерное количество разовых платежей

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

Направление оптимизации

  1. Тестирование оптимизации параметров Брин-полосы для снижения погрешности сигналов
  2. Изучение того, как установить более подходящие частичные остановки
  3. Оптимальные значения для тестирования параметров цикла SMA
    1. Рассмотреть возможность внедрения адаптивных стоп-стопов вместо фиксированных
  4. Исследование вводит коэффициент волатильности для более научного расчета объема сделки
  5. Моделирование отсчета стоимости сделки
  6. Рассмотрение возможности использования в сочетании с другими показателями для повышения стабильности стратегии

Подвести итог

Эта стратегия объединяет каналы Брин, среднелинейный индикатор SMA, чтобы создать более полную стратегию отслеживания тенденции. Она более надежна в определении наличия тенденции и обладает более сильными возможностями отслеживания тенденции.

Исходный код стратегии
/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4
strategy(title="BB9_MA200_Strategy", overlay=true, pyramiding=1,     default_qty_type=strategy.cash,  initial_capital=10000, currency=currency.USD)  //default_qty_value=10, default_qty_type=strategy.fixed, 


var stopLossVal=0.00

//variables BEGIN
smaLength=input(200,title="MA Length")
bbLength=input(21,title="BB Length")  

bbsrc = input(close, title="BB Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")


stopLoss = input(title="Stop Loss%", defval=5, minval=1)

riskCapital = input(title="Risk % of capital  == Based on this trade size is claculated    numberOfShares = (AvailableCapital*risk/100) / stopLossPoints", defval=10, minval=1)


sma200=ema(close,smaLength)

plot(sma200, title="SMA 200", color=color.orange)


//bollinger calculation
basis = sma(bbsrc, bbLength)
dev = mult * stdev(bbsrc, bbLength)
upperBand = basis + dev
lowerBand = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)

//plot bb
plot(basis, "Basis", color=color.teal, style=plot.style_circles , offset = offset)
p1 = plot(upperBand, "Upper", color=color.teal, offset = offset)
p2 = plot(lowerBand, "Lower", color=color.teal, offset = offset)
fill(p1, p2, title = "Background", color=color.teal, transp=95)


strategy.initial_capital = 50000

//Entry---

strategy.entry(id="LE", comment="LE capital="+tostring(strategy.initial_capital + strategy.netprofit ,"######.##"), qty=( (strategy.initial_capital + strategy.netprofit ) * riskCapital / 100)/(close*stopLoss/100) , long=true,  when=strategy.position_size<1 and upperBand>sma200 and lowerBand > sma200 and crossover(close, basis) )     //  // aroonOsc<0  //(strategy.initial_capital * 0.10)/close


barcolor(color=strategy.position_size>=1? color.blue: na)

//partial Exit
tpVal=strategy.position_size>1 ? strategy.position_avg_price * (1+(stopLoss/100) ) : 0.00
strategy.close(id="LE", comment="Partial points="+tostring(close - strategy.position_avg_price, "####.##"),  qty_percent=30 , when=abs(strategy.position_size)>=1 and close>tpVal and crossunder(lowerBand, sma200)   )   //close<ema55 and rsi5Val<20 //ema34<ema55


//close All on stop loss
//stoploss
stopLossVal:=   strategy.position_size>1 ? strategy.position_avg_price * (1-(stopLoss/100) ) : 0.00

strategy.close_all( comment="SL Exit points="+tostring(close - strategy.position_avg_price, "####.##"),  when=abs(strategy.position_size)>=1 and close < stopLossVal  )  //close<ema55 and rsi5Val<20 //ema34<ema55  //close<ema89//

strategy.close_all( comment="BB9 X SMA200 points="+tostring(close - strategy.position_avg_price, "####.##"),  when=abs(strategy.position_size)>=1 and  crossunder(basis, sma200)  )  //close<ema55 and rsi5Val<20 //ema34<ema55  //close<ema89