Dengan peningkatan terus-menerus dari strategi perdagangan kuantitatif, pengguna memiliki persyaratan yang semakin tinggi untuk push real-time dari perubahan posisi. Misalnya: Web online log, aplikasi seluler dan WeChat, dll semua membutuhkan perubahan posisi akun secara real-time, yang membutuhkan push otomatis dari perubahan yang dikirim ke browser dan ponsel, dll. Untuk alasan ini, artikel ini bertujuan untuk FMZ Quant (FMZ.COM) Mylanguage strategi untuk mencapai real-time push posisi ke aplikasi mobile dan WeChat.
Untuk melihat kode sumber lengkap dalam artikel, silakan klik link:https://www.fmz.com/strategy/305785, dan saya sarankan Anda menulis kode untuk berlatih, untuk hanya belajar dari membaca kode tidak cukup.
Untuk mempermudah demonstrasi, artikel ini akan merujuk pada strategi perdagangan Williams %R sebelumnya.https://www.fmz.com/strategy/283024. Logika strategi terdiri dari nilai Williams dan moving average. Untuk strategi lengkap dan konfigurasi backtest, Anda dapat mengklik tautan ini untuk mendapatkannya. Kode strategi ini ditunjukkan sebagai berikut:
HC := HHV(HIGH, 14) - CLOSE;
HL := HHV(HIGH, 14) - LLV(LOW, 14);
WR := -100 * HC / HL;
MA20 : EMA2(C, 14);
C1 := WR < -60 && C > MA20;
C2 := WR > -15 && C < MA20;
C1, BPK;
C2, SPK;
The Mylanguage di FMZ Quant (FMZ.COMMylanguage memiliki sintaksis sederhana, yang dapat menangani logika beberapa strategi sederhana; ketika berurusan dengan beberapa strategi yang rumit, bahasa akan menunjukkan beberapa masalah. Oleh karena itu, FMZ Quant telah mempromosikan fungsi peningkatan bahasa berdasarkan Mylanguage. Seperti contoh kode berikut:
%%
// here we can call any API of FMZ Quant
scope.TEST = function(obj) {
return obj.val * 100;
}
%%
close price:C;
Zoom 100 times of close price:TEST(C);
Zoom 100 times of last close price:TEST(REF(C, 1)); // move the mouse to the backtested K-line, and the variable value will prompt
Seperti yang ditunjukkan dalam kode di atas, fungsi peningkatan bahasa memungkinkan pemrograman Mylanguage dan JavaScript dicampur.https://www.fmz.com/doc/2569#语�%A8%80%E5%A2%9E%E5%BC%BA
Termasuk:
1. objek lingkupfungsi anonim yang dirujuk oleh properti ini dapat dipanggil dalam bagian kode Mylanguage.
2.scope.get_locals (nama)Fungsi ini dapat memperoleh variabel Mylanguage, sehingga mewujudkan interaksi antara Mylanguage dan JavaScript.
Dalam strategi Mylanguage, fungsi BKVOL dapat memperoleh buy signal Lot, yaitu posisi long saat ini. Fungsi SKVOL dapat memperoleh sell signal Lot, yaitu posisi short saat ini. Kemudian, kita dapat menghitung status perubahan posisi saat ini dengan mengurangi SKVOL dari BKVOL. Seperti yang ditunjukkan dalam kode di bawah ini:
HC := HHV(HIGH, 14) - CLOSE;
HL := HHV(HIGH, 14) - LLV(LOW, 14);
WR := -100 * HC / HL;
MA20 : EMA2(C, 14);
C1 := WR < -60 && C > MA20;
C2 := WR > -15 && C < MA20;
C1, BPK;
C2, SPK;
%%
// adding the following code in any Mylanguage strategy can realize the push of position changes to mobile phone App and WeChat
if (typeof(scope._tmp) !== 'number') {
scope._tmp = 0;
}
var pos = scope.get_locals('BKVOL') - scope.get_locals('SKVOL');
if (pos != scope._tmp) {
scope._tmp = pos;
Log('Push position changes:', scope.symbol, pos, '@');
}
%%
Dalam kode di atas, kami menempatkan strategi perdagangan William W%R
Selanjutnya, kita menjalankan bot untuk memverifikasi fungsi ini; buat bot, pilih spot OKEX, dan atur pasangan mata uang menjadi LTC_USDT (komoditas berjangka dan cryptocurrency berjangka juga dapat menggunakan fungsi ini, dan operasinya sama).
1. sinyal dipicu, mendorong ke log web 2. sinyal dipicu, tekan ke aplikasi ponsel 3. sinyal dipicu, tekan ke pesan WeChat tekan
Di atas, kami menggunakan strategi perdagangan Mylanguage William W%R yang sederhana dan modul push pesan yang dikembangkan oleh modul peningkatan bahasa di Mylanguage, sehingga dapat mewujudkan strategi untuk mendorong perubahan posisi ke aplikasi seluler dan WeChat secara real time.