
이 전략은 50%의 자금과 50%의 포지션으로 동적으로 균형을 이루며, 포지션과 자금 비율을 지속적으로 조정함으로써 위험을 통제합니다. 실시간으로 시장을 모니터링 할 수없는 투자자에게 적합합니다.
초기 자본 1백만 원으로, 50%의 자본과 50%의 포지션으로 나다.
거래주기 동안, 매일 상장할 때, 잔여자금이 미취득의 1.05배보다 크면, 잔여자금의 2.5%를 가설한다.
잔액의 1.05배 이상의 수익을 얻지 못하면 일부 포지션을 판매하여 균형을 회복합니다.
거래가 끝날 때, 모든 포지션을 청산한다.
자금과 포지션의 동적인 균형을 통해 위험을 효과적으로 통제하고 극단적인 상황에서의 엄청난 손실을 최대한 피할 수 있습니다.
시장을 자주 감시할 필요 없이, 자본과 포지션의 비율을 조정하는 것만으로도, 작업이 간단하고, 바쁜 투자자에게 적합하다.
다른 투자자의 요구를 충족하기 위해 다양한 위험 선호도를 달성하기 위해 매개 변수를 조정할 수 있습니다.
시장의 단기적 하락을 포착할 수 없고, 수익의 여지가 제한되어 있다.
만약 시장에서 장기간 단방파괴가 발생한다면, 시장의 포지션 비율이 너무 낮아 시장의 흐름을 충분히 포착할 수 없게 될 수 있다.
매개 변수 설정이 잘못되면 포지션이 너무 자주 조정되거나 자금 활용도가 낮아질 수 있습니다.
더 많은 매개 변수를 도입하여 포지션과 자본 비율에 대한 더 정교한 통제를 구현할 수 있습니다.
손해 막기 원칙과 결합하여, 포지션이 큰 경우에 적절한 손해 막기.
다양한 거래주기 파라미터 설정을 테스트하여 전략의 적응성을 향상시킬 수 있다.
이 전략은 자금과 포지션의 동적 균형의 사고를 통해 위험 통제의 목표를 달성한다. 다른 전략에 비해 작동이 간단하고 구현하기 쉽다. 후속으로 더 많은 조정 가능한 매개 변수를 도입하고 다른 전략 사고와 결합하여 전략을 더 완성시킬 수 있다.
/*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)