Sumber daya yang dimuat... Pemuatan...

Analisis dan Realisasi Commodity Futures Volume Footprint Chart

Penulis:Kebaikan, Dibuat: 2020-07-03 11:06:48, Diperbarui: 2023-10-28 15:30:11

img

Ringkasan

Bagan jejak kuantum adalah alat analisis grafik canggih, nama bahasa Inggrisnya adalah Bagan jejak. Bagan ini menunjukkan aktivitas perdagangan setiap harga dalam satu garis K. Selain memberikan informasi harga, Bagan ini juga memberikan informasi seperti volume transaksi, pembelian aktif, dan penjualan aktif. Bagan ini merupakan bagan teknis multi-dimensi yang mengungkapkan rasio distribusi sebenarnya dari setiap harga berdasarkan volume perdagangan, menjelaskan hubungan kompleks antara volume perdagangan, harga, dan waktu, dan dapat memberikan lebih banyak referensi bagi para pedagang.

Apa itu Quantum Footprint?

Dengan kata lain, Quantum Footprint memberikan transparansi pasar dengan melakukan mikro-analisis apa yang terjadi pada pembeli dan penjual pada berbagai tingkat harga.

  • Harga K-line
  • Volume pembelian aktif (ASK)
  • Volume Penjualan Aktif (BID)
  • Rasio keseimbangan

img

Seperti yang ditunjukkan pada gambar di atas, ini adalah versi demonstrasi dari grafik jejak energi kuantitatif yang diimplementasikan di platform perdaganganFMZ.COMHal ini dihitung berdasarkantickdata yang terperinci dilampirkan ke garis K. Ketika mouse mengalihkan ke atas pada garis K, data jejak energi kuantitatif dapat disajikan. Data di kotak biru adalah hasil perhitungannya, yang dibagi menjadi dua kolom secara total, dan kolom kiri adalah semua titik harga dari garis K saat ini, yang disusun dalam urutan dari besar ke kecil. Kolom kanan adalah volume perdagangan untuk setiap tingkat harga, dibagi menjadi volume perdagangan pembelian dan volume perdagangan penjualan, dipisahkan oleh x. Di sebelah kiri x adalah volume pembelian aktif, di sebelah kanan x adalah volume penjualan aktif.

Peran Jejak Energi Kuantum

Pikirkan tentang apa yang menyebabkan kenaikan harga? Jawabannya sederhana... pembeli dan penjual. Jika ada lebih banyak pembeli daripada penjual, harga akan naik; jika ada lebih banyak penjual daripada pembeli, harga akan turun. Jika jumlah penjual saat ini kira-kira sama dengan jumlah harga pembelian, maka pasar akan menunjukkan tren volatilitas, yaitu, pasar berada dalam keadaan seimbang. Begitu pembeli atau penjual besar muncul, keseimbangan ini akan rusak, dan kemudian peta jejak energi akan menunjukkan rasio ekstrim pembelian dan penjualan aktif.

Jari kaki energi ditampilkan secara dinamis berdasarkan data Tick, sehingga sangat cocok untuk perdagangan intraday jangka pendek. Pedagang dapat dengan akurat melihat volume perdagangan aktif pada setiap harga untuk menjelaskan alasan atau hukum fluktuasi harga dan menyesuaikan strategi perdagangan mereka sendiri. Misalnya: jika volume pembelian di sebelah kiri jauh lebih besar dari volume penjualan di sebelah kanan, itu berarti bahwa peserta pasar secara aktif membeli, dan harga mungkin meningkat di masa depan; sebaliknya, jika volume penjualan di sebelah kanan jauh lebih besar dari volume pembelian di sebelah kiri, itu berarti Dengan peserta pasar secara aktif menjual, harga mungkin turun di masa depan.

Prinsip jejak energi kuantum

Prinsip perhitungan Quantum Energy Footprint berasal dari data volume dan pasar. Volume saat ini dihitung secara real time sesuai dengan perubahan harga pasar. Jika harga pasar naik, volume dicatat sebagai pembelian aktif; jika harga pasar turun, Kemudian catat volume sebagai penjualan aktif.Tickdata akan dihitung secara real time untuk secara akurat menghitung omset dari setiapTick.

Pelaksanaan Kode Jejak Energi Kuantum

/*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
        }
    }
}

Unduh Kode Jejak Kuantum

Kode strategi grafik jejak kuantitatif telah dirilis pada tanggalFMZ.complatform, dan pengguna biasa dapat menggunakannya tanpa pengaturan.https://www.fmz.com/strategy/189965

Untuk meringkas

Dalam penggunaan yang sebenarnya, peta jejak energi juga dapat menganalisis aliran dana dari perspektif volume. Apakah untuk menganalisis arah tren skala besar atau arah jangka pendek hari, ia memainkan peran penting. Namun, harus dicatat bahwa apa yang disebut arus modal di sini tidak mengacu pada masuk dan keluar dana, melainkan mencerminkan kesediaan pasar untuk membeli dan menjual dan perilaku permainan pemain utama dan investor ritel.


Berkaitan

Lebih banyak