3 10 Stratégie de marquage des profils d'oscillateur

Auteur:ChaoZhang est là., Date: le 18 février 2024 16:17:26
Les étiquettes:

img

Résumé

La stratégie 3 10 Oscillator Profile Flagging génère des signaux de trading en calculant la différence entre les moyennes mobiles simples de 3 et 10 jours comme indicateur MACD et en combinant l'analyse du volume pour déterminer la force des acheteurs et des vendeurs sur le marché.

Principe de stratégie

L'indicateur de base de cette stratégie est le MACD, qui se compose d'une ligne moyenne mobile rapide et d'une ligne moyenne mobile lente. La ligne rapide est une moyenne mobile simple de 3 jours et la ligne lente est une moyenne mobile simple de 10 jours. La différence entre eux forme l'histogramme MACD. Lorsque la ligne rapide traverse au-dessus de la ligne lente depuis le bas, elle représente un renforcement du pouvoir d'achat et génère un signal d'achat. Inversement, lorsque la ligne rapide traverse au-dessous de la ligne lente depuis le haut, le pouvoir de vente se renforce et un signal de vente est généré.

En outre, la stratégie intègre une analyse de la force relative du volume d'achat et de vente basée sur la relation de taille entre le volume d'achat et le volume de vente de chaque chandelier. La méthode spécifique est: Volume d'achat = Volume x (Close - Low) ÷ (High - Low); Volume de vente = Volume x (High - Close) ÷ (High - Low). Si le volume d'achat est significativement supérieur au volume de vente, cela signifie que le chandelier ferme avec un pouvoir d'achat relativement fort, ce qui est un signal d'achat.

En combinant l'indicateur MACD et l'analyse du volume, la stratégie peut déterminer efficacement la relation entre l'offre et la demande et la direction pendante du marché. En même temps, la stratégie vérifie également des conditions telles que si le prix est dans une zone clé, si le MACD a un renversement efficace et si la différence entre le volume d'achat et de vente est suffisamment grande, afin de filtrer un certain bruit impulsif et d'assurer une entrée à haute probabilité et à haute efficacité.

Analyse des avantages

  • Utiliser l'indicateur MACD pour juger de l'orientation en attente du marché
  • Analyse des différences de volume pour déterminer la force des acheteurs et des vendeurs
  • Le dépistage à conditions multiples assure un fonctionnement à haute probabilité
  • Adopter une stratégie de stop profit et de stop loss pour contrôler les risques

Le plus grand avantage de cette stratégie est qu'elle intègre pleinement le jugement de la relation entre l'offre et la demande du marché. L'histogramme MACD peut déterminer efficacement le contraste entre le pouvoir d'achat et de vente et la direction en attente sur le marché; l'analyse de la différence de volume peut clairement identifier le pouvoir dominant entre acheteurs et vendeurs. Dans le même temps, la stratégie définit plusieurs conditions de révision pour éviter de poursuivre les hausses et de battre les baisses, assurant une probabilité de profit relativement élevée. En outre, le mécanisme de stop profit et de stop loss intégré de la stratégie peut également limiter les pertes individuelles.

Analyse des risques

  • Risque d'échec du MACD: lorsque le marché fluctue ou se consolide dans un schéma plat, le MACD peut générer de faux signaux.
  • Risque de défaillance du volume: il peut y avoir manipulation du marché pour augmenter le volume des transactions, ce qui réduirait la précision de l'analyse du volume.
  • Difficulté d'optimisation des paramètres. La stratégie contient plusieurs paramètres difficiles à optimiser, ce qui la rend inadaptée aux investisseurs ayant des capacités de réglage de paramètres relativement faibles.

Les risques susmentionnés peuvent être évités en: déterminant avec précision la tendance principale du marché pour éviter d'utiliser cette stratégie pendant les fluctuations du marché; en prêtant attention aux informations du marché pour identifier les volumes de négociation artificiellement gonflés; en ajustant soigneusement les paramètres ou en sollicitant les conseils de professionnels.

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  • Utiliser des indicateurs tels que le KD, les bandes de Bollinger, etc. pour remplacer ou aider le MACD et améliorer la précision du jugement
  • Ajouter des mécanismes de gestion de position pour l'ajustement des paramètres dynamiques
  • Optimiser les points d'arrêt des pertes et des arrêts des bénéfices pour obtenir un bénéfice unique plus élevé
  • Exécuter sur plusieurs délais pour améliorer la stabilité

En résumé, on constate qu'il y a beaucoup de marge d'optimisation de cette stratégie: les investisseurs peuvent apporter des ajustements et des améliorations appropriés en fonction de leur situation et des conditions du marché afin d'obtenir une meilleure efficacité de la stratégie.

