Стратегия следования за трендом по прорыву треугольника


Дата создания: 2023-09-20 14:24:16 Последнее изменение: 2023-09-20 14:24:16
Копировать: 0 Количество просмотров: 623
1
Подписаться
1617
Подписчики

Обзор

Эта стратегия относится к стратегии отслеживания тенденций. Выполняйте лишние операции, когда цена прорывает верхнюю треугольную форму, и не совершайте рыночных операций, когда быстрая EMA пересекает среднюю EMA. Одновременно устанавливайте остановки и остановки, чтобы контролировать риск.

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

  1. Используйте быструю ЭМА и среднюю ЭМА, чтобы определить направление тренда. Быстрая ЭМА и средняя ЭМА являются позитивными.

  2. Используйте наиболее близкие N-коренные K-линии для определения наивысшей и наименьшей цены, чтобы определить, образуются ли вверх треугольники. Образуйте треугольники как многосигнал.

  3. После выхода на рынок, когда быстрая EMA пересекает среднюю EMA, считается, что тенденция изменилась, и посылается сигнал о приостановке.

  4. Стоп-стоп на входную цену должен быть ниже определенного процента, а стоп-стоп на выходную.

  5. Установите точку остановки в процентном отношении выше цены входа, а часть точек остановки выходит.

  6. Используйте 200-дневную EMA для определения направления общей тенденции, действуйте только в случае повышения тенденции.

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

  1. Фильтрация с использованием треугольной формы позволяет улучшить точность входа в игру.

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

  3. Устойчивые и сдерживающие настройки позволяют контролировать одиночные потери.

  4. Только при повышении тренда можно избежать фазы коррекции.

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

  1. Слишком маленький диапазон треугольника может пропустить тенденцию, слишком большой - увеличить бесполезную торговлю. Необходимо оптимизировать параметры N.

  2. Слишком близко от точки остановки легко ударить, слишком далеко трудно контролировать потери. Необходимо оценить действие параметров и оптимизировать.

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

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

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

  1. Оптимизируйте параметры, определенные треугольником, чтобы найти оптимальное значение.

  2. Тестирование различных комбинаций циклов EMA для повышения точности определения трендов.

  3. Оптимизация параметров сдерживания ущерба в зависимости от характеристик разных сортов.

  4. Добавление других показателей, таких как MACD-форма, прорыв Бринского пояса и т.д., повышает качество сигнала.

  5. Добавление механизма “reopen” для продления времени получения прибыли при сохранении тенденции.

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

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

Исходный код стратегии
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 1h
basePeriod: 15m
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="TrianglePoint strategy", overlay=true,pyramiding=2, default_qty_value=3, default_qty_type=strategy.fixed,    initial_capital=10000, currency=currency.USD)
// variables  BEGIN

numPeriods=input(9,title="Number of Bars")
fastEMA = input(13, title="fast EMA", minval=1)
slowEMA = input(65, title="slow EMA", minval=1)

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


HH = highest(close[1],numPeriods)
LL = lowest(close[1],numPeriods)
tringlePoint =  low > LL and high < HH

fastEMAval= ema(close, fastEMA)
slowEMAval= ema(close, slowEMA)
two100EMAval= ema(close, 200)

//plot emas
plot(fastEMAval, color = color.green, linewidth = 1, transp=0)
plot(slowEMAval, color = color.orange, linewidth = 1, transp=0)
plot(two100EMAval, color = color.purple, linewidth = 2, transp=0)

longCondition=fastEMAval>two100EMAval and tringlePoint

//plotshape(triP,style=shape.triangleup,text="Buy",color=color.green,location=location.belowbar)
//plotshape(longCondition,style=shape.triangleup,text="Buy",color=color.green,location=location.belowbar)

//Entry
strategy.entry(id="TBT LE", comment="TBT LE" , long=true,  when= longCondition and strategy.position_size<1)   

//Add
strategy.entry(id="TBT LE", comment="Add" , long=true,  when= longCondition and strategy.position_size>=1 and close<strategy.position_avg_price)   


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

//Take profit
takeProfitVal=   strategy.position_size>=1 ?  (strategy.position_avg_price * (1+(stopLoss*0.01) )) : 0.00
//strategy.close(id="TBT LE", comment="Profit Exit",  qty=strategy.position_size/2,  when=close>=takeProfitVal and close<open and close<fastEMAval)   //crossunder(close,fastEMAval)
barcolor(strategy.position_size>=1  ? (close>takeProfitVal? color.purple : color.blue): na)

//Exit
strategy.close(id="TBT LE", comment="TBT Exit",   when=crossunder(fastEMAval,slowEMAval))


//stoploss
stopLossVal=   strategy.position_size>=1 ?  (strategy.position_avg_price * (1-(stopLoss*0.01) )) : 0.00

//stopLossVal= close> (strategy.position_avg_price * (1+(stopLoss*0.01) )) ? lowest(close,numPeriods) : (strategy.position_avg_price * (1-(stopLoss*0.01) ))


strategy.close(id="TBT LE", comment="SL Exit",   when= close < stopLossVal)