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

Стратегия прорыва средней реверсионной величины RSI

Автор:Чао Чжан, Дата: 2024-12-05 16:53:44
Тэги:РСИSMAATR

img

Обзор стратегии

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

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

Стратегия использует несколько механизмов фильтрации для определения торговых сигналов: во-первых, цена должна достичь минимума за 10 периодов, что указывает на состояние перепроданного рынка; во-вторых, диапазон цен на день должен быть самым большим за последние 10 торговых дней, что указывает на повышенную волатильность рынка; наконец, он подтверждает потенциальные сигналы обратного движения, проверяя, находится ли цена закрытия в верхнем квартиле диапазона дня. Вход выполняется с помощью подтверждения прорыва, идя длинный, если цена превышает предыдущий максимум в течение 2 дней после выполнения торговых условий. Стоп-лосс реализуется с помощью механизма задержки для защиты прибыли.

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

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

Стратегические риски

  1. Может вызывать частые стоп-лосы на рынках с сильным трендом
  2. Строгие условия вступления могут лишить некоторых торговых возможностей
  3. Требует более высокой частоты торговли, что может привести к более высоким затратам на транзакции
  4. Может быть трудно найти эффективные торговые сигналы в условиях низкой волатильности
  5. Настройки стоп-лосса могут быть слишком консервативными, влияя на общую доходность

Направления оптимизации стратегии

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

Резюме

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


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

//@version=5
strategy("Larry Conners SMTP Strategy", overlay=true, margin_long=100, margin_short=100)

// --- Inputs ---
// Corrected the input type declaration by removing 'type='
tickSize = input.float(0.01, title="Tick Size (e.g., 1/8 for stocks)")

// --- Calculate conditions ---
// 1. Today the market must make a 10-period low
low10 = ta.lowest(low, 10)
is10PeriodLow = low == low10

// 2. Today's range must be the largest of the past 10 bars
rangeToday = high - low
maxRange10 = ta.highest(high - low, 10)
isLargestRange = rangeToday == maxRange10

// 3. Today's close must be in the top 25 percent of today's range
rangePercent = (close - low) / rangeToday
isCloseInTop25 = rangePercent >= 0.75

// Combine all buy conditions
buyCondition = is10PeriodLow and isLargestRange and isCloseInTop25

// --- Buy Entry (on the next day) ---
var float buyPrice = na
var bool orderPending = false
var float stopLoss = na  // Initialize stopLoss at the top level to avoid 'Undeclared identifier' errors

if (buyCondition and strategy.position_size == 0)
    buyPrice := high + tickSize
    stopLoss := low
    orderPending := true

// Condition to place buy order the next day or the day after
if orderPending and ta.barssince(buyCondition) <= 2
    strategy.entry("Buy", strategy.long, stop=buyPrice)
    orderPending := false

// --- Stop-Loss and Trailing Stop ---
if (strategy.position_size > 0)
    stopLoss := math.max(stopLoss, low) // Move stop to higher lows (manual trailing)
    strategy.exit("Exit", from_entry="Buy", stop=stopLoss)

// --- Plotting ---
// Highlight buy conditions
bgcolor(buyCondition ? color.new(color.green, 50) : na)
//plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy Setup")

// Plot Stop-Loss level for visualization
//plot(strategy.position_size > 0 ? stopLoss : na, color=color.red, linewidth=2, title="Stop-Loss Level")

Связанные

Больше