Cette stratégie est un système de négociation quantitatif basé sur l'exposition au marché ouvert (OME), qui prend des décisions de négociation en calculant des valeurs OME cumulées pour juger des tendances du marché, combinées à des indicateurs de contrôle des risques tels que le ratio Sharpe.
Le cœur de la stratégie est de mesurer les tendances du marché en calculant l'exposition au marché ouvert (OME). L'OME est calculé comme le ratio de la différence entre le prix de clôture actuel et le prix d'ouverture du jour précédent par rapport au prix d'ouverture précédent. La stratégie définit des seuils cumulés d'OME comme signaux de trading, entrant dans des positions longues lorsque l'OME cumulatif dépasse le seuil fixé et clôturant les positions lorsqu'il tombe en dessous du seuil négatif. Le ratio Sharpe est introduit comme un indicateur d'évaluation des risques, mesurant le ratio risque-rendement en calculant la moyenne et l'écart type de l'OME cumulatif. La stratégie comprend également un mécanisme fixe de prise de profit et de stop-loss pour protéger les profits et contrôler les pertes.
La stratégie d'ajustement dynamique de position d'exposition au marché ouvert est un système de trading complet qui combine l'analyse technique et la gestion des risques. Grâce à l'application innovante de l'indicateur OME, elle permet de saisir efficacement les tendances du marché.
/*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)