Stratégie quantitative à 50 % de fonds et 50 % de positions en équilibre dynamique


Date de création: 2023-12-25 14:12:30 Dernière modification: 2023-12-25 14:12:30
Copier: 0 Nombre de clics: 421
1
Suivre
1166
Abonnés

Stratégie quantitative à 50 % de fonds et 50 % de positions en équilibre dynamique

Aperçu de la stratégie

Cette stratégie est équilibrée dynamiquement avec 50% de fonds et 50% de positions, permettant de contrôler le risque en ajustant continuellement les positions et les ratios de fonds.

Principe de stratégie

  1. Le capital initial est de 1 million de yuans, divisé en 50% de capital et 50% de position.

  2. Si le solde est supérieur à 1,05 fois le bénéfice non réalisé, le solde est majoré de 2,5% à chaque jour d’ouverture du cycle de négociation.

  3. Si la perte n’est pas supérieure à 1,05 fois le solde, une partie de la position est vendue pour la ramener à l’équilibre.

  4. À la fin de la transaction, la position est liquidée.

Avantages stratégiques

  1. L’équilibre dynamique des fonds et des positions permet de contrôler efficacement les risques et d’éviter au maximum les pertes massives dans des situations extrêmes.

  2. Il n’y a pas besoin de surveiller le marché fréquemment, il suffit d’ajuster le ratio de fonds et de positions, l’opération est simple et convient aux investisseurs occupés.

  3. Il est possible de répondre aux besoins de différents investisseurs en ajustant les paramètres pour atteindre différents niveaux de préférence en matière de risque.

Risque stratégique

  1. Le marché n’a pas pu capturer les fluctuations à court terme et la marge de profit est limitée.

  2. Si la tendance est à une rupture unilatérale prolongée, il est possible que le ratio de position soit trop bas pour que la tendance soit pleinement captée.

  3. Une mauvaise configuration des paramètres peut entraîner des ajustements de position trop fréquents ou une utilisation insuffisante des fonds.

Optimisation de la stratégie

  1. Il est possible d’introduire plus de paramètres pour un contrôle plus précis des positions et des ratios de fonds.

  2. Il peut être combiné avec le principe de stop-loss et d’arrêt approprié pour les positions plus importantes.

  3. Il est possible de tester différents paramètres de cycle de négociation pour améliorer l’adaptabilité de la stratégie.

Résumer

Cette stratégie atteint son objectif de contrôle des risques grâce à l’équilibre dynamique des capitaux et des positions. Comparée aux autres stratégies, l’opération est simple et facile à réaliser.

Code source de la stratégie
/*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)