Стратегия количественного отслеживания тенденций, основанная на нескольких технических показателях

Автор:Чао Чжан, Дата: 2024-01-22 10:40:01
Тэги:

img

Обзор

Эта стратегия сочетает в себе несколько технических индикаторов, таких как полосы Боллинджера, стохастический осциллятор и индекс относительной силы, для настройки сигналов покупки и продажи для долгосрочных операций по отслеживанию тренда на криптоактивах.

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

Стратегия сначала устанавливает параметры расчета для таких индикаторов, как полосы Боллинджера, стохастический осциллятор и RSI. Сигнал покупки определяется как: закрытие ниже нижней полосы Боллинджера, линия K ниже 20 и выше линии D, RSI ниже 30. Когда все три условия выполняются одновременно, займите длинный курс. Сигнал продажи частично определяется как: линия K выше 70 и ниже 70 в предыдущем периоде (золотой крестный мертвый крест), и есть дивергенция RSI. Когда эти два условия выполнены, закрывайте 50% позиции.

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

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

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

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

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

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

  2. Добавить контроль максимального снижения, чтобы приостановить торговлю при достижении порога.

  3. Добавить модуль управления позициями для динамической корректировки позиций на основе рыночных условий.

  4. Добавьте стратегию стоп-лосса. Когда направление рынка неправильно определено, установите разумную точку стоп-лосса для контроля одиночных потерь.

Резюме

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


/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Stratégie d'Entrée et de Sortie Longue", overlay=true)

// Paramètres des indicateurs
longueurBollinger = 20
stdDevBollinger = 2
longueurStochastic = 14
smoothK = 3
smoothD = 3
longueurRSI = 14

// Bollinger Bands
basis = ta.sma(close, longueurBollinger)
dev = ta.stdev(close, longueurBollinger)
lowerBand = basis - stdDevBollinger * dev

// Stochastic Oscillator
k = ta.sma(ta.stoch(close, high, low, longueurStochastic), smoothK)
d = ta.sma(k, smoothD)

// RSI
rsi = ta.rsi(close, longueurRSI)

// Logique des autres indicateurs (à compléter)

// Conditions d'entrée (à définir)
conditionBollinger = close < lowerBand
conditionStochastic = k < 20 and k > d
conditionRSI = rsi < 30
// Autres conditions (Braid Filter, VolumeBIS, Price Density...)

conditionEntree = conditionBollinger and conditionStochastic and conditionRSI // et autres conditions

// Exécution du trade (entrée)
if (conditionEntree)
    strategy.entry("Long Position", strategy.long)

// Conditions de sortie
stochCrossOver70 = k > 70 and k[1] <= 70

// Simplification de la détection de divergence baissière
// (Cette méthode est basique et devrait être raffinée pour une analyse précise)
highsRising = high > high[1]
lowsRising = low > low[1]
rsiFalling = rsi < rsi[1]
divergenceBearish = highsRising and lowsRising and rsiFalling

// Clôturer la moitié de la position
if (stochCrossOver70 and divergenceBearish)
    strategy.close("Long Position", qty_percent = 50)


Больше