Le graphique d'empreinte quantique est un outil d'analyse de graphiques avancé, dont le nom anglais est
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.
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 destick
Les 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
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.
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.Tick
Les données seront calculées en temps réel pour calculer avec précision le chiffre d'affaires de chaqueTick
.
/*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
}
}
}
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
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.