O recurso está a ser carregado... Carregamento...

Estratégia de investimento de ETFs alavancados com equilíbrio dinâmico

Autora:ChaoZhang, Data: 2024-02-19 11:09:29
Tags:

img

Resumo

Esta estratégia toma o Hong Kong Hang Seng Index ETF (00631L) como alvo de investimento e ajusta dinamicamente a posição de caixa e o rácio de posição para equilibrar o retorno e o risco da carteira de investimento em tempo real.

Princípios

  1. Inicialmente investir 50% dos fundos totais para comprar 00631L;

  2. Monitorizar a relação entre os lucros não realizados e o saldo de caixa;

    Vender 5% da posição quando o lucro não realizado exceder 10% o liquido remanescente;

    Adicionar 5% à posição quando o saldo de liquidez exceder 10% o lucro não realizado;

  3. Ajustar dinamicamente a posição e o rácio de caixa para controlar o rendimento e o risco da carteira.

Análise das vantagens

  1. Simples e fáceis de operar, sem necessidade de julgar as condições do mercado;

  2. O ajustamento dinâmico das posições gerencia eficazmente o risco de investimento;

  3. Acompanhamento bidireccional para parar perdas ou obter lucros em tempo útil;

  4. Adequado para investidores que não podem verificar o mercado com frequência.

Riscos e atenuações

  1. Os ETF alavancados apresentam maior volatilidade;

    Adotar um desenvolvimento gradual da posição e investimentos espaçados.

  2. Incapacidade de parar perdas em tempo útil;

    Configure a linha de stop loss para controlar a perda máxima.

  3. Custos de negociação mais elevados;

    Relaxar o intervalo de equilíbrio para reduzir os ajustes de posição.

Ideias de otimização

  1. Otimizar a posição e a taxa de liquidez;

  2. Eficiência dos resultados dos testes em diferentes produtos do ETF;

  3. Incorporar indicadores de tendência para melhorar a eficiência da utilização do capital.

Conclusão

Com base na construção de uma carteira de equilíbrio dinâmica, esta estratégia controla os riscos de investimento sem a necessidade de julgar as tendências do mercado.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("00631L Trading Simulation", shorttitle="Sim", overlay=true, initial_capital = 1000000)

// 设置本金
capital = 1000000

// 设置购买和出售日期范围
start_date = timestamp(2022, 10, 6) 
next_date = timestamp(2022, 10, 7)  // 較好的開始日
//start_date = timestamp(2022, 3, 8) 
//next_date = timestamp(2022, 3, 9)  // 較差的的開始日 
sell_date = timestamp(2024, 1, 19) 
end_date = timestamp(2024, 1, 21)  // 结束日期为2024年01月21日

// 判断是否在交易期间
in_trade_period = time >= start_date and time <= end_date
// 实现的盈亏
realized_profit_loss = strategy.netprofit
plot(realized_profit_loss, title="realized_profit_loss", color=color.blue)
// 未实现的盈亏
open_profit_loss = strategy.position_size * open
plot(open_profit_loss, title="open_profit_loss", color=color.red)
// 剩余资金
remaining_funds = capital  + realized_profit_loss - (strategy.position_size * strategy.position_avg_price)
plot(remaining_funds, title="remaining_funds", color=color.yellow)
// 總權益
total_price = remaining_funds + open_profit_loss
plot(total_price, title="remaining_funds", color=color.white)
// 购买逻辑:在交易期间的每个交易日买入 daily_investment 金额的产品
first_buy = time >= start_date and time <= next_date
buy_condition = in_trade_period and dayofmonth != dayofmonth[1]
// 出售邏輯 : 在交易期间的截止日出售所有商品。
sell_all = time >= sell_date

// 在交易期間的第一日買入50%本金
if first_buy
    strategy.order("First", strategy.long, qty = capital/2/open)
// 在每个K线的开盘时进行买入

// 加碼邏輯 : 剩余资金 > 未实现的盈亏 * 1.05
add_logic = remaining_funds > open_profit_loss * 1.05
if buy_condition
    strategy.order("Buy", strategy.long, when = add_logic, qty = remaining_funds * 0.025 / open)
//

// 減碼邏輯 : 剩余资金 > 未实现的盈亏 * 1.05
sub_logic = open_profit_loss > remaining_funds * 1.05
if buy_condition
    strategy.order("Sell", strategy.short, when = sub_logic, qty = open_profit_loss * 0.025/open)
//

strategy.order("Sell_all",  strategy.short, when = sell_all, qty = strategy.position_size)

// 绘制交易期间的矩形区域
bgcolor(in_trade_period ? color.green : na, transp=90)



Mais.