Résumé

La stratégie de flagging de profil d'oscillateur 3 10 intègre avec succès les idées de l'analyse MACD, de la comparaison de volume et de la vérification de filtrage multi-condition. Elle a de fortes capacités à déterminer les relations offre-demande et les directions en attente du marché, tout en contrôlant les risques grâce à des mécanismes de stop profit et stop loss intégrés.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("3 10 Oscillator Profile Flagging", shorttitle="3 10 Oscillator Profile Flagging", overlay=true)

signalBiasValue = input(title="Signal Bias", defval=0.26)
macdBiasValue = input(title="MACD Bias", defval=0.8)
shortLookBack = input( title="Short LookBack", defval=3)
longLookBack = input( title="Long LookBack", defval=10)
takeProfit = input( title="Take Profit", defval=0.75)
stopLoss = input( title="Stop Loss", defval=0.5)

fast_ma = ta.sma(close, 3)
slow_ma = ta.sma(close, 10)
macd = fast_ma - slow_ma
signal = ta.sma(macd, 16)
hline(0, "Zero Line", color = color.black)

buyVolume = volume*((close-low)/(high-low))
sellVolume = volume*((high-close)/(high-low))
buyVolSlope = buyVolume - buyVolume[1]
sellVolSlope = sellVolume - sellVolume[1]
signalSlope = ( signal - signal[1] )
macdSlope = ( macd - macd[1] )
//plot(macdSlope, color=color.red, title="Total Volume")
//plot(signalSlope, color=color.green, title="Total Volume")
intrabarRange = high - low

getLookBackSlope(lookBack) => signal - signal[lookBack]
getBuyerVolBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if buyVolume[i] > sellVolume[i]
            j += 1
    j

getSellerVolBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if sellVolume[i] > buyVolume[i]
            j += 1
    j

getVolBias(lookBack) =>
    float b = 0
    float s = 0
    for i = 1 to lookBack
        b += buyVolume[i]
        s += sellVolume[i]
    b > s

getSignalBuyerBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] > signalBiasValue
            j += 1
    j

getSignalSellerBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] < ( 0 - signalBiasValue )
            j += 1
    j

getSignalNoBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] < signalBiasValue and signal[i] > ( 0 - signalBiasValue )
            j += 1
    j

getPriceRising(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if close[i] > close[i + 1]
            j += 1
    j


getPriceFalling(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if close[i] < close[i + 1] 
            j += 1
    j

getRangeNarrowing(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if intrabarRange[i] < intrabarRange[i + 1] 
            j+= 1
    j

getRangeBroadening(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if intrabarRange[i] > intrabarRange[i + 1] 
            j+= 1
    j

bool isNegativeSignalReversal = signalSlope < 0 and signalSlope[1] > 0
bool isNegativeMacdReversal = macdSlope < 0 and macdSlope[1] > 0

bool isPositiveSignalReversal = signalSlope > 0 and signalSlope[1] < 0
bool isPositiveMacdReversal = macdSlope > 0 and macdSlope[1] < 0

bool hasBearInversion = signalSlope > 0 and macdSlope < 0
bool hasBullInversion = signalSlope < 0 and macdSlope > 0

bool hasSignalBias = math.abs(signal) >= signalBiasValue
bool hasNoSignalBias = signal < signalBiasValue and signal > ( 0 - signalBiasValue )

bool hasSignalBuyerBias = hasSignalBias and signal > 0
bool hasSignalSellerBias = hasSignalBias and signal < 0

bool hasPositiveMACDBias = macd > macdBiasValue
bool hasNegativeMACDBias = macd < ( 0 - macdBiasValue )

bool hasBullAntiPattern = ta.crossunder(macd, signal)
bool hasBearAntiPattern = ta.crossover(macd, signal)

bool hasSignificantBuyerVolBias = buyVolume > ( sellVolume * 1.5 )
bool hasSignificantSellerVolBias = sellVolume > ( buyVolume * 1.5 )

// 7.48 Profit 52.5% 
if ( hasSignificantBuyerVolBias and getPriceRising(shortLookBack) == shortLookBack  and getBuyerVolBias(shortLookBack) == shortLookBack and hasPositiveMACDBias and hasBullInversion)
    strategy.entry("Short1", strategy.short, qty=10)
strategy.exit("TPS", "Short1", limit=strategy.position_avg_price - takeProfit, stop=strategy.position_avg_price + stopLoss)

// 32.53 Profit 47.91%
if ( getPriceFalling(shortLookBack) and (getVolBias(shortLookBack) == false) and signalSlope < 0 and hasSignalSellerBias)
    strategy.entry("Long1", strategy.long, qty=10)
strategy.exit("TPS", "Long1", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss)

Plus de