Sumber daya yang dimuat... Pemuatan...

Terminal Perdagangan

Platform Perdagangan Kuantum FMZ menyediakan modul dan dapat disesuaikanPerdaganganAnda dapat secara bebas menambahkan berbagai modul data dan modul fungsi perdagangan, dan bahkan mengembangkan modul kode mereka sendiri (plugin terminal perdagangan). Dengan penggunaannya yang sangat fleksibel dan bebas, ini juga sangat memudahkan pengguna perdagangan manual dan perdagangan semi-programatik. Berbagai modul pada halaman Trade dapat diseret dan diperbesar, pengaturan pasangan perdagangan dan bursa yang terikat oleh modul dapat dimodifikasi, dan beberapa modul dari jenis yang sama dapat ditambahkan.

Platform Perdagangan Kuantum FMZ meningkatkan fungsi terminal perdagangan, mempermudah perdagangan manual, dan memperkenalkan fungsi trading plug-in dari terminal perdagangan.

Prinsip Plugin

Prinsipnya sama denganalat debugging: mengirim sepotong kode ke docker halaman terminal Trade untuk dieksekusi, dan mendukung kembalinya grafik dan tabel (alat debugging juga mendukung upgrade).alat debugging, itu hanya dapat dieksekusi selama 3 menit, tanpa biaya. itu dapat mewujudkan beberapa fungsi kecil sederhana, strategi yang kompleks masih perlu berjalan dalam perdagangan hidup.

Penulisan Plugin

Untuk membuat plugin terminal trading, Anda dapat mengatur jenis strategi untuk:Trading pluginpadaStrategi Baruhalaman. Trading plugin mendukungJavaScript, Python, C++, danMyLanguage.

Penggunaan Plugin

Plugin dapat menjalankan kode untuk jangka waktu tertentu, dan dapat melakukan beberapa operasi sederhana, sepertipesanan gunung es, Perintah yang menunggu, pembatalan pesanandanPerhitungan pesananSama sepertialat debugging, itu menggunakanreturnuntuk mengembalikan hasil, dan juga dapat secara langsung mengembalikan grafik dan tabel. Berikut adalah beberapa contoh, dan fungsi lain dapat dijelajahi sendiri.

  • Kembali ke gambar dalam

    // Return to the depth snapshot
    function main() {
        var tbl = { 
            type: 'table', 
            title: 'snapshot of the order depth @ ' + _D(), 
            cols: ['#', 'Amount', 'Ask', 'Bid', 'Amount'], 
            rows: []
        }
        var d = exchange.GetDepth()
        for (var i = 0; i < Math.min(Math.min(d.Asks.length, d.Bids.length), 15); i++) {
            tbl.rows.push([i, d.Asks[i].Amount, d.Asks[i].Price+'#ff0000', d.Bids[i].Price+'#0000ff', d.Bids[i].Amount])
        }
        return tbl
    }
    
    def main():
        tbl = {
            "type": "table",
            "title": "snapshot of the order depth @ " + _D(),
            "cols": ["#", "Amount", "Ask", "Bid", "Amount"],
            "rows": []
        }
        d = exchange.GetDepth()
        for i in range(min(min(len(d["Asks"]), len(d["Bids"])), 15)):
            tbl["rows"].append([i, d["Asks"][i]["Amount"], str(d["Asks"][i]["Price"]) + "#FF0000", str(d["Bids"][i]["Price"]) + "#0000FF", d["Bids"][i]["Amount"]])
        return tbl
    
    void main() {
        json tbl = R"({
            "type": "table",
            "title": "abc",
            "cols": ["#", "Amount", "Ask", "Bid", "Amount"],
            "rows": []   
        })"_json;
        
        tbl["title"] = "snapshot of the order depth @" + _D(); 
        auto d = exchange.GetDepth();
        for(int i = 0; i < 5; i++) {
            tbl["rows"].push_back({format("%d", i), format("%f", d.Asks[i].Amount), format("%f #FF0000", d.Asks[i].Price), format("%f #0000FF", d.Bids[i].Price), format("%f", d.Bids[i].Amount)});
        }
        
        LogStatus("`" + tbl.dump() + "`");
        // C++ does not support "return json" to display the table, and you can create the live trading to display the table of the status bar
    }
    
  • Menggambar spread lintas periode

    // Draw cross-period spreads
    var chart = { 
        __isStock: true,    
        title : { text : 'spread analysis chart'},                     
        xAxis: { type: 'datetime'},                 
        yAxis : {                                        
            title: {text: 'spread'},                   
            opposite: false                   
        },
        series : [                    
            {name : "diff", data : []}
        ]
    }  
    
    function main() {
        exchange.SetContractType('quarter')
        var recordsA = exchange.GetRecords(PERIOD_M5)
        exchange.SetContractType('this_week')
        var recordsB = exchange.GetRecords(PERIOD_M5)
        
        for(var i = 0; i < Math.min(recordsA.length, recordsB.length); i++){
            var diff = recordsA[recordsA.length - Math.min(recordsA.length, recordsB.length) + i].Close - recordsB[recordsB.length - Math.min(recordsA.length, recordsB.length) + i].Close
            chart.series[0].data.push([recordsA[recordsA.length - Math.min(recordsA.length, recordsB.length) + i].Time, diff])
        }
        return chart
    }
    
    chart = {
        "__isStock": True,
        "title": {"text": "spread analysis chart"},
        "xAxis": {"type": "datetime"},
        "yAxis": {
            "title": {"text": "spread"}, 
            "opposite": False
        }, 
        "series": [
            {"name": "diff", "data": []}
        ]
    }  
    
    def main():
        exchange.SetContractType("quarter")
        recordsA = exchange.GetRecords(PERIOD_M5)
        exchange.SetContractType("this_week")
        recordsB = exchange.GetRecords(PERIOD_M5)  
    
        for i in range(min(len(recordsA), len(recordsB))):
            diff = recordsA[len(recordsA) - min(len(recordsA), len(recordsB)) + i].Close - recordsB[len(recordsB) - min(len(recordsA), len(recordsB)) + i].Close
            chart["series"][0]["data"].append([recordsA[len(recordsA) - min(len(recordsA), len(recordsB)) + i]["Time"], diff])
        return chart
    
    // C++ does not support "return json" structure drawing
    

Ada contoh lain dalam More Strategies, seperti membeli / menjual dalam jumlah kecil.

Cara Menggunakannya

  • Tambahkan modul plugin dari terminal perdagangan Buka menu menambahkan modul pada halaman terminal Trade, plugin terminal perdagangan diperpustakaan strategidari akun FMZ saat ini akan ditampilkan dalam daftar secara otomatis, cari plugin yang akan ditambahkan dan klik Tambahkan.
  • Jalankan plugin Klik Execute, dan plugin terminal trading akan mulai berjalan. Plugin tidak akan menampilkan log, tetapi dapat mengembalikan tabel tampilan.
  • Waktu menjalankan plugin Waktu maksimum plugin berjalan adalah 3 menit; dan itu akan berhenti berjalan secara otomatis setelah melebihi 3 menit.
Antarmuka API yang diperluas Eksplorasi Data