Tổng quan: Chiến lược này sử dụng dữ liệu vị trí tương lai bitcoin BitMEX để hướng dẫn giao dịch. Nó đi ngắn khi các vị trí ngắn tăng và đi dài khi các vị trí ngắn giảm. Thích hợp để theo dõi hành vi giao dịch
Chiến lược logic:
Phân tích lợi thế:
Phân tích rủi ro:
Hướng dẫn tối ưu hóa:
Tóm lại:
Chiến lược này thúc đẩy các nhà giao dịch tương lai bitcoin chuyên nghiệp của BitMEX để có được tín hiệu kịp thời. Nó giúp các nhà đầu tư đánh giá tâm lý thị trường và phát hiện mức cao / thấp. Nó cũng cảnh báo về rủi ro giảm khi cá voi ngắn. Nhìn chung là một cách tiếp cận thú vị sử dụng dữ liệu vị trí tương lai, nhưng cần tinh chỉnh thêm các tham số và kiểm soát rủi ro trước khi triển khai trực tiếp.
/*backtest start: 2023-12-26 00:00:00 end: 2024-01-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bitfinex Shorts Strat", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, precision=2, initial_capital=1000, pyramiding=2, commission_value=0.05) //Backtest date range StartDate = input(timestamp("01 Jan 2021"), title="Start Date") EndDate = input(timestamp("01 Jan 2024"), title="Start Date") inDateRange = true symbolInput = input(title="Bitfinex Short Symbol", defval="BTC_USDT:swap") Shorts = request.security(symbolInput, "", open) // RSI Input Settings length = input(title="Length", defval=7, group="RSI Settings" ) overSold = input(title="High Shorts Threshold", defval=75, group="RSI Settings" ) overBought = input(title="Low Shorts Threshold", defval=30, group="RSI Settings" ) // Calculating RSI vrsi = ta.rsi(Shorts, length) RSIunder = ta.crossover(vrsi, overSold) RSIover = ta.crossunder(vrsi, overBought) // Stop Loss Input Settings longLossPerc = input.float(title="Long Stop Loss (%)", defval=25, group="Stop Loss Settings") * 0.01 shortLossPerc = input.float(title="Short Stop Loss (%)", defval=25, group="Stop Loss Settings") * 0.01 // Calculating Stop Loss longStopPrice = strategy.position_avg_price * (1 - longLossPerc) shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc) // Strategy Entry if (not na(vrsi)) if (inDateRange and RSIover) strategy.entry("LONG", strategy.long, comment="LONG") if (inDateRange and RSIunder) strategy.entry("SHORT", strategy.short, comment="SHORT") // Submit exit orders based on calculated stop loss price if (strategy.position_size > 0) strategy.exit(id="LONG STOP", stop=longStopPrice) if (strategy.position_size < 0) strategy.exit(id="SHORT STOP", stop=shortStopPrice)