Strategi pengeditan visualisasi untuk memperluas perpustakaan kustom

Penulis:Mimpi kecil, Dibuat: 2020-10-17 11:27:43, Diperbarui: 2023-09-27 19:39:37

img

Strategi pengeditan visualisasi untuk memperluas perpustakaan kustom

Bagaimana cara memperluas perpustakaan kelas kustom yang Anda butuhkan untuk strategi visualisasi Anda? Misalnya, saya ingin menghitung indikator MA, tetapi sistem hanya membawa:imgBagaimana Anda bisa menambahkan beberapa kode khusus untuk indikator ini? Kami menjelaskan bagaimana memperluas modul visualisasi dengan menambahkan modul perhitungan indikator MA khusus.

Perpustakaan perdagangan mata uang digital

Pertama, mari kita bahas tentang template Cryptocurrency Cash Library, yang alamatnya adalah:https://www.fmz.com/strategy/10989Meskipun template ini adalah template bahasa JavaScript untuk platform FMZ, siswa yang tidak memahami konsep template dapat mencari dokumen FMZ API:https://www.fmz.com/api#模板类库Tidak ada. Namun, di bagian awal template ada catatan yang mendefinisikan kode untuk memvisualisasikan modul, dan kode yang didefinisikan dapat mengutip kode dari template JavaScript ini.

Perpustakaan transaksi langsung mata uang digital, definisi visual pada bagian awal:

/*blockly
    {
        "type": "ext_Trade",
        "message0": "%1 币数 %2|%1 Coins %2",
        "args0": [{
            "type": "field_dropdown",
            "options": [
                ["买入|Buy", "Buy"],
                ["卖出|Sell", "Sell"]
            ]
        }, {
            "type": "input_value",
            "check": "Number"
        }],
        "template": "(function(){var r = $.%1(%2); return r ? r.amount : 0; })()",
        "order": "ORDER_ATOMIC",
        "output": "Number",
        "colour": 85
    }, {
        "type": "ext_CancelPendingOrders",
        "message0": "取消 %1 订单|Cancel %1 Orders",
        "args0": [{
            "type": "field_dropdown",
            "name": "TYPE",
            "options": [
                ["所有|All", " "],
                ["买单|Buy", "ORDER_TYPE_BUY"],
                ["卖单|Sell", "ORDER_TYPE_SELL"]
            ]
        }],
        "previousStatement": null,
        "nextStatement": null,
        "template": "$.CancelPendingOrders(%1);",
        "colour": 85
    }, {
        "type": "ext_Cross",
        "message0": "计算交叉 周期 %1 与 %2|Cross Period %1 and %2",
        "inputsInline": true,
        "args0": [{
            "type": "input_value"
        }, {
            "type": "input_value"
        }],
        "template": "$.Cross(%1,%2)",
        "order": "ORDER_ATOMIC",
        "output": "Number"
    }, {
        "type": "ext_GetAccount",
        "message0": "获取资产信息|GetAccount",
        "template": "$.GetAccount()",
        "order": "ORDER_ATOMIC",
        "output": null
    }
*/

Modul-modul di halaman pengeditan yang dapat dilihat:img

Membangun modul untuk menghitung indikator MA yang didefinisikan sendiri

Dengan contoh yang sudah ada, Anda dapat membuatnya sendiri dengan mudah, bahkan lebih mudah daripada membuat lukisan sendiri.

Pertama, membuat template baru untuk bahasa JavaScript.img

Mengedit kode template.

/*blockly
    {
        "type": "ext_testA",
        "message0": "testA|testA",
        "template": "function(){return 99;}()",
        "order": "ORDER_ATOMIC",
        "output": "Number"
    },{
        "type": "ext_MA",
        "message0": "MA 周期 %1| MA Period %1",
        "args0": [{
            "type": "input_value",
            "check": "Number"
        }],
        "template": "(function(){var r = exchange.GetRecords(); return (!r || r.length < %1) ? false : TA.MA(r, %1); })()",
        "order": "ORDER_ATOMIC",
        "output": null,
        "colour": 85
    }
*/
  • type: Atribut mendefinisikan tipe modul, yang dapat didefinisikan dengan namanya sendiri.
  • message0: teks yang ditampilkan pada modul.
  • template: kode yang dieksekusi modul.
  • output: tipe output modul.
  • args0: parameter input dari modul, dalam kode definisi modul, %1 mewakili parameter input pertama dan %2 mewakili parameter input kedua.

Setelah template yang baru dibuat diedit, simpan. Jika Anda ingin menggunakan template ini, pilih template ini.img

Anda dapat melihat dua modul tambahan:

  • img

    Di sini kita akan melihat modul yang disebut: testA, dan kita akan melihat kode pelaksanaannya:img

    function(){return 99;}()
    

    Ini adalah fungsi JavaScript yang sangat sederhana yang dijalankan untuk mengembalikan nilai 99.

  • img

    Di bawah ini adalah kode pelaksanaannya:

    img

    (function(){var r = exchange.GetRecords(); return (!r || r.length < %1) ? false : TA.MA(r, %1); })()
    

    Kode adalah panggilan fungsi anonim yang pertama kali dilakukan dalam fungsi anonim untuk mendapatkan data baris K, data baris K.r│ Kemudian berdasarkan apakah r yang diperoleh adalah untuknullAtaurApakah panjangnya lebih kecil dari parameter input dari modul%1Untuk memutuskan kembalifalseatau kembaliTA.MA(r, %1)Hasil dari perhitungan indikator.

Anda bisa menggunakannya di kemudian hari.

Percobaan menghitung indikator MA

Di sini, Anda dapat melihat beberapa gambar yang menarik.img

Berjalan:img

Seperti yang dapat dilihat di atas, data yang diperoleh untuk menghitung indikator MA dibayar jika Anda mau.

Di atas hanya mengutip kerucut, untuk desain modul visualisasi dapat menggunakan fungsi template untuk memperluas sendiri.


Berkaitan

Lebih banyak