50%의 자금과 50%의 지분을 가진 동적 균형 전략

저자:차오장, 날짜: 2023-12-25 14:12:30
태그:

img

전략 개요

이 전략은 50% 자금과 50% 포지션을 동적으로 균형을 맞추어 위험을 제어합니다. 자금과 포지션의 비율을 지속적으로 조정함으로써 실시간 시장 모니터링을 할 수 없는 투자자들에게 위험을 관리합니다.

전략 논리

  1. 자본은 100만 달러로 50%의 자금과 50%의 지점으로 나뉘어

  2. 거래 기간 동안, 남은 자금이 매 오픈에서 실현되지 않은 이익/손실을 1.05배 이상 초과하면, 남은 자금의 2.5%를 사용해서 포지션을 추가합니다.

  3. 실현되지 않은 이익/손실이 나머지 자금을 1.05배 이상 초과하면, 부진을 회복하기 위해 부분 포지션을 판매합니다.

  4. 거래 기간이 끝나면 모든 포지션을 닫습니다.

장점

  1. 극심한 시장 조건에서 엄청난 손실을 피하는 동적으로 자금과 포지션을 균형을 맞추어 효과적인 위험 통제

  2. 바쁜 투자자들에게는 간단하게 작동할 수 있습니다. 단지 펀드/포지션 비율을 조정할 필요가 있습니다.

  3. 다양한 위험 욕구를 충족시키기 위해 사용자 정의 가능한 매개 변수.

위험성

  1. 단기적인 변동을 활용할 수 없고 수익 잠재력이 제한되어 있습니다.

  2. 길게 일방적으로 실행하면 포지션 크기가 충분하지 않을 수 있습니다.

  3. 부적절한 매개 변수 조정으로 인해 과도한 포지션 전환 또는 낮은 자본 활용이 발생합니다.

더 나은 기회

  1. 보다 세밀한 펀드/포지션 통제를 위한 더 많은 매개 변수를 도입합니다.

  2. 더 큰 포지션에 대해 스톱 로스/이익 취득을 포함합니다.

  3. 다양한 거래 기간 매개 변수를 테스트하여 적응력을 향상시킵니다.

결론

이 전략은 자금과 포지션 사이의 역동적인 균형을 통해 위험 통제를 달성합니다. 다른 전략에 비해 구현하기 쉽습니다. 더 조정 가능한 매개 변수를 도입하고 다른 전략 개념과 결합하여 추가적으로 개선 할 수 있습니다.


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



더 많은