Perpustakaan templateadalah modul kode yang dapat digunakan kembali di FMZ Quant Trading Platform, kategori kode strategi.JavaScript
, Python
, C++
, danBlockly
. Jika kategori ditetapkan sebagai Template Class Library saat membuat strategi, perpustakaan template akan dibuat di perpustakaan strategi akun yang saat ini masuk ke Platform Perdagangan Kuantum FMZ, dan tidak mungkin untuk mengubah kategori ke strategi normal setelah dibuat.
Fungsi ekspor adalah fungsi antarmuka dari perpustakaan template, dan dapat dipanggil dengan strategi yang merujuk ke perpustakaan template.
/*
-- After the strategy references the template, call this method directly with $.Test()
-- The main function is not triggered in the strategy, it is only the entry point for template debugging
*/
$.Test = function() {
Log('Test')
}
function main() {
$.Test()
}
def Test():
Log("template call")
# Export the Test function, the main strategy can be called via ext.Test().
ext.Test = Test
// After the strategy references the template, call this method directly with ext::Test()
void Test() {
Log("template call");
}
Perpustakaan template ditulis dalam format yang berbeda untuk bahasa pemrograman yang berbeda. Contoh kode untuk mengekspor fungsi yang akan dinyatakan dalam perpustakaan template dan diimplementasikan adalah sebagai berikut:
PeraturanBlockly Visualization
Fungsionalitas perpustakaan penggunaan strategi dapat diimplementasikan dengan menulis perpustakaan kelas templat diJavaScript
bahasa, ditulis menggunakan format tulisan berikut.
/*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
}
*/
Perpustakaan template juga dapat mengatur parameter antarmuka sendiri, yang digunakan dalam bentuk variabel global dalam kode perpustakaan template. Sebagai contoh, kita mengatur parameter dari perpustakaan kelas template:
Nama variabel parameter dalam kode strategi | Nama parameter yang ditampilkan pada layar strategi | Jenis | Nilai default |
---|---|---|---|
param1 | param1 | nomor | 99 |
$.SetParam1 = function(p1) {
param1 = p1
}
$.GetParam1 = function() {
Log("param1:", param1)
return param1
}
def SetParam1(p1):
global param1
param1 = p1
def GetParam1():
Log("param1:", param1)
return param1
ext.SetParam1 = SetParam1
ext.GetParam1 = GetParam1
void SetParam1(float p1) {
param1 = p1;
}
float GetParam1() {
Log("param1:", param1);
return param1;
}
Kode perpustakaan kelas templat untuk pengujianparam1
parameter:
function main () {
Log("Call $.GetParam1:", $.GetParam1())
Log("Call $.SetParam1:", "#FF0000")
$.SetParam1(20)
Log("Call $.GetParam1:", $.GetParam1())
}
def main():
Log("Call ext.GetParam1:", ext.GetParam1())
Log("Call ext.SetParam1:", "#FF0000")
ext.SetParam1(20)
Log("Call ext.GetParam1:", ext.GetParam1())
void main() {
Log("Call ext::GetParam1:", ext::GetParam1());
Log("Call ext::SetParam1:", "#FF0000");
ext::SetParam1(20);
Log("Call ext::GetParam1:", ext::GetParam1());
}
Referensi kode strategi dari contoh perpustakaan kelas template di atas dan gunakan fungsi ekspor dari perpustakaan kelas template untuk mendapatkan parameterparam1
dan mengubah parameterparam1
.
Ketika sebuah strategi mereferensikan perpustakaan templat, ia mengharuskan bahwa akun FMZ Quant Trading Platform yang saat ini masuk memiliki perpustakaan template yang tersedia di perpustakaan strategi.halaman pengeditan strategi, selamatkan strategi.
Kerangka Strategi dan Fungsi API Parameter Strategi