Брейк-скальпер - быстро улавливать изменения тренда

Автор:Чао Чжан, Дата: 2023-10-25 17:58:11
Тэги:

img

Обзор

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

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

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

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

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

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

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

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

  1. Быстро обнаруживает изменения тренда, подходящие для волатильных активов.

  2. Эффективное управление рисками с помощью разумных остановок.

  3. Простая и понятная логика, основанная на скользящих средних пересечениях и остановках.

  4. Легко оптимизируемый и расширяемый.

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

Основными рисками являются:

  1. Рыночный шум может генерировать неправильные сигналы.

  2. Медленное отставание окна. Повороты могут быть обнаружены поздно.

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

  4. Боковые рынки приводят к падениям, а неуравновешенные рынки порождают ложные сигналы.

Уменьшение последствий:

  1. Оптимизируйте быстрое окно и добавьте фильтры.

  2. Улучшить медленное окно и добавить подтверждающие показатели.

  3. Буфер останавливается от рыночной цены.

  4. Узнайте, что происходит, и избегайте сигналов.

Возможности оптимизации

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

  1. Оптимизировать периоды окна для различных активов.

  2. Добавьте размер позиции для лучшего контроля риска.

  3. Внедрить механизмы получения прибыли.

  4. Добавьте больше фильтров, чтобы создать сильные сигналы.

  5. Включите обнаружение шаблонов, таких как треугольники и расхождения.

  6. Используйте машинное обучение для оптимизации параметров.

Заключение

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


/*backtest
start: 2023-10-17 00:00:00
end: 2023-10-24 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Breakout Scalper", overlay=true)

fast_window = input(title="Fast Window",  defval=13, minval=1)
slow_window = input(title="Slow Window",  defval=52, minval=1)
instant_period = input(title="Instant Period",  defval=3, minval=1)

fast_low = lowest(fast_window)
fast_high = highest(fast_window)
fast_mid = (fast_low + fast_high) / 2

slow_low = lowest(slow_window)
slow_high = highest(slow_window)
slow_mid = (slow_low + slow_high) / 2

instant_price = ema(close, instant_period)

plot(instant_price, title="Instant Price", color=black, transp=50)
fp = plot(fast_mid, title="Fast Mid", color=green)
sp = plot(slow_mid, title="Slow Mid", color=red)
fill(fp, sp, color=(fast_mid > slow_mid ? green : red))

is_buy_mode = (instant_price > fast_mid) and (fast_mid > slow_mid)
is_sell_mode = (instant_price < fast_mid) and (fast_mid < slow_mid)
entry_color = is_buy_mode ? green : (is_sell_mode ? red : na)
exit_color = is_buy_mode ? red : (is_sell_mode ? green : na)

entry_buy_stop = slow_high
entry_sell_stop = slow_low
exit_buy_stop = max(fast_low, slow_low)
exit_sell_stop = min(fast_high, slow_high)
strategy.entry("long", strategy.long, stop=entry_buy_stop, when=is_buy_mode)
strategy.exit("stop", "long", stop=exit_buy_stop)
strategy.entry("short", strategy.short, stop=entry_sell_stop, when=is_sell_mode)
strategy.exit("stop", "short", stop=exit_sell_stop)
strategy.close("long", when=(not is_buy_mode))
strategy.close("short", when=(not is_sell_mode))

entry_buy_stop_color = (strategy.position_size == 0) ? (is_buy_mode ? green : na) : na
plotshape(entry_buy_stop, location=location.absolute, color=entry_buy_stop_color, style=shape.circle)
entry_sell_stop_color = (strategy.position_size == 0) ? (is_sell_mode ? red : na) : na
plotshape(entry_sell_stop, location=location.absolute, color=entry_sell_stop_color, style=shape.circle)
exit_buy_stop_color = (strategy.position_size > 0) ? red : na
plotshape(exit_buy_stop, location=location.absolute, color=exit_buy_stop_color, style=shape.xcross)
exit_sell_stop_color = (strategy.position_size < 0) ? green : na
plotshape(exit_sell_stop, location=location.absolute, color=exit_sell_stop_color, style=shape.xcross)


Больше