
Тренд-стоп с отслеживанием потерь, основанный на стратегии тренда альфа, включает в себя механизм отслеживания потерь, который позволяет более эффективно контролировать риски и повышать общую доходность.
Сначала стратегия использует альфа-индикатор для определения ценовой тенденции, когда альфа-индикатор повышается, как сигнал о повышении, а когда альфа-индикатор снижается, как сигнал о снижении. Стратегия генерирует сигналы покупки и продажи на основе золотой форки альфа-индикатора.
В то же время, стратегия включает в себя механизм отслеживания стоп-лосса. Стоп-лосса отслеживает по умолчанию 10% от цены закрытия в тот же день, и при многоходовой позиции, если цена упадет выше стоп-лосса, то стоп-лосса выйдет; при открытой позиции, если цена поднимется выше стоп-лосса, то стоп-лосса выйдет.
Альфа-тенденции обладают большей способностью определять ценовые тенденции, чем обычные движущиеся средние.
Включение механизма отслеживания стоп-убытков позволяет эффективно контролировать единичные убытки и снижать риск.
Эта стратегия позволяет контролировать риски и минимизировать убытки даже в неблагоприятных условиях.
Эта стратегия имеет меньшее количество ссылок, высокую вычислительную эффективность и подходит для высокочастотных сделок.
Эта стратегия приводит к появлению большего количества ненужных торговых сигналов при горизонтальном регулировании, что увеличивает торговые издержки и убытки от скольжения.
При включении отслеживания стоп-убытков требуется разумная установка стоп-процентов, слишком большие или слишком маленькие проценты не способствуют прибыли стратегии.
При резких колебаниях цены на биржевые цены повышается вероятность возникновения стоп-ложа, что увеличивает риск ловушки.
Оптимизация параметров стоп-лосса требует комплексного учета различных факторов, таких как характеристики параметров, частота торгов, а не только стремление к максимизации прибыли.
Вышеуказанный риск может быть смягчен путем корректировки параметров индикатора Alpha, установки DYNAMIC стоп-ложа, сокращения торгового цикла и других методов.
Можно тестировать различные показатели, чтобы найти наиболее подходящую комбинацию показателей показателя Alpha.
Попробуйте установить стоп-магнитуру на основе динамики ATR, чтобы она лучше адаптировалась к рыночным колебаниям.
В сочетании с другими показателями, такими как MACD, KD и т. д., можно отфильтровать некоторые ошибочные сигналы.
Интеллектуализация параметров, которые могут быть автоматически оптимизированы на основе результатов реального диска и обратных измерений, с использованием технологий, таких как машинное обучение, для улучшения выбора параметров.
Стратегия стоп-лосса с альфа-трендом объединяет суждение о тренде и контроль риска, чтобы эффективно определять ценовые тенденции и блокировать прибыль, снижая риск. По сравнению со простой стратегией слежения за трендом, эта стратегия может получить более высокую стабильную прибыль.
/*backtest
start: 2023-10-27 00:00:00
end: 2023-11-26 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/
// author © KivancOzbilgic
// developer © KivancOzbilgic
//@version=5
strategy("AlphaTrend Strategy", shorttitle='ATst', overlay=true, format=format.price, precision=2, margin_long=100, margin_short=100)
coeff = input.float(1, 'Multiplier', step=0.1)
AP = input(14, 'Common Period')
ATR = ta.sma(ta.tr, AP)
src = input(close)
showsignalsk = input(title='Show Signals?', defval=false)
novolumedata = input(title='Change calculation (no volume data)?', defval=false)
upT = low - ATR * coeff
downT = high + ATR * coeff
AlphaTrend = 0.0
AlphaTrend := (novolumedata ? ta.rsi(src, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT
color1 = AlphaTrend > AlphaTrend[1] ? #00E60F : AlphaTrend < AlphaTrend[1] ? #80000B : AlphaTrend[1] > AlphaTrend[3] ? #00E60F : #80000B
k1 = plot(AlphaTrend, color=color.new(#0022FC, 0), linewidth=3)
k2 = plot(AlphaTrend[2], color=color.new(#FC0400, 0), linewidth=3)
fill(k1, k2, color=color1)
buySignalk = ta.crossover(AlphaTrend, AlphaTrend[2])
sellSignalk = ta.crossunder(AlphaTrend, AlphaTrend[2])
K1 = ta.barssince(buySignalk)
K2 = ta.barssince(sellSignalk)
O1 = ta.barssince(buySignalk[1])
O2 = ta.barssince(sellSignalk[1])
plotshape(buySignalk and showsignalsk and O1 > K2 ? AlphaTrend[2] * 0.9999 : na, title='BUY', text='BUY', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(#0022FC, 0), textcolor=color.new(color.white, 0))
plotshape(sellSignalk and showsignalsk and O2 > K1 ? AlphaTrend[2] * 1.0001 : na, title='SELL', text='SELL', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.maroon, 0), textcolor=color.new(color.white, 0))
// //ENTER SOME SETUP TRADES FOR TSL EXAMPLE
// longCondition = ta.crossover(ta.sma(close, 10), ta.sma(close, 20))
// if longCondition
// strategy.entry('My Long Entry Id', strategy.long)
// shortCondition = ta.crossunder(ta.sma(close, 10), ta.sma(close, 20))
// if shortCondition
// strategy.entry('My Short Entry Id', strategy.short)
longCondition = buySignalk
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = sellSignalk
if (shortCondition)
strategy.entry("Short", strategy.short)
enableTrailing = input.bool(title='Enable Trailing Stop (%)',defval = true)
//TRAILING STOP CODE
trailStop = input.float(title='Trailing (%)', minval=0.0, step=0.1, defval=10) * 0.01
longStopPrice = 0.0
shortStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
stopValue = close * (1 - trailStop)
math.max(stopValue, longStopPrice[1])
else
0
shortStopPrice := if strategy.position_size < 0
stopValue = close * (1 + trailStop)
math.min(stopValue, shortStopPrice[1])
else
999999
//PLOT TSL LINES
plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Long Trail Stop', offset=1, title='Long Trail Stop')
plot(series=strategy.position_size < 0 ? shortStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Short Trail Stop', offset=1, title='Short Trail Stop')
if enableTrailing
//EXIT TRADE @ TSL
if strategy.position_size > 0
strategy.exit(id='Close Long', stop=longStopPrice)
if strategy.position_size < 0
strategy.exit(id='Close Short', stop=shortStopPrice)