Die Ressourcen sind geladen. Beförderung...

Dynamische Ausgleichsstrategie mit 50% Fonds und 50% Positionen

Schriftsteller:ChaoZhang, Datum: 2023-12-25 14:12:30
Tags:

img

Strategieübersicht

Diese Strategie regelt dynamisch zwischen 50% Fonds und 50% Positionen, um das Risiko zu kontrollieren.

Strategie Logik

  1. Initialkapital bei 1 Million, gleichmäßig aufgeteilt in 50% Fonds und 50% Positionen.

  2. Wenn während des Handelszeitraums die verbleibenden Mittel bei jeder Öffnung das nicht realisierte Gewinn/Verlust um das 1,05-fache übersteigen, werden 2,5% der verbleibenden Mittel zur Zugabe von Positionen verwendet.

  3. Wenn der nicht realisierte Gewinn/Verlust das verbleibende Kapital um das 1,05-fache übersteigt, werden Teilpositionen verkauft, um das Gleichgewicht wiederherzustellen.

  4. Alle Positionen am Ende des Handelszeitraums schließen.

Vorteile

  1. Wirksame Risikokontrolle durch dynamisches Ausgleichen von Fonds und Positionen und Vermeidung großer Verluste bei extremen Marktbedingungen.

  2. Einfach zu bedienen für beschäftigte Anleger, nur die Fonds-Positionsquoten anpassen müssen.

  3. Anpassungsfähige Parameter, um unterschiedlichen Risikobereitschaften gerecht zu werden.

Risiken

  1. Nicht in der Lage, von kurzfristigen Schwankungen zu profitieren, begrenzte Gewinnpotenziale.

  2. Eine lange einseitige Ausführung kann zu einer unzureichenden Positionsgröße führen.

  3. Eine unsachgemäße Einstellung der Parameter führt zu einem übermäßigen Positionswechsel oder zu einer geringen Auslastung des Kapitals.

Möglichkeiten zur Verbesserung

  1. Einführung weiterer Parameter für eine präzisere Fonds-/Positionskontrolle.

  2. Einbeziehung von Stop-Loss/Profit-Taking für größere Positionen.

  3. Versuche verschiedene Parameter für den Handelsperiode, um die Anpassungsfähigkeit zu verbessern.

Schlussfolgerung

Diese Strategie erreicht die Risikokontrolle durch dynamisches Ausgleichen zwischen Fonds und Positionen. Einfach zu implementieren im Vergleich zu anderen Strategien. Kann durch Einführung anpassungsfähigerer Parameter und Kombination mit anderen Strategiekonzepten weiter verbessert werden.


/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-18 19:00:00
period: 1m
basePeriod: 1m
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(2020, 11, 4)
next_date = timestamp(2020, 11, 5)
sell_date = timestamp(2023, 10, 24)
end_date = timestamp(2023, 10, 25)  // 结束日期改为2023年10月25日

// 判断是否在交易期间
in_trade_period = true
// 实现的盈亏
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