
Descripción general: Esta estrategia utiliza los datos de las posiciones de futuros de BTC de Bitfinex para guiar las operaciones. Haga menos cuando aumenta el número de posiciones cortas y más cuando disminuye el número de posiciones cortas.
Principio de la estrategia:
Análisis de las ventajas:
Análisis de riesgos:
La dirección de la optimización:
En resumen: La estrategia de seguir a los comerciantes profesionales de futuros de BTC de Bitfinex, para obtener señales de comercio de la institución en el momento oportuno. Ayuda a los inversores a monitorear el calor del mercado, para comprender los altos y bajos. Al mismo tiempo, advierte sobre los riesgos de inversión, cuando los comerciantes profesionales hacen mucho espacio, tenga cuidado de reducir las posiciones de más de una posición. En general, la estrategia utiliza la ventaja de la información sobre las posiciones de futuros, sin perder una idea de comercio interesante.
/*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)