Memperlihatkan dasar penyuntingan untuk memperluaskan perpustakaan kelas tersuai

Penulis:Mimpi kecil, Dicipta: 2020-10-17 11:27:43, Dikemas kini: 2023-09-27 19:39:37

img

Memperlihatkan dasar penyuntingan untuk memperluaskan perpustakaan kelas tersuai

Bagaimana untuk memperluaskan perpustakaan kelas tersuai yang anda perlukan untuk strategi visualisasi? Sebagai contoh, saya ingin mengira penunjuk MA, tetapi sistem hanya membawa:imgBagaimana anda boleh menambah kod yang disesuaikan? Sebagai contoh, kami akan menerangkan bagaimana untuk mengembangkan modul visualisasi dengan menambah modul pengiraan penunjuk MA tersuai.

Perpustakaan perdagangan tunai mata wang digital

Pertama sekali, mari kita bincangkan templat ini, yang dikenali sebagai Cryptocurrency Cash Library, yang diletakkan di:https://www.fmz.com/strategy/10989Walaupun templat ini adalah templat bahasa JavaScript untuk platform FMZ, pelajar yang tidak memahami konsep templat boleh melihat dokumen API FMZ:https://www.fmz.com/api#模板类库(Sunting) Tetapi terdapat nota di bahagian awal templat yang menentukan kod untuk memvisualisasikan modul, dan kod yang ditentukan boleh merujuk kepada kod templat JavaScript ini.

Perpustakaan perdagangan tunai mata wang digital, definisi visual pada bahagian 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 dalam halaman penyuntingan visual adalah:img

Membina modul untuk mengukur MA yang ditakrifkan sendiri

Dengan contoh-contoh yang sedia ada, anda boleh membina sendiri dengan mudah, lebih mudah daripada melukis.

Pertama, membina templat baru untuk bahasa JavaScript.img

Mengedit kod templat.

/*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
    }
*/
  • jenis: Sifat menentukan jenis modul, boleh menamakan sendiri.
  • message0: teks yang dipaparkan pada modul.
  • template: kod yang dilaksanakan oleh modul.
  • output: jenis output modul.
  • args0: parameter input modul, dalam kod definisi modul, %1 mewakili parameter input pertama, dan %2 mewakili kedua.

Templat yang baru dicipta ini boleh disimpan selepas diedit. Dalam strategi yang kita perlukan untuk menggunakan templat ini, pilih templat ini.img

Di sini, anda boleh melihat dua modul tambahan:

  • img

    Modul yang dipanggil:testA, mari kita lihat kod pelaksanaannya:img

    function(){return 99;}()
    

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

  • img

    Modul yang dinamakan: MA Cycle, kita lihat di bawah ini kod pelaksanaannya:

    img

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

    Kod adalah panggilan fungsi tanpa nama yang pertama kali dilakukan dalam fungsi tanpa nama untuk mendapatkan data baris K, data baris K.r.. dan kemudian bergantung pada apakah r yang diperoleh adalah untuknullataurApakah panjang adalah kurang daripada parameter input modul%1Untuk menilai kembalifalseatau kembali.TA.MA(r, %1)Hasil pengiraan indikator.

Saya tidak mahu menghalang anda daripada menggunakan laman web ini.

Ujian mengira MA

Pengarang Strategi Visual:img

Jalankan:img

Seperti yang dapat dilihat di atas, data yang diperoleh untuk mengira indikator MA dibayar jika anda mahu.

Di atas adalah hanya untuk meringkaskan, untuk reka bentuk modul visual, fungsi templat boleh diperluaskan sendiri.


Berkaitan

Lebih lanjut