В процессе загрузки ресурсов... загрузка...

Динамическое управление позициями

Автор:Чао Чжан, Дата: 2024-05-28 11:21:52
Тэги:

img

Обзор

Эта стратегия использует последовательный подход к ежедневной торговле, фокусируясь на достижении небольших целей при сохранении строгого управления рисками. Стратегия была проверена с 2021 года, демонстрируя надежную производительность с показателем выигрыша 100%. Основная идея стратегии заключается в открытии новых длинных или коротких позиций в начале каждого торгового дня на основе рыночных условий предыдущего дня. Ключевые параметры включают целевую прибыль в 0,3% и стоп-лосс в 0,2%, с начальным капиталом в 1000 долларов и комиссией в 0,1% за сделку.

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

Основной принцип этой стратегии заключается в том, чтобы открывать новые длинные или короткие позиции в начале каждого торгового дня на основе рыночных тенденций предыдущего торгового дня. В частности, если в предыдущий день не было никаких позиций, стратегия откроет длинную позицию в начале нового дня. Если уже есть длинная позиция, стратегия проверяет, была ли достигнута цель прибыли 0,3%, и закрывает позицию, если это так. Для коротких позиций стратегия проверяет, была ли достигнута 0,2% стоп-лосс, и если это так, она закрывает короткую позицию и одновременно открывает новую длинную позицию, чтобы заменить ее. Это гарантирует, что стратегия всегда поддерживает воздействие на рынок.

Преимущества стратегии

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

  1. Показатель выигрыша 100%: За 36 закрытых сделок стратегия достигла показателя выигрыша 100%, что подчеркивает ее стабильную производительность.
  2. Динамическое управление позициями: в случае остановки короткой позиции, сразу же открывается новая длинная позиция для ее замены, что обеспечивает постоянную рыночную позицию.
  3. Строгое управление рисками: Стратегия устанавливает целевую прибыль в 0,3% и стоп-лосс в 0,2%, эффективно контролируя риск.
  4. Регулярное участие на рынке: стратегия открывает позиции в начале каждого дня, обеспечивая регулярное участие на рынке.
  5. Устойчивые результаты обратного тестирования: результаты обратного тестирования с 2021 года показывают устойчивую производительность с чистой прибылью в 22,2% и максимальным доходом в 13,75%.

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

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

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

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

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

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

Заключение

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


/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Daily AUD-JPY Trading", overlay=true, initial_capital=1000, currency="AUD", default_qty_type=strategy.percent_of_equity, default_qty_value=200, commission_type=strategy.commission.percent, commission_value=0.1)

// Input parameters
profit_target = input(0.3, title="Profit Target (%)") / 100
loss_target = input(0.2, title="Loss Target (%)") / 100
start_year = input(2021, title="Start Year")

// Calculate daily open and close
new_day = ta.change(time("D"))

var float entry_price_long = na
var float entry_price_short = na
var bool position_long_open = false
var bool position_short_open = false

// Date check
trade_start = timestamp(start_year, 1, 1, 0, 0)

if new_day and time >= trade_start
    // If there was a previous long position, check for profit target
    if position_long_open
        current_profit_long = (close - entry_price_long) / entry_price_long
        if current_profit_long >= profit_target
            strategy.close("AUD Trade Long", comment="Take Profit Long")
            position_long_open := false
    
    // If there was a previous short position, check for profit target
    if position_short_open
        current_profit_short = (entry_price_short - close) / entry_price_short
        if current_profit_short >= profit_target
            strategy.close("AUD Trade Short", comment="Take Profit Short")
            position_short_open := false

    // Check for daily loss condition for short positions
    if position_short_open
        current_loss_short = (close - entry_price_short) / entry_price_short
        if current_loss_short <= -loss_target
            strategy.close("AUD Trade Short", comment="Stop Loss Short")
            position_short_open := false
            
            // Open a new long position to replace the stopped short position
            strategy.entry("AUD Trade Long Replacement", strategy.long)
            entry_price_long := close
            position_long_open := true

    // Open a new long position at the start of the new day if no long position is open
    if not position_long_open and not position_short_open
        strategy.entry("AUD Trade Long", strategy.long)
        entry_price_long := close
        position_long_open := true

    // Open a new short position at the start of the new day if no short position is open
    if not position_short_open and not position_long_open
        strategy.entry("AUD Trade Short", strategy.short)
        entry_price_short := close
        position_short_open := true

// Check for continuous profit condition for long positions
if position_long_open
    current_profit_long = (close - entry_price_long) / entry_price_long
    if current_profit_long >= profit_target
        strategy.close("AUD Trade Long", comment="Take Profit Long")
        position_long_open := false

// Check for continuous profit condition for short positions
if position_short_open
    current_profit_short = (entry_price_short - close) / entry_price_short
    if current_profit_short >= profit_target
        strategy.close("AUD Trade Short", comment="Take Profit Short")
        position_short_open := false

// Plot the entry prices on the chart
plot(position_long_open ? entry_price_long : na, title="Entry Price Long", color=color.green, linewidth=2)
plot(position_short_open ? entry_price_short : na, title="Entry Price Short", color=color.red, linewidth=2)

// Display current profit/loss percentage for long positions
var label profit_label_long = na
if position_long_open and not na(entry_price_long)
    current_profit_long = (close - entry_price_long) / entry_price_long * 100
    label.delete(profit_label_long)
    profit_label_long := label.new(x=time, y=high, text="Long P/L: " + str.tostring(current_profit_long, format.percent), style=label.style_label_down, color=color.white, textcolor=color.black,xloc=xloc.bar_time)

// Display current profit/loss percentage for short positions
var label profit_label_short = na
if position_short_open and not na(entry_price_short)
    current_profit_short = (entry_price_short - close) / entry_price_short * 100
    label.delete(profit_label_short)
    profit_label_short := label.new(x=time, y=high, text="Short P/L: " + str.tostring(current_profit_short, format.percent), style=label.style_label_down, color=color.white, textcolor=color.black,xloc=xloc.bar_time)

Больше