Универсальная снайперская стратегия

Автор:Чао Чжан, Дата: 2023-12-20 11:04:15
Тэги:

img

Обзор

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

Принцип стратегии

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

  2. Затем он использует общий индикатор EMA для определения средне- и долгосрочного направления тренда.

  3. Далее стратегия использует индикатор Hull MA для определения того, является ли текущая цена перекупленной или перепроданной.

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

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

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

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

В частности, основными преимуществами этой стратегии являются:

  1. Использование индикатора канала тела свечи для определения прорыва сущности может эффективно идентифицировать сигналы прорыва.

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

  3. Использование показателя Hull MA для определения площадей перекупленных и перепроданных имеет более точную способность определять поворотные моменты.

  4. Принятие перекрестного использования цен открытия и закрытия более высоких циклов K-линий для генерации сигналов позволяет избежать заблуждения от шума.

  5. Сочетание нескольких методов торговли делает стратегию более универсальной и универсальной.

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

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

  1. Торговля прорывом подвержена заблуждению ложными прорывами и генерирует неправильные сигналы.

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

  3. Способность фильтрации двойной комбинации EMA все еще ограничена, что может фильтровать нормальные сигналы.

  4. Индикатор MA корпуса по-прежнему недостаточно точен в крепежных кривых.

В ответ на вышеуказанные риски можно оптимизировать следующие аспекты:

  1. Используйте более стабильные показатели, чтобы помочь в оценке и избежать ложных прорывов.

  2. Увеличьте стратегии стоп-лосса для контроля одиночных потерь.

  3. Настройка двойных параметров EMA, чтобы найти оптимальную комбинацию.

  4. Постарайтесь интегрировать больше показателей, чтобы определить условия перекупки и перепродажи.

Руководство по оптимизации

Согласно вышеуказанному анализу, стратегия может быть оптимизирована главным образом в следующих направлениях:

  1. Использовать в качестве вспомогательного суждения более распространенные и стабильные комбинации индикаторов, такие как линии Калмана, полосы Боллинджера и т.д.

  2. Увеличить стратегию стоп-лосса для строгого контроля одиночных потерь.

  3. Оптимизация параметров для поиска оптимальной комбинации параметров.

  4. Увеличьте суждение модели машинного обучения, чтобы использовать ИИ для определения перекупленных и перепроданных областей.

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

Резюме

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


/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//╭╮╱╱╭╮╭╮╱╱╭╮
//┃╰╮╭╯┃┃┃╱╱┃┃
//╰╮┃┃╭┻╯┣╮╭┫╰━┳╮╭┳━━╮
//╱┃╰╯┃╭╮┃┃┃┃╭╮┃┃┃┃━━┫
//╱╰╮╭┫╰╯┃╰╯┃╰╯┃╰╯┣━━┃
//╱╱╰╯╰━━┻━━┻━━┻━━┻━━╯
//╭━━━┳╮╱╱╱╱╱╱╱╭╮
//┃╭━╮┃┃╱╱╱╱╱╱╱┃┃
//┃┃╱╰┫╰━┳━━┳━╮╭━╮╭━━┫┃
//┃┃╱╭┫╭╮┃╭╮┃╭╮┫╭╮┫┃━┫┃
//┃╰━╯┃┃┃┃╭╮┃┃┃┃┃┃┃┃━┫╰╮
//╰━━━┻╯╰┻╯╰┻╯╰┻╯╰┻━━┻━╯
//━╯
// http://www.vdubus.co.uk/
strategy(title='Vdub FX SniperVX3 / Strategy  v3', shorttitle='Vdub_FX_SniperVX3_Strategy', overlay=true, pyramiding=0, initial_capital=1000, currency=currency.USD)

//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance Channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")

//-----------------Support and Resistance 
RST = input(title='Support / Resistance length:',  defval=10) 
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0)

//--------------------Trend colour ema------------------------------------------------// 
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
plot_color = direction > 0  ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color)

//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
plot_color2 = direction2 > 0  ? lime: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2)

//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(8, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA")

//============ signal Generator ==================================//
Piriod=input('720')
ch1 = request.security(syminfo.tickerid, Piriod, open)
ch2 = request.security(syminfo.tickerid, Piriod, close)
longCondition = crossover(request.security(syminfo.tickerid, Piriod, close),request.security(syminfo.tickerid, Piriod, open))
if (longCondition)
    strategy.entry("BUY", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, Piriod, close),request.security(syminfo.tickerid, Piriod, open))
if (shortCondition)
    strategy.entry("SELL", strategy.short)

///////////////////////////////////////////////////////////////////////////////////////////

Больше