Кроссоверная стратегия перемещающихся средних линий и прорыва уровня сопротивления

Автор:Чао Чжан, Дата: 2024-01-31 14:34:16
Тэги:

img

Обзор

Эта стратегия объединяет методы пересечения скользящей средней и прорыва уровня сопротивления для установки сигналов покупки и продажи для автоматизированной торговли. Когда краткосрочная скользящая средняя пересекает среднесрочную скользящую среднюю сверху, и цена акций прорывается через уровень сопротивления, генерируется сигнал покупки. Стратегия устанавливает прибыль на 15% роста цены и стоп-лосс на 3% снижения цены для контроля рисков. Эта зрелая количественная стратегия торговли может автоматически идентифицировать рыночные тенденции и входить в позиции при появлении технических сигналов с надлежащим управлением рисками.

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

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

  1. Метод пересечения скользящей средней: рассчитываются 20-дневные и 44-дневные простые скользящие средние. Когда 20-дневная SMA пересекает 44-дневную линию, считается, что рынок находится в восходящей тенденции, генерируя сигнал покупки.

  2. Техника прорыва уровня сопротивления: уровни цен, которые цена акции неоднократно достигала, но не смогла прорваться, называются уровнями сопротивления. Прорыв через них указывает на то, что цена вступает в новый восходящий тренд. Эта стратегия рассматривает прорыв выше 0,7% предыдущего закрытия как прорыв сопротивления.

  3. Осиллятор RSI: Индекс относительной силы, индикатор импульса для выявления условий перекупа и перепродажи.

  4. Анализ объема: объем, превышающий средний за последние 10 дней, часто указывает на более сильный интерес к покупке или продаже и динамику движения цен.

  5. Сигналы покупки: запускаются, когда короткая SMA пересекает среднюю SMA, причем значение RSI перекуплено и превышает средний объем торгов, что указывает на тенденцию к росту.

  6. Сигналы продажи: 15% прибыли от входной цены, 3% стоп-лосс.

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

Преимущества стратегии

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

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

  3. Эффективное управление рисками путем установки стоп-лосса и взятки прибыли, оптимизации соотношения риск-вознаграждение.

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

Риски стратегии

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

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

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

  4. Сигналы технических индикаторов часто отстают от лучших точек переворота рынков.

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

  1. Оптимизировать параметры, такие как скользящие средние длины, остановка потерь / прибыли цели методами настройки параметров, чтобы найти оптимальный.

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

  3. Включать фундаментальные и событиями обусловленные сигналы, чтобы избежать стоп-лосса, вызванного негативными новостями.

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

Заключение

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


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

//@version=5
strategy("Advanced Strategy with Conditional Stop Loss", overlay=true)

// Parameters
ma_length_20 = 20
ma_length_44 = 44
ma_length_100 = 100
rsi_length = 14
volume_length = 10
profit_target = 1.15 // 15% above the buy price
stop_loss_target = 0.97 // 3% below the buy price
wait_candles = 10 // Number of candles to wait after selling, unless MA cross condition met

// Indicators
moving_average_20 = ta.sma(close, ma_length_20)
moving_average_44 = ta.sma(close, ma_length_44)
moving_average_100 = ta.sma(close, ma_length_100)
rsi = ta.rsi(close, rsi_length)
volumeAvg = ta.sma(volume, volume_length)

// Variables to manage the wait period after a sell
var int last_sell_candle = 0

// Update last sell candle
if (strategy.position_size[1] > 0 and strategy.position_size == 0)
    last_sell_candle := bar_index

// Trend identification
uptrend = close > moving_average_20
above_ma20_by_1_percent = close > moving_average_20 * 1.01
ma_cross = ta.crossover(moving_average_20, moving_average_44) or ta.crossunder(moving_average_20, moving_average_44)
close_near_high = (close >= high * 0.993) and (close <= high)

// Buy condition (only in uptrend, above 1% from 20-day MA, and respecting new filter)
can_buy_after_cross = ma_cross and close > high[1]
can_buy_after_wait = (bar_index - last_sell_candle) > wait_candles
buy_condition = (can_buy_after_cross or can_buy_after_wait) and uptrend and above_ma20_by_1_percent and close > moving_average_44 and close > moving_average_100 and close > high[1] and rsi > 50 and volume > volumeAvg and not close_near_high

// Entry
if (buy_condition and strategy.position_size == 0)
    strategy.entry("Buy", strategy.long)

// Exit conditions
if (strategy.position_size > 0)
    // Profit target
    profit_level = strategy.position_avg_price * profit_target
    strategy.exit("Take Profit", "Buy", limit=profit_level)

    // Dynamic Stop Loss - Check on every bar if the price has dropped 3% below the buy price
    stop_loss_level = strategy.position_avg_price * stop_loss_target
    if (low < stop_loss_level)
        strategy.close("Buy", comment="Stop Loss")

// Plotting
plot(moving_average_20, color=color.green, title="20-Day Moving Average")
plot(moving_average_44, color=color.blue, title="44-Day Moving Average")
plot(moving_average_100, color=color.red, title="100-Day Moving Average")


Больше