В процессе загрузки ресурсов... загрузка...

Тенденция после стратегии

Автор:Чао Чжан, Дата: 2023-11-06 10:34:19
Тэги:

img

Обзор

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

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

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

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

Чтобы оптимизировать время входа, стратегия включает в себя опцию Хайкина-Аши. При включении сигналы покупки и продажи будут основываться на барах Хайкина-Аши вместо обычных свечей.

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

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

Преимущества этой стратегии включают:

  1. Использование перекрестка EMA и HMA для определения тенденций может использовать преимущества перемещающихся средних по различным периодам и повысить точность.

  2. Торговля, основанная на тенденциях, позволяет избежать небольших колебаний и сокращает ненужные сделки.

  3. Опция Хайкина-Аши оптимизирует время входа, отфильтровывая ложные сигналы.

  4. Движущаяся стоп-лосс эффективно ограничивает максимальную потерю на одну сделку.

  5. Настраиваемые параметры позволяют оптимизировать для различных продуктов и временных рамок.

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

Риски этой стратегии включают:

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

  2. Он может понести большие потери, когда наступит обратный тренд.

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

  4. Плохая настройка параметров может привести к переоценке или бездействию.

  5. Периоды EMA и HMA требуют оптимизации для различных продуктов и временных рамок.

  6. Хайкин-Аши не может полностью избежать риска ложных прорывов.

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

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

  1. Используйте больше индикаторов, таких как MACD, KDJ, чтобы повысить точность тренда.

  2. Добавьте больше фильтров, таких как громкость, ATR, чтобы уменьшить ложные перерывы.

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

  4. Отрегулируйте процент стоп-лосса для лучшего поведения стоп-лосса.

  5. Рассмотрим такие функции получения прибыли, как перемещение остановки прибыли и частичное получение прибыли.

  6. Испытать альтернативные способы расчета стоимости позиции на основе оптимизации.

Резюме

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


/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("𝐉𝐔𝐈𝐂𝐘 𝐓𝐑𝐄𝐍𝐃", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=15)

//Heikin Ashi Option
ha = input(true, title = "Heikin Ashi Source")
src = ha ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, barmerge.gaps_off, barmerge.lookahead_off) : close
usestoploss = input(true, title="Stop Loss")

//EMA
len1 = input.int(9, minval=1, title="EMA Length")
ema = ta.ema(src, len1)
emaline = plot(ema, title="EMA", color=color.blue, linewidth=2)

//HMA
len2 = input.int(69, minval=1, title="HMA Length")
hma = ta.wma(2*ta.wma(src, len2/2)-ta.wma(src, len2), math.floor(math.sqrt(len2)))
hmaline = plot(hma, title="HMA", color=color.purple, linewidth=2)
fillcolor = hma < ema ? color.blue : color.purple
fill(emaline, hmaline, title="EMA Fill", color=color.new(fillcolor, 80), editable=true)

//Stop Loss Conditions
stoplosspercent = input.float(title="Stop Loss (%)", defval=-6.5, minval=-50, maxval=0, step=.1) / 100
stoploss = strategy.position_avg_price * (1 + stoplosspercent)
stop = stoploss > close and stoploss[1] < close[1] and strategy.position_size > 0 and usestoploss

//Buy Sell Conditions
buy = hma < ema
sell = hma > ema

//Trades and Alerts
if buy
	strategy.entry("Long Position", strategy.long, comment="BUY")
//	alert("{\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar)
if sell and strategy.openprofit > 0
	strategy.close("Long Position", comment="SELL")
//	alert("{\n\"action\": \"close_at_market_price\",\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar)
if stop
    strategy.close("Long Position", comment="STOP")
//    alert("{\n\"action\": \"close_at_market_price\",\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar)

//Alternate Labels
var pos = 0
if buy and pos <= 0
    pos := 1
if sell and pos >= 0
    pos := -1
buylabel  = pos ==  1 and (pos !=  1)[1]
selllabel = pos == -1 and (pos != -1)[1]

//Plot Labels
plotshape(buylabel,  style=shape.labelup,   location=location.belowbar, color=color.blue,   text="BUY",  textcolor=color.white, size=size.tiny)
plotshape(selllabel, style=shape.labeldown, location=location.abovebar, color=color.purple, text="SELL", textcolor=color.white, size=size.tiny)
plotshape(stop,      style=shape.labeldown, location=location.abovebar, color=color.yellow, text="STOP", textcolor=color.white, size=size.tiny)


Больше