Dynamische Ausgleichs-ETF-Anlagestrategie mit Hebelwirkung

Schriftsteller:ChaoZhang, Datum: 2024-02-19 11:09:29
Tags:

img

Übersicht

Diese Strategie setzt den Hong Kong Hang Seng Index ETF (00631L) als Anlageziel und passt die Cashposition und die Positionsquote dynamisch an, um die Rendite und das Risiko des Anlageportfolios in Echtzeit auszugleichen.

Grundsätze

  1. 50% des Gesamtbetrags für den Kauf von 00631L zu investieren;

  2. Überwachung des Verhältnisses zwischen nicht realisiertem Gewinn und verbleibendem Cash;

    Verkauf von 5% der Position, wenn der nicht realisierte Gewinn die verbleibenden Barmittel um 10% übersteigt;

    Zusatz von 5% zur Position, wenn die verbleibenden Barmittel den nicht realisierten Gewinn um 10% übersteigen;

  3. Dynamische Anpassung von Position und Cash-Ratio zur Kontrolle von Portfoliorendite und -Risiko.

Analyse der Vorteile

  1. Einfach und einfach zu bedienen, ohne die Marktbedingungen zu beurteilen;

  2. Durch die dynamische Anpassung von Positionen wird das Anlagerisiko wirksam verwaltet;

  3. Zwei-Wege-Verfolgung zur rechtzeitigen Stop-Loss- oder Take-Profit-Aktion;

  4. Geeignet für Anleger, die den Markt nicht häufig überprüfen können.

Risiken und Minderungsmaßnahmen

  1. Hebelfinanzierte ETFs weisen eine höhere Volatilität auf;

    Graduelle Positionserweiterung und gegenseitige Investitionen.

  2. Nicht in der Lage, den Verlust rechtzeitig zu stoppen;

    Setzen Sie die Stop-Loss-Linie, um den maximalen Verlust zu kontrollieren.

  3. Höhere Handelskosten;

    Entspannen Sie den Ausgleichsbereich, um Positionsanpassungen zu reduzieren.

Optimierungsideen

  1. Optimierung der Position und der Cashquote;

  2. die Wirksamkeit der Testergebnisse für verschiedene ETF-Produkte;

  3. Einbeziehung von Trendindikatoren zur Verbesserung der Effizienz der Kapitalnutzung.

Schlussfolgerung

Durch den Aufbau eines dynamischen Ausgleichsportfolios wird das Anlagerisiko kontrolliert, ohne dass die Marktentwicklung beurteilt werden muss.


/*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)



Mehr