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

ATR Donchian Channels BREAKOUT TREND FOLLOWING POSITION SIZING PYRAMIDING Turtle Trading
Дата создания: 2025-06-16 15:14:24 Последнее изменение: 2025-08-12 17:46:27
Копировать: 0 Количество просмотров: 333
2
Подписаться
319
Подписчики

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

Обзор

Двухциклическая торговая система с регулированием волатильности - это количественная стратегия, основанная на известном законе торгового шелка, которая использует два различных временных цикла (20 и 55 дней) для захвата рыночных прорывов, а также для управления динамическими позициями в сочетании с показателями волатильности. Система объединяет несколько количественных торговых технологий, таких как отслеживание тенденций, торговля прорывами, регулирование волатильности позиций и пирамидальные позиции, чтобы эффективно улавливать средне- и долгосрочные тенденции.

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

Анализ кода показывает, что основные принципы стратегии включают в себя следующие аспекты:

  1. Двухциклический входСистема 1 использует 20-дневную высоту/низкость в качестве основного входного сигнала; Система 2 использует 55-дневную высоту/низкость в качестве входного сигнала. Такая конструкция позволяет автоматически регулировать чувствительность входа в зависимости от состояния рынка.

  2. Измерение волатильности и управление позициями: Стратегия использует 20-дневную среднюю реальную волну (((ATR) в качестве меры рыночной волатильности и рассчитывает разумную позицию по формуле: единица позиции = сумма риска / (N * точка). где сумма риска равна сумме вознаграждения по счету, умноженной на установленный процент риска (((по умолчанию 1%). Этот метод обеспечивает постоянное поддержание риска в различных волатильных условиях.

  3. Механизм пирамиды: когда цена уже имеющейся выгодной позиции продолжает двигаться в благоприятном направлении (отдаленность не менее 0.5N), стратегия позволяет добавлять новые единицы того же размера. Такой пирамидальный метод закладки позволяет расширять потенциал выгоды на рынке с сильной тенденцией.

  4. Короткий цикл перевернулся и вышел из равновесияСтратегия: используйте 10-дневный минимум/высокий максимум в качестве сигнала для выхода из позиции плюс/полезно. Если цена опустится ниже 10-дневного минимума, выровняйте все плюс-позиции; если цена преодолеет 10-дневный максимум, выровняйте все пустые позиции.

  5. Механизм переключения: Стратегия автоматически корректирует входную систему в зависимости от результатов торгов. Если сделка в каком-то направлении будет убыточной, следующая сделка в том же направлении будет использоваться системой 2 ((55-дневный цикл); после прибыльной сделки система 1 ((20-дневный цикл) будет возобновлена.

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

Стратегические преимущества

В результате анализа кода мы можем сделать вывод, что у этой стратегии есть следующие основные преимущества:

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

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

  3. Адаптация к рыночным условиямДвухциклическая конструкция позволяет стратегии автоматически корректироваться в зависимости от состояния рынка. Используйте более короткий цикл (20 дней) для сохранения чувствительности на рынке с непрерывными прибыльными тенденциями; переключитесь на более длительный цикл после потери (55 дней) для уменьшения ложных сигналов.

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

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

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

Стратегический риск

Несмотря на многочисленные преимущества этой стратегии, существуют следующие потенциальные риски:

  1. Риск ложного проникновения: В волатильных рынках цены могут часто пробиваться через высокие/низкие точки, но затем быстро отступать, что приводит к последовательным убыткам. Отсутствие механизма фильтрации ложных прорывов в коде может создавать больше неэффективных сигналов в не трендовых рынках.

  2. Увеличение риска наживы: Пирамидальный механизм повышения позиций очень эффективен в течение длительного периода тренда, но если тренд внезапно перевернется, многоединичная позиция может привести к большим потерям. Хотя стратегия устанавливает условия для выхода, она может по-прежнему понести большие потери в случае резкого переворота.

  3. Параметр Чувствительность: эффективность стратегии сильно зависит от параметров (входный цикл, выходный цикл, ATR-цикл, промежуток между ставками и т. д.). Разные рыночные условия могут требовать различных комбинаций параметров, а фиксированные параметры могут привести к неустойчивости.

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

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

  6. Проблема с точностью вычисленийФункция math.floor используется в коде, чтобы вычислить позиции вниз, что может привести к тому, что позиции в небольших счетах будут слишком маленькими или невозможными для торговли. В то же время неправильная настройка точечных значений может привести к ошибке в вычислении позиций.

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

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

На основе анализа кода можно сделать следующие оптимизации:

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

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

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

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

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

  6. Оптимизация управления капиталом: можно ввести более сложные модели управления капиталом, такие как формула Келли или оптимальный метод f-значения, для дальнейшей оптимизации кривой роста капитала с учетом ожидаемой вероятности выигрыша и динамического риска по сравнению с прибылью и убытком.

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

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

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2024-06-16 00:00:00
end: 2025-06-15 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
//策略声明和基础设置
strategy("Turtle Trading System (Full Version)", overlay=true, pyramiding=5)

//风险控制参数
riskPercent = input.float(0.5, title="每笔交易风险占资金百分比", minval=0.1, maxval=5.0, step=0.1)
pointValue = input.float(1.0, title="点值($/点)")

//入场周期参数
entryPeriod1 = input.int(20, title="系统1入场周期")
entryPeriod2 = input.int(55, title="系统2入场周期(亏损后)")

//出场和波动性参数
exitPeriod = input.int(10, title="出场周期")
nPeriod = input.int(20, title="N周期(ATR)")
pyramidSpacing = input.float(0.5, title="每N x ...添加单位", step=0.1)

//波动性指标计算
N = ta.atr(nPeriod)//计算ATR作为市场波动性的量化标准

//系统1入场通道计算(20周期)
entryHigh1 = ta.highest(high, entryPeriod1)//计算20周期内最高价作为做多突破位
entryLow1 = ta.lowest(low, entryPeriod1)//计算20周期内最低价作为做空突破位

//系统2入场通道计算(55周期)
entryHigh2 = ta.highest(high, entryPeriod2)//计算55周期内最高价作为保守做多突破位
entryLow2 = ta.lowest(low, entryPeriod2)//计算55周期内最低价作为保守做空突破位

//出场通道计算(10周期)
exitLong = ta.lowest(low, exitPeriod)//计算10周期内最低价作为多头出场位
exitShort = ta.highest(high, exitPeriod)//计算10周期内最高价作为空头出场位

//交易状态跟踪变量
var bool lastLongLoss = false//记录上次多头交易是否亏损
var bool lastShortLoss = false//记录上次空头交易是否亏损
var float lastLongEntryPrice = na//记录上次多头入场价格
var float lastShortEntryPrice = na//记录上次空头入场价格

//账户权益和风险计算
equity = strategy.equity//获取当前账户总权益
riskDollars = equity * (riskPercent / 100)//计算每笔交易允许的风险金额
unitSize = riskDollars / (N * pointValue)//基于ATR计算标准头寸规模
positionSize = math.round(unitSize, 3)//设定最终头寸大小

//入场信号生成逻辑
useSystem1Long = close > entryHigh1[1]//系统1多头入场条件
useSystem2Long = lastLongLoss and close > entryHigh2[1]//系统2多头入场条件(仅在上次亏损后)
useSystem1Short = close < entryLow1[1]//系统1空头入场条件
useSystem2Short = lastShortLoss and close < entryLow2[1]//系统2空头入场条件(仅在上次亏损后)

//金字塔加仓条件
canAddLong = strategy.opentrades > 0 and strategy.position_size > 0 and close >= lastLongEntryPrice + (pyramidSpacing * N)
//多头加仓条件
canAddShort = strategy.opentrades > 0 and strategy.position_size < 0 and close <= lastShortEntryPrice - (pyramidSpacing * N)
//空头加仓条件

//出场信号生成
longExit = close < exitLong//多头出场条件
shortExit = close > exitShort//空头出场条件

//多头入场执行
if (useSystem1Long or useSystem2Long)
    strategy.entry("Long", strategy.long, qty=positionSize)//执行多头开仓
    lastLongEntryPrice := close//记录多头入场价格作为加仓基准
    lastLongLoss := false//重置多头亏损状态

//空头入场执行
if (useSystem1Short or useSystem2Short)
    strategy.entry("Short", strategy.short, qty=positionSize)//执行空头开仓
    lastShortEntryPrice := close//记录空头入场价格作为加仓基准
    lastShortLoss := false//重置空头亏损状态

//多头加仓执行
if (canAddLong)
    strategy.entry("Long Add", strategy.long, qty=positionSize)//执行多头加仓
    lastLongEntryPrice := close//更新多头入场价格基准

//空头加仓执行
if (canAddShort)
    strategy.entry("Short Add", strategy.short, qty=positionSize)//执行空头加仓
    lastShortEntryPrice := close//更新空头入场价格基准

//多头出场执行
if (longExit)
    strategy.close("Long")//平掉初始多头头寸
    strategy.close("Long Add")//平掉所有多头加仓头寸
    lastLongLoss := close < lastLongEntryPrice//根据出场价格更新亏损状态

//空头出场执行
if (shortExit)
    strategy.close("Short")//平掉初始空头头寸
    strategy.close("Short Add")//平掉所有空头加仓头寸
    lastShortLoss := close > lastShortEntryPrice//根据出场价格更新亏损状态

//系统1入场信号可视化
plot(entryHigh1, title="20周期高点", color=color.green)//绘制系统1多头入场线
plot(entryLow1, title="20周期低点", color=color.red)//绘制系统1空头入场线

//系统2入场信号可视化
plot(entryHigh2, title="55周期高点", color=color.lime, linewidth=1)//绘制系统2多头入场线
plot(entryLow2, title="55周期低点", color=color.maroon, linewidth=1)//绘制系统2空头入场线

//出场信号可视化
plot(exitLong, title="10周期低点(多头出场)", color=color.orange)//绘制多头出场信号线
plot(exitShort, title="10周期高点(空头出场)", color=color.blue)//绘制空头出场信号线