Скользящая средняя, ​​простая скользящая средняя, ​​наклон скользящей средней, скользящий стоп, повторный вход

MA SMA MA
Дата создания: 2024-06-07 16:41:53 Последнее изменение: 2024-06-07 16:41:53
Копировать: 0 Количество просмотров: 891
1
Подписаться
1617
Подписчики

Скользящая средняя, ​​простая скользящая средняя, ​​наклон скользящей средней, скользящий стоп, повторный вход

Обзор

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

Стратегический принцип

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

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

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

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

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

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

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

Подвести итог

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

Исходный код стратегии
/*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