Stratégie de prédiction de l'itinéraire futur de Mike D


Date de création: 2023-12-13 17:21:44 Dernière modification: 2023-12-13 17:21:44
Copier: 0 Nombre de clics: 714
1
Suivre
1621
Abonnés

Stratégie de prédiction de l’itinéraire futur de Mike D

Aperçu

L’idée centrale de cette stratégie est de faire des prévisions sur la tendance des prix en analysant les mouvements futurs de l’indicateur McD. Cette stratégie exploite pleinement les signaux de négociation générés par la croisée de la moyenne rapide et de la moyenne lente de l’indicateur McD.

Principe de stratégie

  1. Calculer la différence de l’indicateur de McD ((valeur historique) et en fonction de cela juger de la hausse et de la baisse de la ligne de McD et de la ligne de signal.
  2. En plaçant une option sur le bullish, on utilise la valeur future de l’indicateur McD dans une fourchette de 4 heures pour juger de la future évolution de l’indicateur McD afin de prédire la tendance des prix.
  3. Faire plus lorsque le décalage de l’indicateur MACD est supérieur à 0 (pour le marché à plusieurs têtes) et que la hausse devrait se poursuivre. Faire plus lorsque le décalage de l’indicateur MACD est inférieur à 0 (pour le marché à vide) et que la baisse devrait se poursuivre.
  4. Cette stratégie combine à la fois le suivi de la tendance et le renversement de la tendance, et permet de saisir le moment où la tendance se renverse.

Analyse des forces stratégiques

  1. L’indicateur McD permet de tirer parti des tendances du marché et de filtrer efficacement les secousses pour capturer les tendances à long terme.
  2. La prévision de la tendance future de l’indicateur McD permet de saisir les points de basculement des prix à l’avance et d’améliorer la prévisibilité de la stratégie.
  3. La combinaison de suivi de tendance et d’opérations de renversement de tendance vous permet de revenir en arrière au bon moment pour obtenir un gain plus important.
  4. Les paramètres de la stratégie sont réglables et peuvent être optimisés en fonction des différentes périodes de temps et des conditions du marché, ce qui améliore la stabilité de la stratégie.

Analyse stratégique des risques

  1. Le trading est basé sur la prévision de l’évolution future de l’indicateur McD, qui peut entraîner l’échec de la transaction si elle n’est pas correcte.
  2. Il est nécessaire d’utiliser un stop-loss pour contrôler les pertes individuelles. Un mauvais paramètre de stop-loss peut également affecter l’efficacité de la stratégie.
  3. L’indicateur McD risque de manquer une reprise rapide du cours en raison de son retard. La performance stratégique dans un contexte de forte volatilité est une préoccupation.
  4. Il est nécessaire de s’intéresser aux conséquences des coûts de transaction.

Orientation de l’optimisation de la stratégie

  1. La combinaison d’autres indicateurs permet de réduire la dépendance à l’égard d’un seul indicateur McD et d’améliorer l’exactitude des prévisions.
  2. L’algorithme d’apprentissage de la machine a été ajouté pour former des modèles qui prédisent la tendance future de l’indicateur McD.
  3. Optimiser les paramètres pour trouver la meilleure combinaison de paramètres.
  4. Différentes configurations de paramètres s’adaptent à différents environnements de marché, et des paramètres d’optimisation automatique peuvent être ajoutés pour adapter le système.

Résumer

Cette stratégie utilise pleinement les avantages de l’indicateur McD pour déterminer la tendance, tout en ajoutant une analyse prédictive de la tendance future de l’indicateur, afin de saisir les points de basculement clés sur la base de la capture de la tendance. Comparée à la simple suivi de la tendance, cette stratégie est plus prospective et offre plus de marge de profit. Bien sûr, il existe également un certain risque, qui nécessite une optimisation et un perfectionnement supplémentaires.

Code source de la stratégie
/*backtest
start: 2023-12-05 00:00:00
end: 2023-12-12 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © x11joe
strategy(title="MacD (Future Known or Unknown) Strategy", overlay=false, precision=2,commission_value=0.26, initial_capital=10000, currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

//OPTIONAL:: Allow only entries in the long or short position
allowOnlyLong = input(title="Allow position ONLY in LONG",type=input.bool, defval=false)
allowOnlyShort = input(title="Allow position ONLY in SHORT",type=input.bool, defval=false)


strategy.risk.allow_entry_in(allowOnlyLong ? strategy.direction.long : allowOnlyShort ? strategy.direction.short : strategy.direction.all) // There will be no short entries, only exits from long.

// Create MacD inputs
fastLen = input(title="MacD Fast Length", type=input.integer, defval=12)
slowLen = input(title="MacD Slow Length", type=input.integer, defval=26)
sigLen  = input(title="MacD Signal Length", type=input.integer, defval=9)

// Get MACD values
[macdLine, signalLine, _] = macd(close, fastLen, slowLen, sigLen)
hist = macdLine - signalLine

useFuture = input(title="Use The Future?",type=input.bool,defval=true)

macDState(resolutionType) =>
    hist_from_resolution = security(syminfo.tickerid, resolutionType, hist,barmerge.gaps_off, barmerge.lookahead_on)
    Green_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution > 0
    Green_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution > 0
    Red_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution <= 0
    Red_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution <= 0
    result=0
    if(Green_IsUp)
        result := 1
    if(Green_IsDown)
        result := 2
    if(Red_IsDown)
        result := 3
    if(Red_IsUp)
        result := 4
    result

macDStateNonFuture(resolutionType) =>
    hist_from_resolution = security(syminfo.tickerid, resolutionType, hist,barmerge.gaps_off, barmerge.lookahead_off)
    Green_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution > 0
    Green_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution > 0
    Red_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution <= 0
    Red_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution <= 0
    result=0
    if(Green_IsUp)
        result := 1
    if(Green_IsDown)
        result := 2
    if(Red_IsDown)
        result := 3
    if(Red_IsUp)
        result := 4
    result

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"
// === INPUT BACKTEST RANGE END ===

//Get FUTURE or NON FUTURE data
macDState240=useFuture ? macDState("240") : macDStateNonFuture("240") //1 is green up, 2 if green down, 3 is red, 4 is red up

//Fill in the GAPS
if(macDState240==0)
    macDState240:=macDState240[1]

//Plot Positions
plot(close,color= macDState240==1 ? color.green : macDState240==2 ? color.purple : macDState240==3 ? color.red : color.yellow,linewidth=4,style=plot.style_histogram,transp=50)

if(useFuture)
    strategy.entry("buy_1",long=true,when=window() and (macDState240==4 or macDState240==1))
    strategy.close("buy_1",when=window() and macDState240==3 and macDState240[1]==4)
    strategy.entry("sell_1",long=false,when=window() and macDState240==2)
else
    strategy.entry("buy_1",long=true,when=window() and (macDState240==4 or macDState240==1))//If we are in a red macD trending downwards MacD or in a MacD getting out of Red going upward.
    strategy.close("buy_1",when=window() and macDState240==3 and macDState240[1]==4)//If the state is going upwards from red but we are predicting back to red...
    strategy.entry("sell_1",long=false,when=window() and macDState240==2)//If we are predicting the uptrend to end soon.