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