Стратегия динамического повторного входа в рынок


Дата создания: 2023-12-19 13:56:55 Последнее изменение: 2023-12-19 13:56:55
Копировать: 0 Количество просмотров: 643
1
Подписаться
1621
Подписчики

Стратегия динамического повторного входа в рынок

Обзор

Стратегия представляет собой систему торговли только покупками, которая генерирует сигнал покупки на основе пересечения скользящей средней и циклического индекса товарного канала (CCI) или циклического среднего направленного индекса (ADX).

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

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

Сценарий определяет условия для получения сигнала покупки. Он проверяет два условия для определения действительного сигнала покупки:

  • Пройдите медленную скользящую среднюю по быстрой скользящей средней.
  • Пользователь может выбрать фильтр: циклический CCI или циклический ADX

Второй этап:Открыть новую позицию, если нет нераскрытой позиции и цена выше трех скользящих средних.

Условия выхода:В случае, если цена на закрытие упадет ниже третьей скользящей средней, стратегия ликвидирует позицию.

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

Эта стратегия имеет следующие преимущества:

  1. Использование различных технологий для фильтрации сигналов, чтобы уменьшить ошибочный сигнал
  2. Динамический механизм реабилитации позволяет максимально зафиксировать тенденции
  3. Сделайте больше и избегайте риска быть некомпетентным

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

Также существуют следующие риски:

  1. Есть риск, что они будут перевернуты.
  2. Поскольку многие держат позиции слишком долго, необходимо установить стоп-лосс.
  3. Неправильная настройка параметров может привести к слишком частым сделкам

Решение проблемы:

  1. Фильтрация с использованием лучших комбинаций параметров и комбинаций технических показателей
  2. Установите разумный стоп-лост.
  3. Настройка параметров, чтобы они были стабильными

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Buy Only Strategy with Dynamic Re-Entry and Exit", overlay=true)

// Input Parameters
fast_length = input(20, title="Fast Moving Average Length")
slow_length = input(30, title="Slow Moving Average Length")
third_ma_length = input(100, title="Third Moving Average Length")
cci_period = input(14, title="CCI Period for Weekly CCI")
use_cci = input(true, title="Use CCI for Entry")
use_adx = input(true, title="Use ADX for Entry")
adx_length = input(14, title="ADX Length")
adx_threshold = input(25, title="ADX Threshold")

// Calculate Moving Averages
fast_ma = ta.sma(close, fast_length)
slow_ma = ta.sma(close, slow_length)
third_ma = ta.sma(close, third_ma_length)

// Weekly Commodity Channel Index (CCI) with user-defined period
weekly_cci = request.security(syminfo.tickerid, "W", ta.cci(close,  cci_period))

// Weekly Average Directional Index (ADX)
dirmov = hlc3
plus = ta.change(dirmov) > 0 ? ta.change(dirmov) : 0
minus = ta.change(dirmov) < 0 ? -ta.change(dirmov) : 0
trur = ta.rma(ta.tr, adx_length)
plusDI = ta.rma(plus, adx_length) / trur * 100
minusDI = ta.rma(minus, adx_length) / trur * 100
sum = plusDI + minusDI
DX = sum == 0 ? 0 : math.abs(plusDI - minusDI) / sum * 100
ADX = ta.rma(DX, adx_length)

// Entry Conditions (Buy Only and Weekly CCI > 100 and/or Weekly ADX > 25)
cci_condition = use_cci ? (weekly_cci > 100) : false
adx_condition = use_adx ? (ADX > adx_threshold) : false
long_condition = ta.crossover(fast_ma, slow_ma) and (cci_condition or adx_condition)

// Exit Condition and Dynamic Re-Entry
exit_condition = close < third_ma
re_entry_condition = close > fast_ma and close > slow_ma and close > third_ma and weekly_cci > 100

// Entry and Exit Signals
strategy.entry("Long", strategy.long, when=long_condition)
strategy.close("Long", when=exit_condition)

// Dynamic Re-Entry and Exit
if strategy.position_size == 0 and re_entry_condition
    strategy.entry("Long", strategy.long)

if strategy.position_size > 0 and close < third_ma
    strategy.close("Long")

// Plot Weekly CCI and ADX for reference
plot(weekly_cci, title="Weekly CCI", color=color.orange)
plot(ADX, title="Weekly ADX", color=color.blue)