Analyse et réalisation des contrats à terme sur matières premières

Auteur:La bonté, Créé: 2020-07-03 11:06:48, Mis à jour: 2023-10-28 15:30:11

img

Résumé

Le graphique d'empreinte quantique est un outil d'analyse de graphiques avancé, dont le nom anglais est Footprint Charts. Il montre l'activité de trading de chaque prix dans une seule ligne K. En plus de fournir des informations sur les prix, il fournit également des informations telles que le volume des transactions, l'achat actif et la vente active.

Quelle est l'empreinte quantique?

En termes simples, Quantum Footprint fournit une transparence du marché en micro-analysant ce qui arrive aux acheteurs et aux vendeurs à différents niveaux de prix.

  • Prix à la ligne K
  • Volume d'achat actif (ASK)
  • Volume de vente actif (BID)
  • Ratio d'équilibre

img

Comme le montre la figure ci-dessus, il s'agit d'une version de démonstration du graphique quantitatif de l'empreinte énergétique mis en œuvre sur la plateforme de négociation.FMZ.COMElle est calculée sur la base destickLes données de l'empreinte énergétique quantitative peuvent être présentées sur la ligne K. Les données dans le carré bleu sont le résultat de son calcul, qui est divisé en deux colonnes au total, et la colonne gauche est tous les points de prix de la ligne K actuelle, qui sont disposés par ordre de grand à petit. La colonne droite est le volume de négociation pour chaque niveau de prix, subdivisé en volume de négociation d'achat et volume de négociation de vente, séparé par x. À gauche de x est le volume d'achat actif, à droite de x est le volume de vente active.

Le rôle de l'empreinte énergétique quantique

Pensez à ce qui a causé l'augmentation des prix? La réponse est simple... acheteurs et vendeurs. S'il y a plus d'acheteurs que de vendeurs, le prix augmentera; s'il y a plus de vendeurs que d'acheteurs, le prix baissera. Si le nombre actuel de vendeurs est approximativement égal au nombre de prix d'achat, alors le marché montrera une tendance volatile, c'est-à-dire que le marché est dans un état d'équilibre. Une fois que de grands acheteurs ou vendeurs apparaîtront, cet équilibre sera rompu, et alors la carte de l'empreinte énergétique montrera un rapport extrême d'achat et de vente actifs.

L'empreinte énergétique est affichée de manière dynamique sur la base des données Tick, elle est donc particulièrement adaptée au trading intraday à court terme. Les traders peuvent voir avec précision le volume de trading actif sur chaque prix pour expliquer les raisons ou les lois des fluctuations de prix et personnaliser leurs propres stratégies de trading. Par exemple: si le volume d'achat à gauche est beaucoup plus grand que le volume de vente à droite, cela signifie que les participants au marché achètent activement, et le prix peut augmenter à l'avenir; sinon, si le volume de vente à droite est beaucoup plus grand que le volume d'achat à gauche, cela signifie que les prix peuvent chuter à l'avenir.

Principe de l'empreinte énergétique quantique

Le principe de calcul de l'empreinte énergétique quantique provient des données de volume et de marché. Le volume actuel est calculé en temps réel en fonction des changements de prix du marché. Si le prix du marché augmente, le volume est enregistré comme un achat actif; si le prix du marché baisse, enregistrer le volume comme une vente active.TickLes données seront calculées en temps réel pour calculer avec précision le chiffre d'affaires de chaqueTick.

Mise en œuvre du code de l'empreinte énergétique quantique

/*backtest
start: 2020-03-10 00:00:00
end: 2020-03-10 23:59:00
period: 1h
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
mode: 1
*/

