Стратегия перекрестного движения среднего с внутридневными моделями свечей

Автор:Чао Чжан, Дата: 2024-02-29 12:07:21
Тэги:

img

Обзор

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

Когда краткосрочная скользящая средняя (9-дневная МА) пересекается выше долгосрочной скользящей средней (15-дневная МА), это указывает на более сильный краткосрочный подъемный импульс, чтобы пойти на длинный. Когда краткосрочная МА пересекается ниже долгосрочной МА, это сигнализирует о более сильном краткосрочном нисходящем импульсе, чтобы пойти на короткий. Кроме того, угол МА должен быть больше 30 градусов, чтобы обеспечить достаточную восходящую или нисходящую мощность. Для фильтрации ложных сигналов используются специальные внутридневные шаблоны свечей.

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

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

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

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

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

  1. Риск обратного тренда. Движущиеся средние не могут дать раннее предупреждение об обратном тренде. Удержание позиций здесь может привести к огромным потерям. Этот риск можно контролировать с помощью строгой стоп-лосс.

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

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

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

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

  3. Выбирайте акции с улучшенными перспективами и прибылью, чтобы улучшить процент выигрыша.

  4. Оптимизируйте параметры скользящей средней, тестируйте различные периоды длины, системы трех или пятикратного MA для большей гибкости настройки.

  5. Проверьте параметры стоп-лосса/приобретения прибыли. Установите коэффициенты скидки по книге заказов на основе результатов бэкстеста для достижения оптимального соотношения риск-вознаграждение.

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

Резюме

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


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Moving Average Crossover Strategy with Candlestick Patterns", overlay=true)

// Define input parameters
fast_length = input(9, "Fast MA Length")
slow_length = input(15, "Slow MA Length")
stop_loss_percent = input(0.25, "Stop Loss (%)")
target_percent = input(0.25, "Target (%)")
angle_threshold = input(30, "Angle Threshold (degrees)")

// Calculate moving averages
fast_ma = sma(close, fast_length)
slow_ma = sma(close, slow_length)

// Define candlestick patterns
is_pin_bar() =>
    pin_bar = abs(open - close) > 2 * abs(open[1] - close[1])
    high_tail = max(open, close) - high > abs(open - close) * 1.5
    low_tail = low - min(open, close) > abs(open - close) * 1.5
    pin_bar and high_tail and low_tail

is_marubozu() =>
    marubozu = abs(open - close) > abs(open[1] - close[1]) * 0.75
    no_upper_shadow = high == max(open, close)
    no_lower_shadow = low == min(open, close)
    marubozu and no_upper_shadow and no_lower_shadow

is_full_body() =>
    full_body = abs(open - close) > abs(open[1] - close[1]) * 0.95
    full_body

// Plot moving averages
plot(fast_ma, color=color.blue, title="Fast MA")
plot(slow_ma, color=color.red, title="Slow MA")

// Calculate angle of slow moving average
ma_angle = abs(180 * (atan(slow_ma[1] - slow_ma) / 3.14159))

// Generate buy/sell signals based on angle condition and candlestick patterns
buy_signal = crossover(fast_ma, slow_ma) and ma_angle >= angle_threshold and (is_pin_bar() or is_marubozu() or is_full_body())
sell_signal = crossunder(fast_ma, slow_ma)

// Calculate stop-loss and target levels
stop_loss_level = close * (1 - stop_loss_percent / 100)
target_level = close * (1 + target_percent / 100)

// Execute trades based on signals with stop-loss and target
strategy.entry("Buy", strategy.long, when=buy_signal)
strategy.exit("Exit", "Buy", stop=stop_loss_level, limit=target_level)

// Plot buy/sell signals on chart (optional)
plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Plot angle line
hline(angle_threshold, "Angle Threshold", color=color.black, linestyle=hline.style_dashed)


Больше