Estrategia de balance dinámico con 50% de fondos y 50% de posiciones

El autor:¿ Qué pasa?, Fecha: 2023-12-25 14:12:30
Las etiquetas:

img

Resumen de la estrategia

Esta estrategia equilibra dinámicamente entre el 50% de fondos y el 50% de posiciones para controlar el riesgo. Al ajustar continuamente la relación entre fondos y posiciones, gestiona el riesgo para los inversores que no pueden monitorear el mercado en tiempo real.

Estrategia lógica

  1. Iniciar el capital en 1 millón, dividido equitativamente en 50% de fondos y 50% de posiciones.

  2. Durante el período de negociación, si los fondos restantes superan los beneficios/pérdidas no realizados en 1,05 veces en cada apertura, utilizar el 2,5% de los fondos restantes para sumar posiciones.

  3. Si las ganancias/pérdidas no realizadas superan los fondos restantes en 1,05 veces, vender posiciones parciales para restablecer el equilibrio.

  4. Cerrar todas las posiciones al final del período de negociación.

Ventajas

  1. Control eficaz del riesgo mediante el equilibrio dinámico de fondos y posiciones, evitando enormes pérdidas en condiciones extremas de mercado.

  2. Simple de operar para los inversores ocupados, sólo hay que ajustar las proporciones de fondos/posición.

  3. Parámetros personalizables para satisfacer los diferentes apetitos de riesgo.

Los riesgos

  1. Incapaz de capitalizar las fluctuaciones a corto plazo, potencial de ganancia limitado.

  2. El largo recorrido unilateral puede dar lugar a un tamaño de posición insuficiente.

  3. El ajuste inadecuado de los parámetros conduce a un exceso de cambio de posición o a una baja utilización del capital.

Oportunidades de mejora

  1. Introducir más parámetros para un control más preciso de los fondos/posiciones.

  2. Incorporar la toma de pérdidas/beneficios para posiciones más grandes.

  3. Prueba de diferentes parámetros del período de negociación para mejorar la adaptabilidad.

Conclusión

Esta estrategia logra el control de riesgos mediante el equilibrio dinámico entre fondos y posiciones. Simple de implementar en comparación con otras estrategias. Puede mejorarse aún más mediante la introducción de parámetros más ajustables y la combinación con otros conceptos de estrategia.


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



Más.