Cette stratégie génère des signaux de trading en calculant l'indicateur MACD de l'indicateur OBV pour déterminer la tendance et les points d'inflexion de l'élan OBV. L'idée principale est de générer des signaux d'achat lorsque l'histogramme OBV MACD traverse l'axe 0 de la région négative à la région positive, et de générer des signaux de vente lorsqu'il traverse l'axe 0 de la région positive à la région négative.
L'indicateur MACD peut refléter la tendance de l'élan d'un stock en analysant statistiquement la relation entre les changements de direction des prix de clôture et les volumes de négociation sur une période de temps pour déterminer si l'élan ascendant se renforce ou s'affaiblit.
Plus précisément, cette stratégie calcule d'abord l'indicateur OBV, qui calcule la ligne d'élan OBV en analysant statistiquement la relation entre les changements de direction des prix de clôture et des volumes de négociation sur une période de temps. Ensuite, sur la base de la ligne d'élan OBV, son indicateur MACD est calculé, y compris la ligne MACD, la ligne de signal et l'histogramme. Enfin, lorsque l'histogramme macd traverse l'axe 0 de la région négative à la région positive, un signal d'achat est généré; lorsque l'histogramme traverse l'axe 0 de la région positive à la région négative, un signal de vente est généré.
La pénétration du MACD est utilisée pour émettre des signaux de transaction, ce qui peut améliorer la précision des décisions de transaction.
Cette stratégie combine l'analyse du volume OBV et les indicateurs de dynamique MACD pour des jugements relativement précis sur les changements de volume et de tendance des prix, qui peuvent filtrer efficacement les signaux FALS.
La stratégie comporte également certains risques, principalement en ce qui concerne les aspects suivants:
Pour faire face à ces risques, les mesures suivantes peuvent être prises:
Il reste encore des possibilités d'optimisation de cette stratégie, principalement dans les domaines suivants:
Grâce à des tests et à une optimisation continus, cette stratégie peut devenir une stratégie de trading quantitative stable et efficace.
Cette stratégie est une stratégie quantitative typique qui combine l'analyse du volume et des indicateurs de dynamique pour déterminer les tendances des prix et générer des signaux de trading. Elle peut clairement identifier les points d'inflexion des fluctuations des prix, et les signaux de trading sont relativement fiables. Avec des paramètres raisonnables, de bons résultats de stratégie peuvent être obtenus. Mais elle comporte également certains risques qui doivent être réduits par une optimisation continue pour améliorer les performances. En général, cette stratégie fournit une idée typique pour les stratégies de trading quantitative qui vaut la peine d'être étudiée et appliquée.
/*backtest start: 2023-12-17 00:00:00 end: 2024-01-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "MACD of OBV", overlay = false) //////////////////////// OBV /////////////////////////// src = close obv = cum(change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume) //////////////////////// OBV ////////////////////////// //////////////// MACD OF OBV //////////////////////////// sourcemacd = obv fastLength = input(12, minval=1), slowLength=input(26,minval=1) signalLength=input(9,minval=1) fastMA = ema(sourcemacd, fastLength) slowMA = ema(sourcemacd, slowLength) macd = fastMA - slowMA signal = ema(macd, signalLength) delta=macd-signal swap1 = delta>0?green:red plot(delta,color=swap1,style=columns,title='Histo',histbase=0,transp=20) p1 = plot(macd,color=blue,title='MACD Line') p2 = plot(signal,color=red,title='Signal') fill(p1, p2, color=blue) hline(0) /////////////////////////MACD OF OBV ////////////////////////// // Conditions longCond = na sellCond = na longCond := crossover(delta,0) sellCond := crossunder(delta,0) monthfrom =input(6) monthuntil =input(12) dayfrom=input(1) dayuntil=input(31) if ( longCond ) strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY") else strategy.cancel(id="BUY") if ( sellCond ) strategy.close("BUY")