Эта стратегия использует двойной EMA средний линии золотой форк, мертвой форк формирование сигнала, в сочетании с ATR показатель, чтобы определить рыночную волатильность, чтобы реализовать низкий покупать высокий продавать тенденции следовать стратегии. Когда быстрая линия золотой форк медленная линия, и ATR показатель ниже, чем в предыдущий день считается многоголовый сигнал делать больше; когда быстрая линия мертвой форк медленная линия, и ATR показатель выше, чем в предыдущий день считается пустой сигнал делать пусто.
Используйте двойную среднюю линию EMA длиной 20 и 55. Когда прохождение медленной линии на быстрой линии приводит к появлению золотой форки, это считается многоголовым сигналом; когда прохождение медленной линии под быстрой линией приводит к появлению мертвой форки, это считается пустым сигналом.
Используйте индикатор ATR длиной 14. ATR индикатор может отражать уровень волатильности и риска на рынке. Когда ATR ниже предыдущего дня, означает ослабление рыночной волатильности, подходящее для вмешательства больше; когда ATR выше предыдущего дня, означает усиление рыночной волатильности, подходящее для вмешательства.
Делайте больше только в случае, если у вас есть медленная линия с золотым форком на быстрой линии и ATR ниже, чем в предыдущий день; делайте свободное место только в случае, если у вас есть медленная линия с мертвым форком на быстрой линии и ATR выше, чем в предыдущий день. Избегайте легкого вмешательства при больших колебаниях на рынке.
Индекс ATR также используется для установки стоп-лосса и стоп-листа. Стоп-лосса - это текущая цена минус ATR умноженный на стоп-модель; стоп-лосса - это текущая цена плюс ATR умноженный на стоп-модель.
По умолчанию стоп-множитель имеет 3xATR, а стоп-коп-множитель - 3xATR. Это позволяет динамически отслеживать колебания рынка как стоп-стоп, так и стоп-стоп-стоп.
Используя двойную равнолинейную систему, можно обеспечить более сильное подтверждение суждения о свободном состоянии. Избегайте заблуждения о ложных прорывах, которые часто встречаются на рынке.
Внедрение ATR-индикатора, позволяющего стратегии вмешиваться только при низких колебаниях, позволяет отфильтровать многие ложные сигналы и снизить системный риск.
Динамический стоп-стоп ATR позволяет установить стоп-стоп в зависимости от уровня рыночных колебаний.
Можно установить, используется ли равнолинейный пересечение в качестве дополнительного механизма выхода. Это позволяет еще больше оптимизировать прибыльность системы.
Можно установить динамические уровни стоп-стоп в зависимости от ATR, чтобы соответствовать логике трендового трейдинга. Стоп-стоп не будет слишком чувствительным, а стоп-стоп не будет слишком мягким.
Двухлинейная система определяет, что сигнал имеет определенную задержку. Может пропустить более сильную краткосрочную тенденцию.
При высоких колебаниях ATR повышается, возможно, пропускается время вмешательства.
При длительном удержании позиции, стоп-пост может быть слишком близким, и следует сочетать с соответствующим ослаблением силы тренда.
Среднелинейная система плохо определяет сценарий изгиба. Она должна быть подтверждена другими показателями.
Параметры ATR должны корректироваться в зависимости от различных циклов различных сортов. Неправильный выбор параметров может повлиять на убытки системы.
Можно тестировать комбинацию средних параметров разных длин, чтобы найти средние параметры, которые лучше соответствуют тенденционным характеристикам данного сорта.
Можно ввести другие показатели, такие как MACD, KD и т. Д., чтобы подтвердить перекрестный сигнал равновесия и повысить Entscheidungssicherheit.
ATR параметры могут быть оптимизированы с помощью отслеживания, чтобы они соответствовали характеристикам волатильности и устойчивости данного вида.
Можно настроить ATR-фактор как регулируемую переменную, чтобы динамически регулировать позицию остановки в зависимости от силы тренда.
Можно комбинировать показатель силы тренда с снижением требований к остановке убытков при слабой тенденции и увеличением требований к остановке при сильной тенденции.
Стратегия объединяет тенденционное суждение двойной средней линии EMA и управление рисками показателя волатильности ATR, создавая более полную систему отслеживания тенденций. Основное внимание в оптимизации стратегии уделяется корректировке средней линии и параметров ATR, чтобы они были более соответствующими характеристикам разновидности, а также разработке динамического стоп-стоп-лома для отслеживания изменений в интенсивности тренда.
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// **********************************************
// PtahX EMA/ATR Strategy Public Release
// EMA Strategy with ATR & "Fear Factor" built in
// written by PtahX October 2019
// * modifications welcome
// * please let me know if you improve it so I can continue to learn :)
// * use at your own risk - I'm a new programmer and still learning
// * Best of luck on your trades!!
// Take Profit (TP) option based on ATR or MA Crossover
//***********************************************
strategy(title="PtahX EMA/ATR Strategy", overlay=true, pyramiding=1, calc_on_every_tick=true, default_qty_value=1, initial_capital=10000, slippage=2)
//*****************************
// Global Inputs
//*****************************
fastMA = input(title="Fast Moving Average", defval=20, step=1)
slowMA = input(title="Slow Moving Average", defval=55, step=1)
source = input(close, title="Source")
atrLength = input(title="ATR Length", defval=14, minval=7, step=1)
slMultiplier = input(title="Stop Loss Multiple", type=input.float, defval=3, minval=1, step=0.2)
tpMultiplier = input(title= "Take Profit Multiple", type=input.float, defval=3, minval=1, step=0.2)
maPlot = input(true, title="Plot EMA?")
maCrossoverExit = input(false, title="Exit with Slow MA Crossover?")
atrExit = input(true, title="Exit with ATR?")
//***********************************
// ATR
//***********************************
atr = atr(atrLength)
//***********************************
// Volatility Filter
//**********************************
// During uptrends the ATR indicator tends to post lower volatility.
// During downtrends, the ATR indicator tends to post higher volatility
volatilityBullish = atr < atr[1]
volatilityBearish = atr > atr[1]
//***********************************
// Moving Averages
//***********************************
// Double Line Plot Code (used for Entries & Exits not plotted by default)
fast = ema(source, fastMA)
slow = ema(source, slowMA)
maLong = crossover(fast, slow)
maShort = crossunder(fast, slow)
// Single Line Plot Code
bullish = slow > slow[1]
bearish = slow < slow[1]
barColor = bullish ? color.green : bearish ? color.red : color.blue
//*****************************
// Entries
//*****************************
entryLong = maLong and volatilityBullish
entryShort = maShort and volatilityBearish
if entryLong
sLoss = source - atr * slMultiplier
strategy.entry("Long", strategy.long, qty=10)
strategy.exit("Long Exit", "Long", stop=sLoss)
if entryShort
sLoss = source + atr * slMultiplier
tProfit = close > slowMA
strategy.entry("Short", strategy.short, qty=10)
strategy.exit("Short Exit", "Short", stop=sLoss)
//*****************************
// Exits
//*****************************
exitLong = 0
exitShort = 0
if maCrossoverExit
exitLong = maShort
exitShort = maLong
strategy.exit("Long Exit", "Long", when = exitLong)
strategy.exit("Short Exit", "Short", when = exitShort)
if atrExit
exitLong = source + atr * tpMultiplier
exitShort = source - atr * tpMultiplier
strategy.exit("Long Exit", "Long", limit = exitLong)
strategy.exit("Short Exit", "Short", limit = exitShort)
//******************************
// ATR Based Exit/ Stop Plotting
//******************************
// Stop Loss Calculations
longStopLoss = source - atr(atrLength) * slMultiplier
shortStopLoss = source + atr(atrLength) * slMultiplier
longTakeProfit = source - atr(atrLength) * slMultiplier
shortTakeProfit = source + atr(atrLength) * slMultiplier
//*********************************
//Chart Plotting
//*********************************
//ATR Based Stop Losses
plot(shortStopLoss, color=color.fuchsia, offset=0, transp=0, show_last=5, linewidth=2, style=plot.style_stepline, title="Short Stop Loss")
plot(longStopLoss, color=color.fuchsia, offset=0, transp=0, show_last=5, linewidth=2, style=plot.style_stepline, title="Long Stop Loss")
// Single Slow EMA Option
plot(slow and maPlot ? slow : na, title="EMA", color=barColor, linewidth=3)