Эта стратегия относится к стратегии отслеживания тенденций. Выполняйте лишние операции, когда цена прорывает верхнюю треугольную форму, и не совершайте рыночных операций, когда быстрая EMA пересекает среднюю EMA. Одновременно устанавливайте остановки и остановки, чтобы контролировать риск.
Используйте быструю ЭМА и среднюю ЭМА, чтобы определить направление тренда. Быстрая ЭМА и средняя ЭМА являются позитивными.
Используйте наиболее близкие N-коренные K-линии для определения наивысшей и наименьшей цены, чтобы определить, образуются ли вверх треугольники. Образуйте треугольники как многосигнал.
После выхода на рынок, когда быстрая EMA пересекает среднюю EMA, считается, что тенденция изменилась, и посылается сигнал о приостановке.
Стоп-стоп на входную цену должен быть ниже определенного процента, а стоп-стоп на выходную.
Установите точку остановки в процентном отношении выше цены входа, а часть точек остановки выходит.
Используйте 200-дневную EMA для определения направления общей тенденции, действуйте только в случае повышения тенденции.
Фильтрация с использованием треугольной формы позволяет улучшить точность входа в игру.
Быстрая EMA и средняя EMA разумно делят тенденции и колебания, чтобы избежать подтасовки.
Устойчивые и сдерживающие настройки позволяют контролировать одиночные потери.
Только при повышении тренда можно избежать фазы коррекции.
Слишком маленький диапазон треугольника может пропустить тенденцию, слишком большой - увеличить бесполезную торговлю. Необходимо оптимизировать параметры N.
Слишком близко от точки остановки легко ударить, слишком далеко трудно контролировать потери. Необходимо оценить действие параметров и оптимизировать.
Неправильная установка некоторых ограничений может привести к перенасыщению прибыли.
Неправильные параметры индикатора для определения тенденции могут привести к неправильному направлению позиции. Необходима оптимизация многовидовой обратной связи.
Оптимизируйте параметры, определенные треугольником, чтобы найти оптимальное значение.
Тестирование различных комбинаций циклов EMA для повышения точности определения трендов.
Оптимизация параметров сдерживания ущерба в зависимости от характеристик разных сортов.
Добавление других показателей, таких как MACD-форма, прорыв Бринского пояса и т.д., повышает качество сигнала.
Добавление механизма “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)