Bahasa pemrograman apa yang tersedia untuk menerapkan strategi saya di FMZ Quant Trading Platform?FMZ Quant Trading Platform mendukung
JavaScript
,TypeScript
,Python
,C++
,PINE
,My Language
,Blockly
visualisasi untuk menulis dan merancang strategi.
Ini mendukung bahasa JavaScript dan mengintegrasikan perpustakaan JavaScript berikut:
JavaScript
strategi bahasa, ketika kesalahan pengecualian program atau kesalahan bisnis antarmuka terjadi, log kesalahan akan menampilkan nomor baris tertentu di mana kesalahan terjadi dalam kode strategi, yang nyaman untuk debugging strategi dan pemecahan masalah bug.Ini mendukungTypeScript
bahasa, tetap mengaturnya keJavaScript
strategi ketika kita membuat strategi, maka kita menulis// @ts-check
di awal kode strategi atau klik tombolTypeScript
di sudut kanan atas area editing strategi untuk beralih keTypeScript
Platform akan mengenali kode sebagaiTypeScript
secara otomatis dan menyediakan dukungan kompilasi dan pemeriksaan tipe yang sesuai untuk:
Atur penerjemah Python yang digunakan oleh program strategi Python
Strategi yang ditulis dalam Python, ketika backtesting atau live trading, jika lingkungan sistem docker memiliki Python2 dan Python3 yang terinstal, Anda dapat mengatur versi Python untuk diluncurkan pada runtime pada baris pertama strategi, seperti#!python3
dan#!python2
, sehingga sistem akan menemukan penerjemah secara otomatis. Dan Anda juga dapat menentukan jalur absolut, seperti:#!/usr/bin/python3
.
Keamanan Strategi berbasis Python
Ketika strategi trading dikembangkan di FMZ Quant Trading Platform, konten strategi hanya terlihat oleh pemegang akun FMZ. Dan di FMZ Quant Trading Platform, Anda dapat mencapai lokalisasi kode strategi yang lengkap.Pythonpaket, yang dimuat dalam kode strategi, sehingga lokalisasi konten strategi dapat direalisasikan.
Keamanan kode Python:
Karena Python adalah bahasa open-source yang sangat mudah dikompilasi, jika strategi tidak untuk penggunaan pribadi tetapi untuk disewa, Anda dapat menjalankan strategi pada docker yang digunakan sendiri dan menyewanya dalam bentuk sub-akun atau manajemen docker penuh jika Anda khawatir tentang kebocoran strategi.
Enkripsi kode strategi Python:
Secara default, kode strategi Python tidak dienkripsi ketika digunakan oleh penulis dan dienkripsi ketika disewa kepada orang lain. Dengan mengedit kode berikut di awal strategi Python, Anda dapat menentukan apakah akan mengenkripsi kode strategi untuk penggunaan pribadi atau penyewaan. Versi Python yang mendukung enkripsi kode strategi adalah sebagai berikut: Python 2.7, Python 3.5 dan Python 3.6.
Ketika penulis strategi menjalankan sendiri atau menggunakannya untuk orang lain melalui kode pendaftaran, kode strategi dienkripsi:
Tentukan#!python
sebagai versi interpreter Python, dan kemudian menggunakan,
untuk menjaga terpisah; masukkan perintah enkripsiencrypt
Jika Anda tidak menentukan versi Python, Anda dapat menambahkan#!,encrypt
directly.
#!python,encrypt
Atau
#!encrypt
Ini tidak akan mengenkripsi kode strategi ketika penulis strategi berjalan untuk penggunaan mereka sendiri dan berbagi dengan orang lain melalui kode pendaftaran:
#!python,not encrypted
Atau
#!not encrypted
Gunakan kodeos.getenv('__FMZ_ENV__')
untuk menentukan apakah kode enkripsi adalah valid; kembalinya string"encrypt"
Ini hanya berlaku dalam perdagangan langsung, dan backtest tidak akan mengenkripsiPython
kode strategi.
#!encrypt
def main():
ret = os.getenv('__FMZ_ENV__')
# If the print variable ret is the string "encrypt" or ret == "encrypt" is true, that means the encryption is valid.
Log(ret, ret == "encrypt")
Platform kami mendukung bahasa pemrograman C ++ danC++ 11
Strategi dalam C++ sudah dikompilasi dan kemudian dieksekusi. Strategi dalam C++ dalam sistem backtesting dijalankan pada server backtesting C++ dari sistem backtesting; Strategi dalam C++ dalam lingkungan bot dijalankan berdasarkan docker setelah dikompilasi.
Menggunakan bahasa pemrograman C++ danC++ 11
Dengan menggunakan fitur modern dari C++, Anda dapat membangun algoritma perdagangan yang fleksibel dan dapat diskalakan untuk perdagangan otomatis.
Perpustakaan C++ berikut terintegrasi:
Platform ini mendukung strategi menulis dan desain dalam MyLanguage, yang kompatibel dengan sebagian besar tata bahasa, perintah, dan fungsi dari Wenhua MyLanguage. MyLanguage mendorong pemrograman blok bangunan, yang memecah algoritma kompleks menjadi fungsi.
Contoh strategi MyLanguage: Sistem berdasarkan saluran Bollinger translasi
M := 12; // Parameter range 1, 20
N := 3; // Parameter range 1, 10
SDEV := 2; // Parameter range 1, 10
P := 16; // Parameter range 1, 20
//The strategy is a trend-following trading strategy for larger periods, such as daily.
//This model is only used as a case study for model development, and entering the market accordingly will be at your own risk.
////////////////////////////////////////////////////////
//Panning BOLL Channel Calculation
MID:=MA(C,N);//Calculate the middle track
TMP:=STD(C,M)*SDEV;//Calculate the standard deviation
DISPTOP:=REF(MID,P)+TMP;//Translate BOLL channel upper track
DISPBOTTOM:=REF(MID,P)-TMP;//Translate BOLL channel down track
//System admission
H>=DISPTOP,BPK;
L<=DISPBOTTOM,SPK;
AUTOFILTER;
Platform ini mendukung, dan kompatibel dengan, skrip dalam bahasa PINE dariTrading View
. Bahasa PINE adalah bahasa pemrograman desain strategi yang ringan namun kuat untuk membuat indikator dan strategi perdagangan langsung yang telah diuji, dengan forum yang berkembang yang telah membuat lebih dari 100.000 skrip PINE.
Pengguna dapat dengan mudah mengakses dan menerapkan berbagai analisis teknis dan strategi perdagangan; pengguna dapat dengan cepat menerapkan ide perdagangan mereka dengan bantuan skrip komunitas, menghilangkan kebutuhan untuk menulis kode dari awal dan dengan demikian secara signifikan mengurangi waktu pengembangan; ini membantu pedagang pemula dan berpengalaman untuk belajar dan memahami indikator teknis yang berbeda, strategi dan konsep pemrograman.
Contoh strategi bahasa PINE: Strategi super tren
strategy("supertrend", overlay=true)
[supertrend, direction] = ta.supertrend(input(5, "factor"), input.int(10, "atrPeriod"))
plot(direction < 0 ? supertrend : na, "Up direction", color = color.green, style=plot.style_linebr)
plot(direction > 0 ? supertrend : na, "Down direction", color = color.red, style=plot.style_linebr)
if direction < 0
if supertrend > supertrend[2]
strategy.entry("entry long", strategy.long)
else if strategy.position_size < 0
strategy.close_all()
else if direction > 0
if supertrend < supertrend[3]
strategy.entry("entry short", strategy.short)
else if strategy.position_size > 0
strategy.close_all()
Platform kami mendukung pendekatan visual Blockly untuk pemrograman. Dengan editor Blockly, pengguna dapat mengekspresikan konsep kode dengan menggabungkan blok grafis (mirip dengan blok bangunan), seperti variabel, ekspresi logis, loop, dll. Dengan cara ini, proses pemrograman tidak lagi perlu terlalu memperhatikan detail tata bahasa yang membosankan, dan dapat langsung mengikuti prinsip pemrograman. Dengan mengatur dan menggabungkan blok grafis, pengguna dapat dengan mudah memahami logika pemrograman dan mewujudkan ide-ide kreatif. Ideal untuk mengembangkan minat dalam desain strategi untuk dengan cepat memulai dengan pemrograman, perdagangan kuantitatif.