Обзор: Эта стратегия использует данные позиции фьючерсов биткойна BitMEX для руководства сделками. Она становится короткой, когда короткие позиции увеличиваются, и длинной, когда короткие позиции уменьшаются. Подходит для следующего поведения торговли
Логика стратегии:
Анализ преимуществ:
Анализ рисков:
Направления оптимизации:
Резюме:
Эта стратегия использует профессиональных трейдеров фьючерсов биткойна BitMEX для получения своевременных сигналов. Она помогает инвесторам оценивать настроение рынка и обнаруживать максимумы / минимумы. Также предупреждает о рисках снижения, когда киты сильно короткие. В целом интересный подход с использованием данных о позиции фьючерсов, но необходимое дальнейшее уточнение параметров и контроля риска перед развертыванием в прямом эфире.
/*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)