Strategi 30 baris yang sangat sederhana untuk membangun sistem keuntungan yang positif
Ya, Anda benar, itu adalah 30 baris kode. Saya biasanya membaca kode ini untuk mendapatkan gambaran yang lebih luas.
Parameter kebijakan adalah sebagai berikut:
| parameter | menggambarkan | jenis | Nilai Default |
|---|---|---|---|
| FastPeriod | Siklus masuk ke pasar | Tipe angka | 3 |
| SlowPeriod | Siklus masuk ke pasar | Tipe angka | 7 |
| EnterPeriod | Periode pengamatan | Tipe angka | 3 |
| ExitFastPeriod | Siklus garis cepat | Tipe angka | 3 |
| ExitSlowPeriod | Siklus garis lambat | Tipe angka | 7 |
| ExitPeriod | Periode observasi | Tipe angka | 1 |
| PositionRatio | Rasio posisi | Tipe angka | 0.8 |
| Interval | Periode survei (dalam detik) | Tipe angka | 10 |
- Diimpor.
交易类库Strategi yang mudah untuk ditulis, tanpa perlu menunggu untuk membeli atau menjual. - Jika Anda merasa bingung saat membaca kode dan menemukan variabel yang tidak diumumkan, Anda bisa membalasnya di grup.
function main() {
var STATE_IDLE = -1;
var state = STATE_IDLE;
var opAmount = 0;
var initAccount = $.GetAccount();
Log(initAccount);
while (true) {
if (state === STATE_IDLE) {
var n = $.Cross(FastPeriod, SlowPeriod);
if (Math.abs(n) >= EnterPeriod) {
opAmount = parseFloat((initAccount.Stocks * PositionRatio).toFixed(3));
var obj = n > 0 ? $.Buy(opAmount) : $.Sell(opAmount);
if (obj) {
opAmount = obj.amount;
state = n > 0 ? PD_LONG : PD_SHORT;
Log("开仓详情", obj, "交叉周期", n);
}
}
} else {
var n = $.Cross(ExitFastPeriod, ExitSlowPeriod);
if (Math.abs(n) >= ExitPeriod && ((state === PD_LONG && n < 0) || (state === PD_SHORT && n > 0))) {
var obj = state === PD_LONG ? $.Sell(opAmount) : $.Buy(opAmount);
state = STATE_IDLE;
var nowAccount = $.GetAccount();
LogProfit(nowAccount.Balance - initAccount.Balance, '钱:', nowAccount.Balance, '币:', nowAccount.Stocks, '平仓详情:', obj, "交叉周期", n);
}
}
Sleep(Interval*1000);
}
}
- Strategi ini hanya memiliki satu fungsi utama (main) dan tidak ada modul fungsi lainnya. Hanya ada satu loop dalam fungsi utama.
- Saya telah mengunggah versi komentar kode dari strategi ini ke grup QQ, dan teman-teman yang baru belajar dapat melihat komentarnya untuk memudahkan pembelajaran.
- Tidak ada anggota QQ resmi yang bergabung dengan grup QQ: 309368835 Penemu mengkuantifikasi EA Exchange (Original BotVS). Strategi ini hanya beberapa puluh baris kode, sangat sederhana!
- Untuk anak-anak yang tidak memiliki dasar bahasa Javascript, kami akan menjelaskan tata bahasa yang sederhana di sini, agar anak-anak tidak melihat dan tidak memahami kode tersebut.
Deklarasi Variabel
Dengan kata kuncivar+ nama variabel, misalnyavar name = “小明”
Siklus
while(循环条件){
// 将会重复执行的代码
}
Kode di dalam {} akan dieksekusi berulang kali jika kondisi loop adalah benar. Kode di dalam {} akan dieksekusi berulang kali jika kondisi loop adalah salah. Kode di dalam {} akan keluar dari loop jika kondisi loop adalah salah.
Pembagian bersyarat
if (判断条件){
// 执行代码
} else {
// 执行代码
}
Ini sangat sederhana, terjemahannya adalah jika {true} {executing this code} maka keadaan {executing this code}
Penentuan nilai
Satu.=N adalah nilai, misalnya
name = “张三”;
Jika Anda memberi nama yang sama dengan nama yang sama, Anda bisa mengacaukan nilai dengan persamaan.
Sebagai perbandingan==Dua angka yang sama.
Contoh“张三”==“李四”Jadi, jelas Zhang Xiao bukan Li Chi.“张三”==“李四”Mengapa tidak?
API terkait
Sebelum kami menulis demo, kami mengulas API dan fungsi ekspor template yang digunakan dalam kebijakan ini. Dokumen API dan kode sumber template yang terperinci tersedia di Inventor Quantification.
- Fungsi $.GetAccount: Fungsi ekspor template yang digunakan untuk mendapatkan informasi akun bursa
- Fungsi Log: API, digunakan untuk mengekspor informasi ke log, menampilkan nilai, dll.
- $.Cross Fungsi: Fungsi ekspor template yang digunakan untuk mendeteksi penyeberangan indikator rata-rata
- Fungsi $.Buy: fungsi ekspor template untuk operasi pembelian
- Fungsi $.Sell: fungsi ekspor template untuk operasi jual
- Fungsi LogProfit: API, digunakan untuk output keuntungan, fungsi dari parameter kedua dapat menambahkan informasi lain
- Fungsi Sleep: API, untuk membuat program berhenti sejenak, dengan parameter satuan millisecond.
Kode kebijakan juga menggunakan fungsi-fungsi perpustakaan JavaScript, metode objek.
- Math.abs() fungsi: mengembalikan nilai mutlak dari argumen
- Fungsi toFixed () untuk objek Number: menyimpan angka kecil dalam lingkaran kelima berdasarkan parameter. Perhatikan bahwa fungsi ini dikembalikan sebagai string
- Fungsi global parseFloat: Mengembalikan string parameter dengan float.
Javascript dapat dipelajari di sini: JavaScript Number Object http://www.w3school.com.cn/jsref/jsref_obj_number.asp
Diagram proses dari sebuah program yang dibuat dengan tangan tanpa alat.
Langkah demi langkah membangun strategi kami
Semua program strategi memiliki pintu masuk.main()Fungsi, yaitu bahwa strategi dimulai dari fungsi main.
Penawaran Tegas
Setelah itu, Anda bisa mengunduh dan mengunduh aplikasi dari situs web Anda sendiri, dan Anda dapat mengunduh dan mengunduh aplikasi dari situs web Anda sendiri.
Strategi Running! sudah mulai berjalan, belilah untuk mengoperasikannya.
Terima kasih InventorQuantum, yang menyediakan kode yang sangat sederhana, ada banyak strategi open source untuk InventorQuantum yang dapat dipelajari dan dikembangkan bersama dengan banyak ahli kuantum.
官方QQ群定期更新学习资源,为量化学习者铺平道路,登堂入室。
Pelajaran video
http://v.youku.com/v_show/id_XMTUyNDY1NjQ2NA==.html
Referensi
$.GetAccount 是FMZ 模板的导出函数(模板就是可复用的代码,参看API 文档上模板的描述)。 $.GetAccount是这个模板:https://www.fmz.com/strategy/10989 的导出函数。
上面的策略只是代码部分,没有策略参数设置,完整的策略可以在策略广场搜索30行均线策略。
就是2条均线,快线上穿慢线 一般是买入信号,上涨概率较大(程序自动买入操作)。 快线下穿慢线一般是卖出信号,下跌概率较大(程序自动卖出)。通过这样反复操作 在行情上升趋势中可以攫取利润。
- 1








