Динамическая система торговли с кредитным плечом, скорректированная с учетом риска


Дата создания: 2023-10-16 16:00:52 Последнее изменение: 2023-10-16 16:00:52
Копировать: 0 Количество просмотров: 774
1
Подписаться
1617
Подписчики

Динамическая система торговли с кредитным плечом, скорректированная с учетом риска

Обзор

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

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

Вот конкретные шаги системы:

  1. Вычислить значение ATR на 14-дневный цикл ATR и стандартизировать его делением на текущую закрытую цену.

  2. Вычисление 100-дневного простого скользящего среднего значения стандартизированного ATR ((SMA) }}.

  3. Расчет соотношения стандартизированного ATR и его 100-дневного SMA.

  4. Целевой рычаг определяется в зависимости от обратного значения соотношения ((2 / соотношение)).

  5. Количество открытых позиций рассчитывается умножением целевого лейвера на 5.

  6. На графике изображены количество открытых позиций и количество открытых позиций.

  7. Проверьте, есть ли возможность купить (если количество открытых позиций в настоящее время меньше, чем целевое количество) или возможность закрыть (если количество открытых позиций в настоящее время больше, чем целевое количество плюс 1) .

  8. Если есть возможность купить, нажмите на дополнительный лист и добавьте сделки в массив openTrades.

  9. Если есть возможность плавных позиций и есть сделки в массиве openTrades, выровняйте последние сделки и удалите их из массива.

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

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

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

  1. Динамическая корректировка количества рычагов и позиций, в зависимости от изменения рыночной волатильности можно скорректировать рисковый порог. Когда волатильность низкая, увеличить количество рычагов и позиций, когда волатильность высокая, уменьшить количество рычагов и позиций, эффективно контролировать риск.

  2. Использование показателя ATR для расчета целевого количества позиций, который может отражать волатильность рынка, является разумным выбором показателя для динамического корректировки позиций.

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

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

  5. Эта стратегия имеет меньше параметров, ее легко реализовать и использовать.

  6. Стратегическая мысль ясна и понятна, структура кода рациональна, ее легко оптимизировать и повторять.

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

Однако эта стратегия также несет в себе некоторые риски:

  1. ATR отражает только волатильность за прошедший период времени, будущие изменения волатильности непредсказуемы и могут привести к неправильной коррекции леверинга.

  2. Пирамидальный метод может привести к накоплению убытков при обратном тренде.

  3. Ареографические открытия позиций применяются только для простых операций с открытием позиций, если логика открытия позиций более сложна, то требуется более сложная структура данных.

  4. Настройка целевого рычага и количества позиций должна быть скорректирована в зависимости от характеристик разновидности, а не ограничиваться каким-либо фиксированным параметром.

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

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

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

  1. Увеличение стратегии остановки убытков, активная остановка убытков при достижении точки остановки убытков.

  2. Оптимизация параметров показателя, тестирование эффективности различных параметров ATR-цикла.

  3. Попытайтесь использовать различные стратегии открытия позиций, например, открытие фиксированного количества позиций, чтобы проверить эффективность.

  4. Добавление других показателей, измеряющих волатильность, таких как WIDTH, KD, RSI и т. Д., в комбинации.

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

  6. Для оптимизации расчета количества открытых позиций можно использовать ATR-множитель или функцию волатильности.

  7. Запись дополнительных деталей открытия позиции, таких как цена, время открытия и т. д., для оптимизации стратегического анализа.

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

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

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

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

//@version=5
strategy("I11L - Risk Adjusted Leveraging", overlay=false, pyramiding=25, default_qty_value=20, initial_capital=20000, default_qty_type=strategy.percent_of_equity,process_orders_on_close=false, calc_on_every_tick=false)

atr = ta.atr(14) / close
avg_atr = ta.sma(atr,100)
ratio = atr / avg_atr

targetLeverage = 2 / ratio
targetOpentrades = 5 * targetLeverage

plot(targetOpentrades)
plot(strategy.opentrades)
isBuy = strategy.opentrades < targetOpentrades
isClose = strategy.opentrades > targetOpentrades + 1

var string[] openTrades = array.new_string(0)

if(isBuy)
    strategy.entry("Buy"+str.tostring(array.size(openTrades)),strategy.long)
    array.push(openTrades, "Buy" + str.tostring(array.size(openTrades)))

if(isClose)
    if array.size(openTrades) > 0
        strategy.close(array.get(openTrades, array.size(openTrades) - 1))
        array.pop(openTrades)