Тенденция вследствие стратегии торговли скользящими средними

Автор:Чао Чжан, Дата: 2024-01-05 13:48:07
Тэги:

img

Обзор

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

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

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

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

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

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

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

К основным преимуществам этой стратегии относятся:

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

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

Существуют также некоторые риски, связанные с этой стратегией:

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

Решения:

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

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

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

  1. Использование алгоритмов машинного обучения для автоматической настройки параметров для адаптации к изменяющимся рынкам.
  2. Включите объем торговли, чтобы избежать ложных прорывов.
  3. Добавить микро правила размещения позиций, чтобы связать размер позиции с силой тренда.
  4. Оптимизировать механизмы остановки потерь с остановками отслеживания и т.д.

Заключение

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


/*backtest
start: 2023-12-05 00:00:00
end: 2024-01-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("I Like Winners And Love Loosers!", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

highest_length = input(200, type=input.integer, minval=1, title="Highest Length")
highest_average = input(10, type=input.integer, minval=1, title="Highest Average Length")

lowest_length = input(200, type=input.integer, minval=1, title="Lowest Length")
lowest_average = input(10, type=input.integer, minval=1, title="Lowest Average Length")

atr_length = input(14, type=input.integer, minval=1, title="ATR Length")
atr_multiplier = input(2, type=input.integer, minval=1, title="ATR Multiplier")
a = atr(atr_length) * atr_multiplier

h1 = sma(highest(high, highest_length), highest_average)
l1 = h1 - a

h2 = sma(lowest(low, lowest_length), lowest_average)
l2 = h2 + a

buy1_signal = crossover(close, h1)
sell1_signal = crossunder(close, l1)
strategy.entry("Buy", strategy.long, when=buy1_signal)
strategy.close("Buy", when=sell1_signal)

buy2_signal = crossunder(close, h2)
sell2_signal = crossover(close, l2)
strategy.entry("Sell", strategy.short, when=buy2_signal)
strategy.close("Sell", when=sell2_signal)

y1 = plot(h1, title="H1", color=color.green, transp=50, linewidth=2)
y2 = plot(l1, title="L1", color=color.red, transp=50, linewidth=2)
y3 = plot(h2, title="H2", color=color.green, transp=50, linewidth=2)
y4 = plot(l2, title="L2", color=color.red, transp=50, linewidth=2)

fill(y1,y2,color=color.green)
fill(y3,y4,color=color.red)


Больше