Тренд треугольника после стратегии

Автор:Чао Чжан, Дата: 2023-09-20 14:24:16
Тэги:

Обзор

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

Логика стратегии

  1. Для определения направления тренда используйте быструю EMA и среднюю EMA.

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

  3. После входа, когда быстрая EMA пересекается ниже средней EMA, она указывает на изменение тренда и дает сигнал выхода.

  4. Установите стоп-лосс на определенный процент ниже входной цены для выхода стоп-лосса.

  5. Установите цель получения прибыли на определенный процент выше входной цены для частичного получения прибыли.

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

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

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

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

  3. Разумные параметры стоп-лосса и прибыли контролируют убытки от одной сделки.

  4. Только торговля в восходящем тренде избегает переменных периодов.

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

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

  2. Слишком близкая стоп-потеря имеет тенденцию к преждевременной остановке, в то время как слишком широкая не контролирует потерю.

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

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

Направления к улучшению

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

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

  3. Оптимизировать параметры стоп-лосса и прибыли на основе характеристик продукта.

  4. Добавьте другие индикаторы, такие как модель MACD, прорыв Боллинджера и т. д., чтобы улучшить качество сигнала.

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

Резюме

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


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

Больше