Carta jejak kuantum adalah alat analisis carta lanjutan, nama bahasa Inggerisnya adalah
Secara ringkasnya, Quantum Footprint menyediakan ketelusan pasaran dengan menganalisis mikro apa yang berlaku kepada pembeli dan penjual pada pelbagai tahap harga.
Seperti yang ditunjukkan dalam gambar di atas, ini adalah versi demonstrasi carta jejak tenaga kuantitatif yang dilaksanakan di platform daganganFMZ.COM. Ia dikira berdasarkantick
pasaran. Data terperinci dilampirkan ke garisan K. Apabila tetikus melayang di atas Garis K, data jejak tenaga kuantitatif boleh dibentangkan. Data dalam kotak biru adalah hasil penghitungannya, yang dibahagikan kepada dua lajur secara keseluruhan, dan lajur kiri adalah semua titik harga garis K semasa, yang disusun mengikut susunan dari besar ke kecil. Lajur kanan adalah jumlah dagangan untuk setiap tahap harga, dibahagikan kepada jumlah dagangan membeli dan menjual, dipisahkan oleh
Fikirkan tentang apa yang menyebabkan kenaikan harga? Jawapannya mudah... pembeli dan penjual. Jika terdapat lebih banyak pembeli daripada penjual, harga akan meningkat; jika terdapat lebih banyak penjual daripada pembeli, harga akan jatuh. Jika jumlah penjual semasa kira-kira sama dengan jumlah harga pembelian, maka pasaran akan menunjukkan trend yang tidak stabil, iaitu, pasaran berada dalam keadaan seimbang. Sebaik sahaja pembeli atau penjual besar muncul, keseimbangan ini akan terputus, dan kemudian peta jejak tenaga akan menunjukkan nisbah yang melampau pembelian dan penjualan aktif.
Jarak tenaga dipaparkan secara dinamik berdasarkan data Tick, jadi ia sangat sesuai untuk perdagangan intraday jangka pendek. Pedagang dapat melihat dengan tepat jumlah dagangan aktif pada setiap harga untuk menerangkan sebab atau undang-undang turun naik harga dan menyesuaikan strategi dagangan mereka sendiri. Sebagai contoh: jika jumlah pembelian di sebelah kiri jauh lebih besar daripada jumlah penjualan di sebelah kanan, ini bermakna peserta pasaran secara aktif membeli, dan harga mungkin meningkat pada masa akan datang; sebaliknya, jika jumlah penjualan di sebelah kanan jauh lebih besar daripada jumlah pembelian di sebelah kiri, ini bermakna Dengan peserta pasaran yang menjual secara aktif, harga mungkin jatuh pada masa akan datang.
Prinsip pengiraan jejak tenaga kuantum berasal dari data jumlah dan pasaran. Volume semasa dikira dalam masa nyata mengikut perubahan harga pasaran. Jika harga pasaran meningkat, jumlah ini direkodkan sebagai pembelian aktif; jika harga pasaran jatuh, Kemudian rekodkan jumlah sebagai penjualan aktif. Dalam grafik jejak tenaga FMZ,Tick
data akan dikira dalam masa nyata untuk mengira dengan tepat perolehan setiapTick
.
/*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
}
}
}
Kod strategi carta jejak kuantitatif telah dikeluarkan padaFMZ.complatform, dan pengguna biasa boleh menggunakannya tanpa tetapan.https://www.fmz.com/strategy/189965
Dalam penggunaan sebenar, peta jejak tenaga juga dapat menganalisis aliran dana dari perspektif jumlah. Sama ada untuk menganalisis arah trend berskala besar atau arah jangka pendek hari itu, ia memainkan peranan penting. Walau bagaimanapun, perlu diperhatikan bahawa apa yang dipanggil aliran modal di sini tidak merujuk kepada masuk dan keluar dana, tetapi lebih mencerminkan kesediaan pasaran untuk membeli dan menjual dan tingkah laku permainan pemain utama dan pelabur runcit.