Стратегия торговли Ethereum, основанная на supertrend


Дата создания: 2024-01-08 14:35:37 Последнее изменение: 2024-01-08 14:35:37
Копировать: 0 Количество просмотров: 726
1
Подписаться
1617
Подписчики

Стратегия торговли Ethereum, основанная на supertrend

Обзор

Стратегия основана на супер трендовом индикаторе, который в сочетании с ATR динамически устанавливает линию остановки, чтобы получить прибыль в сильных тенденциях Ethereum. Она может работать на торговой паре ETH/USD на бирже Coinbase.

Стратегический принцип

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

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

Открытие позиции с открытым лицом происходит, когда цена переходит от восходящей тенденции к нисходящей; открытие позиции с открытым лицом происходит, когда цена переходит от нисходящей тенденции к восходящей.

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

После входа в сигнал, если цена вновь пересечет линию стоп-лосса, то будет произведен стоп-лосс.

Стратегические преимущества

Это более зрелая стратегия отслеживания тенденций, которая имеет следующие преимущества:

  1. Использование супертенденциальных индикаторов для определения направления тренда имеет высокую надежность.
  2. Применение ATR для адаптации стоп-линий позволяет эффективно контролировать риски;
  3. Стратегическая логика проста и понятна, ее легко понять и изменить.
  4. Это означает, что вы сможете получить прибыль на очень нестабильном рынке цифровых валют.

Стратегический риск

Однако эта стратегия также несет в себе некоторые риски:

  1. Существует вероятность ошибочной оценки супертенденциальных показателей, что может привести к ненужным убыткам;
  2. ATR-стоп может быть слишком радикальным и быть остановлен ценовой инверсией;
  3. Поскольку криптовалютный рынок является нестабильным и имеет высокую вероятность преодоления стоп-ложа,
  4. Высокие комиссионные на биржах влияют на конечную прибыль.

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

Направление оптимизации стратегии

В этой стратегии есть место для дальнейшей оптимизации:

  1. Внедрение новых комбинаций показателей повысит точность сигналов.
  2. оптимальные значения коэффициента ATR и параметров длины;
  3. Можно установить коэффициент хранения риска для динамического корректировки размеров позиций;
  4. Поскольку криптовалюты являются неотъемлемой частью цифровой экономики, они могут быть использованы в качестве инструментов для управления.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4 
strategy("SuperTrend Strategy", 
     overlay=true, 
     initial_capital=2e3, 
     process_orders_on_close=true, 
     commission_type=strategy.commission.percent, 
     commission_value=0.1 
     ) 
  
length = input(title="ATR Period", type=input.integer, defval=21) 
mult = input(title="ATR Multiplier", type=input.float, step=.25, defval=6.2) 
wicks = input(title="Take Wicks into Account ?", type=input.bool, defval=false) 
  
useDate = input(title="Start from Specific Date ?", defval=false) 
yearStart = input(title="Start Year", defval=2019) 
monthStart = input(title="Start Month", minval=1, maxval=12, defval=1) 
dayStart = input(title="Start Day", minval=1, maxval=31, defval=1) 
  
startTime = timestamp(yearStart, monthStart, dayStart, 0, 0) 
startFrom = useDate ? time(timeframe.period) >= startTime : true 
  
atr = mult * ta.atr(length) 
  
longStop = hl2 - atr 
longStopPrev = nz(longStop[1], longStop) 
longStop := (wicks ? low[1] : close[1]) > longStopPrev ? math.max(longStop, longStopPrev) : longStop 
  
shortStop = hl2 + atr 
shortStopPrev = nz(shortStop[1], shortStop) 
shortStop := (wicks ? high[1] : close[1]) < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop 
  
dir = 1 
dir := nz(dir[1], dir) 
dir := dir == -1 and (wicks ? high : close) > shortStopPrev ? 1 : dir == 1 and (wicks ? low : close) < longStopPrev ? -1 : dir 
  
longColor = color.green 
shortColor = color.red 
  
plot(dir == 1 ? longStop : na, title="Long Stop", style=plot.style_linebr, linewidth=2, color=longColor) 
plotshape(dir == 1 and dir[1] == -1 ? longStop : na, title="Long Start", location=location.absolute, style=shape.circle, size=size.tiny, color=longColor, transp=0) 
  
plot(dir == 1 ? na : shortStop, title="Short Stop", style=plot.style_linebr, linewidth=2, color=shortColor) 
plotshape(dir == -1 and dir[1] == 1 ? shortStop : na, title="Short Start", location=location.absolute, style=shape.circle, size=size.tiny, color=shortColor, transp=0) 
  
longCondition = dir[1] == -1 and dir == 1 
if longCondition and startFrom 
    strategy.entry("Long", strategy.long, stop=longStop) 
else 
    strategy.cancel("Long") 
  
shortCondition = dir[1] == 1 and dir == -1 
if shortCondition and startFrom 
    strategy.entry("Short", strategy.short, stop=shortStop) 
else 
    strategy.cancel("Short")