var NewFuturesTradeFilter = function (period) {
    var self = {} // Create an object
    self.c = Chart({ // Create "Chart" chart
        tooltip: {
            xDateFormat:'%Y-%m-%d %H:%M:%S, %A',
            pointFormat:'{point.tips}'
        },
        series: [{
            name: exchange.GetName(),
            type:'candlestick',
            data: []
        }]
    })
    self.c.reset() // clear chart data
    self.pre = null // used to record the last data
    self.records = []
    self.feed = function (ticker) {
        if (!self.pre) {// If the previous data is not true
            self.pre = ticker // Assign the latest data
        }
        var action ='' // Mark as empty string
        Log('ticker', ticker)
        Log('pre', self.pre)
        if (ticker.Last >= self.pre.Sell) {// If the last price of the latest data is greater than or equal to the selling price of the previous data
            action ='buy' // mark as buy
        } else if (ticker.Last <= self.pre.Buy) {// If the last price of the latest data is less than or equal to the bid price of the previous data
            action ='sell' // mark as sell
        } else {
            if (ticker.Last >= ticker.Sell) {// If the last price of the latest data is greater than or equal to the selling price of the latest data
                action ='buy' // mark as buy
            } else if (ticker.Last <= ticker.Buy) {// If the last price of the latest data is less than or equal to the buying price of the latest data
                action ='sell' // mark as "sell"
            } else {
                action ='both' // Mark as "both"
            }
        }
        // reset volume
        if (ticker.Volume <self.pre.Volume) {// If the volume of the latest data is less than the volume of the previous data
            self.pre.Volume = 0 // Assign the volume of the previous data to 0
        }
        var amount = ticker.Volume-self.pre.Volume // the volume of the latest data minus the volume of the previous data
        if (action !='' && amount> 0) {// If the tag is not an empty string and the action is greater than 0
            var epoch = parseInt(ticker.Time / period) * period // Calculate the K-line timestamp and round it
            var bar = null
            var pos = undefined
            if (
                self.records.length == 0 || // If the K-line length is 0 or the last K-line timestamp is less than "epoch"
                self.records[self.records.length-1].time <epoch
            ) {
                bar = {
                    time: epoch,
                    data: {},
                    open: ticker.Last,
                    high: ticker.Last,
                    low: ticker.Last,
                    close: ticker.Last
                } // Assign the latest data to bar
                self.records.push(bar) // Add bar to the records array
            } else {// reassign bar
                bar = self.records[self.records.length-1] // the last bar of the previous data
                bar.high = Math.max(bar.high, ticker.Last) // the maximum price of the last bar of the previous data and the maximum value of the last price of the latest data
                bar.low = Math.min(bar.low, ticker.Last) // The minimum price of the last bar of the previous data and the minimum value of the last price of the latest data
                bar.close = ticker.Last // last price of latest data
                pos = -1
            }
            if (typeof bar.data[ticker.Last] ==='undefined') {// If the data is empty
                bar.data[ticker.Last] = {// reassign value
                    buy: 0,
                    sell: 0
                }
            }
            if (action =='both') {// If the token is equal to both
                bar.data[ticker.Last]['buy'] += amount // buy accumulation
                bar.data[ticker.Last]['sell'] += amount // sell accumulated
            } else {
                bar.data[ticker.Last][action] += amount // mark accumulation
            }
            var tips =''
            Object.keys(bar.data) // Put the keys in the object into an array
                .sort() // sort
                .reverse() // Reverse the order in the array
                .forEach(function (p) {// traverse the array
                    tips +='<br>' + p + '' + bar.data[p].sell +'x' + bar.data[p].buy
                })
            self.c.add( // Add data
                0, {
                    x: bar.time,
                    open: bar.open,
                    high: bar.high,
                    low: bar.low,
                    close: bar.close,
                    tips: tips
                },
                pos
            )
        }
        self.pre = ticker // reassign
    }
    return self // return object
}


// program entry
function main() {
    Log(_C(exchange.SetContractType,'MA888')) // subscription data
    var filt = NewFuturesTradeFilter(60000) // Create an object
    while (true) {// Enter loop mode
        var ticker = exchange.GetTicker() // Get exchange tick data
        if (ticker) {// If the Tick data is successfully obtained
            filt.feed(ticker) // Start processing data
        }
    }
}

Télécharger le code d'empreinte quantique

Le code de stratégie de la carte de l'empreinte quantitative a été publié leFMZ.comLa plateforme, et les utilisateurs ordinaires peuvent l'utiliser sans réglage.https://www.fmz.com/strategy/189965

Pour résumer

Dans l'utilisation réelle, la carte de l'empreinte énergétique peut également analyser le flux de fonds du point de vue du volume. Qu'il s'agisse d'analyser la direction des tendances à grande échelle ou la direction à court terme de la journée, elle joue un rôle vital. Cependant, il convient de noter que le soi-disant flux de capital ne fait pas référence à l'entrée et à la sortie de fonds, mais reflète plutôt la volonté d'achat et de vente du marché et le comportement de jeu des principaux acteurs et des investisseurs de détail.


Relationnée

Plus de