
La estrategia es un sistema de negociación cuantitativa basado en la exposición al mercado abierto (OME) para juzgar el movimiento del mercado mediante el cálculo de valores acumulados de OME y tomar decisiones de negociación en combinación con indicadores de control de riesgo como la proporción de Sharpe. La estrategia utiliza un mecanismo de stop loss dinámico para controlar el riesgo de manera efectiva mientras se garantiza la ganancia. La estrategia se centra principalmente en el impacto de los cambios de precios después de la apertura del mercado en el movimiento general, para juzgar los cambios en el sentimiento y la tendencia del mercado mediante métodos científicos.
El núcleo de la estrategia es medir el movimiento del mercado mediante el cálculo de la exposición al mercado abierto (OME). La OME se calcula a través de la diferencia entre el precio de cierre actual y el precio de apertura de la fecha de negociación anterior en relación con el precio de apertura anterior. La estrategia establece el umbral acumulado de OME como una señal de negociación, y cuando el OME acumulado supera el umbral establecido, la entrada es mayor, y cuando el umbral acumulado es menor, la salida es menor. Al mismo tiempo, se introduce la proporción de Sharpe como un indicador de evaluación de riesgo para medir el riesgo de ganancias y ganancias mediante el cálculo del promedio y la diferencia estándar de OME acumuladas.
La estrategia de posicionamiento dinámico de exposición al mercado abierto es un sistema de negociación completo que combina análisis técnico y gestión de riesgos. La estrategia está diseñada de manera racional, tiene una gran utilidad y extensibilidad.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Open Market Exposure (OME) Strategy", overlay=true)
// Input parameters
length = input(14, title="Length for Variance")
sharpe_length = input(30, title="Length for Sharpe Ratio")
threshold = input(0.01, title="Cumulative OME Threshold") // Define a threshold for entry
take_profit = input(0.02, title="Take Profit (%)") // Define a take profit percentage
stop_loss = input(0.01, title="Stop Loss (%)") // Define a stop loss percentage
// Calculate Daily Returns
daily_return = (close - close[1]) / close[1]
// Open Market Exposure (OME) calculation
ome = (close - open[1]) / open[1]
// Cumulative OME
var float cum_ome = na
if na(cum_ome)
cum_ome := 0.0
if (dayofweek != dayofweek[1]) // Reset cumulative OME daily
cum_ome := 0.0
cum_ome := cum_ome + ome
// Performance Metrics Calculation (Sharpe Ratio)
mean_return = ta.sma(cum_ome, sharpe_length)
std_dev = ta.stdev(cum_ome, sharpe_length)
sharpe_ratio = na(cum_ome) or (std_dev == 0) ? na : mean_return / std_dev
// Entry Condition: Buy when Cumulative OME crosses above the threshold
if (cum_ome > threshold)
strategy.entry("Long", strategy.long)
// Exit Condition: Sell when Cumulative OME crosses below the threshold
if (cum_ome < -threshold)
strategy.close("Long")
// Take Profit and Stop Loss
if (strategy.position_size > 0)
// Calculate target and stop levels
target_price = close * (1 + take_profit)
stop_price = close * (1 - stop_loss)
// Place limit and stop orders
strategy.exit("Take Profit", "Long", limit=target_price)
strategy.exit("Stop Loss", "Long", stop=stop_price)