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

Строгое изменение показателей

Автор:Чао Чжан, Дата: 2024-06-07 16:41:53
Тэги:М.А.SMAМ.А.

img

Обзор

Стратегия принимает торговые решения на основе наклонности скользящей средней (MA) и относительной позиции цены к MA. Когда наклон MA больше минимального порога наклонности, а цена выше MA, стратегия инициирует длинную позицию. Кроме того, стратегия использует Trailing Stop Loss для управления риском и позволяет вновь выйти на рынок при определенных условиях. Стратегия направлена на захват возможностей в восходящих тенденциях при оптимизации доходности и рисков с помощью динамических механизмов стоп-лосса и повторного входа.

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

  1. Вычислить простую скользящую среднюю (SMA) за определенный период в качестве основного индикатора тренда.
  2. Вычислить наклон SMA в пределах определенного размера окна для определения силы текущего тренда.
  3. Если наклон SMA больше минимального порога наклонности, а цена выше SMA, считать рынок в восходящем тренде и начать длинную позицию.
  4. После открытия позиции стратегия использует механизм Trailing Stop Loss для динамической корректировки уровня стоп-лосса на основе текущей цены и определенного процента.
  5. Если цена достигнет последнего уровня стоп-лосса, стратегия закрывает позицию и отмечает наступление события стоп-лосса.
  6. После того, как происходит событие стоп-лосса, если цена опять опускается ниже SMA на определенный процент, стратегия вновь выходит на рынок.
  7. Если цена переходит ниже SMA, стратегия напрямую закрывает позицию.

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

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

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

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

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

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

Резюме

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


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

//@version=5
strategy("MA Incline Strategy with Trailing Stop-Loss and Conditional Re-Entry", overlay=true, calc_on_every_tick=true)

// Input parameters
windowSize = input.int(10, title="Window Size")
maLength = input.int(150, title="Moving Average Length")
minSlope = input.float(0.001, title="Minimum Slope")
trailingStopPercentage = input.float(2.8, title="Trailing Stop Percentage (%)") / 100
reEntryPercentage = input.float(4.2, title="Re-Entry Percentage Above MA (%)") / 100

// Calculate the moving average
ma = ta.sma(close, maLength)

// Calculate the slope of the moving average over the window size
previousMa = ta.sma(close[windowSize], maLength)
slopeMa = (ma - previousMa) / windowSize

// Check conditions
isAboveMinSlope = slopeMa > minSlope
isAboveMa = close > ma

// Variables to track stop loss and re-entry condition
var bool stopLossOccurred = false
var float trailStopPrice = na
// Buy condition
buyCondition = isAboveMinSlope and isAboveMa and ((not stopLossOccurred) or (stopLossOccurred and low < ma * (1 + reEntryPercentage)))

// Execute strategy
if (buyCondition and strategy.opentrades == 0)
    if (stopLossOccurred and close < ma * (1 + reEntryPercentage))
        strategy.entry("Long", strategy.long)
        stopLossOccurred := false
    else if (not stopLossOccurred)
        strategy.entry("Long", strategy.long)

// Trailing stop-loss
if (strategy.opentrades == 1)
    // Calculate the trailing stop price
    trailStopPrice := close * (1 - trailingStopPercentage)
    // Use the built-in strategy.exit function with the trailing stop
    strategy.exit("Trail Stop", "Long", stop=close * (1 - trailingStopPercentage))

// Exit condition
sellCondition = ta.crossunder(close, ma)
if (sellCondition and strategy.opentrades == 1)
    strategy.close("Long")

// Check if stop loss occurred
if (strategy.closedtrades > 0)
    lastExitPrice = strategy.closedtrades.exit_price(strategy.closedtrades - 1)
    if (not na(trailStopPrice) and lastExitPrice <= trailStopPrice)
        stopLossOccurred := true

// Reset stop loss flag if the price crosses below the MA
if (ta.crossunder(close, ma))
    stopLossOccurred := false


Связанные

Больше