Strategi 30 baris untuk membina sistem keuntungan positif
Ya! anda mendengar betul, ia adalah 30 baris kod! hanya 30 baris kod, saya biasa melihat keseluruhan kod, jadi saya mempunyai pemahaman yang lebih besar!
Parameter dasar adalah seperti berikut:
| parameter | huraikan | taip | Nilai lalai |
|---|---|---|---|
| FastPeriod | Siklus talian pantas masuk ke pasaran | Jenis nombor | 3 |
| SlowPeriod | Siklus talian lambat masuk ke pasaran | Jenis nombor | 7 |
| EnterPeriod | Tempoh pemerhatian | Jenis nombor | 3 |
| ExitFastPeriod | Siklus talian pantas | Jenis nombor | 3 |
| ExitSlowPeriod | Kitaran garis perlahan | Jenis nombor | 7 |
| ExitPeriod | Tempoh pemerhatian luar bandar | Jenis nombor | 1 |
| PositionRatio | Peratusan kedudukan | Jenis nombor | 0.8 |
| Interval | Tempoh kaji selidik (dalam detik) | Jenis nombor | 10 |
- Diimport.
交易类库Strategi yang mudah untuk ditulis, tanpa perlu memikirkan apakah anda akan membeli atau menjual, dan sebagainya. - Apabila anda terganggu dengan pembolehubah yang tidak diisytiharkan semasa membaca kod anda, anda boleh menghantarnya kepada kumpulan.
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 mempunyai satu fungsi utama (main) dan tidak ada modul fungsi lain. Hanya ada satu kitaran dalam fungsi utama.
- Saya telah memuat naik versi kod yang dikomentari strategi ini ke dalam kumpulan QQ, dan rakan-rakan yang baru belajar boleh melihat ulasan untuk memudahkan pembelajaran.
- Jika anda tidak menyertai kumpulan QQ rasmi, sila sertai: 309368835 Pencipta Kuantiti EA Komunikasi (aslinya BotVS). Strategi hanya berpuluh-puluh baris kod, sangat ringkas!
- Untuk menjaga pelajar-pelajar yang tidak mempunyai asas bahasa Javascript, kami akan menjelaskan tatabahasa ringkas di sini, supaya pelajar-pelajar lain tidak melihat kod yang tidak difahami.
Pengisytiharan pemboleh ubah
Gunakan kata kuncivar+ nama pemboleh ubah, contohnyavar name = “小明”
Pusing
while(循环条件){
// 将会重复执行的代码
}
Kod dalam {} dilaksanakan berulang kali jika keadaan kitaran adalah benar. Jika keadaan kitaran adalah palsu, keluar dari kitaran.
Pembahagian bersyarat
if (判断条件){
// 执行代码
} else {
// 执行代码
}
Mudahnya, terjemahan adalah jika (true) (perform this code) keadaan (perform this code)
Pengekalan
Satu.=Nombor adalah nilai, contohnya
name = “张三”;
Nama yang diberikan kepada orang yang mempunyai nilai adalah sama dengan perbandingan.
Sebagai perbandingan==Dua nombor yang sama.
Contoh“张三”==“李四”Jadi, jelas bahawa Zhang Xiao bukan Lee Chi.“张三”==“李四”Kerana palsu.
API yang berkaitan
Kami mengkaji API dan fungsi eksport templat yang digunakan dalam strategi sebelum membuat demonstrasi. Dokumen API dan kod sumber templat terperinci terdapat di Inventor Quantification.
- Fungsi $.GetAccount: fungsi eksport templat untuk mendapatkan maklumat akaun bursa
- Fungsi Log: API, digunakan untuk mengeluarkan maklumat ke log, memaparkan nilai dan sebagainya
- Fungsi $.Cross: fungsi eksport templat untuk mengesan persilangan penunjuk garis rata
- Fungsi $.Buy: fungsi eksport templat untuk operasi pembelian
- Fungsi $.Sell: fungsi eksport templat untuk operasi jual
- Fungsi LogProfit: API, digunakan untuk output keuntungan, fungsi boleh menambah maklumat lain dari parameter kedua
- Fungsi tidur: API, untuk menghentikan program untuk seketika, dengan parameter dalam satuan milidetik.
Kod strategi juga menggunakan fungsi perpustakaan Javascript, kaedah objek.
- Math.abs() fungsi: mengembalikan nilai mutlak bagi argumen
- Fungsi toFixed ((() untuk objek Number: simpan nombor kecil dalam lingkaran kelima mengikut parameter. Perhatikan bahawa fungsi ini dikembalikan sebagai rentetan
- Fungsi global parseFloat: mengembalikan parameter string ke nombor titik terapung.
Maklumat mengenai JavaScript di atas boleh dipelajari di: JavaScript Number Object http://www.w3school.com.cn/jsref/jsref_obj_number.asp
Gambar proses program, gambar tangan, tidak menggunakan alat, amatir, selamat tinggal!
Langkah demi langkah membina strategi kami
Semua pintu masuk ke program strategi adalahmain()Fungsi, iaitu strategi bermula dari fungsi utama.
Tawaran Firma
Ini adalah strategi 30 baris yang mudah dan anda sudah selesai!
Strategi Running! telah bermula, beli untuk beroperasi ☺☺☺
Terima kasih kepada InventorQuantum kerana menyediakan kod yang ringkas ini, terdapat banyak strategi sumber terbuka untuk InventorQuantum yang boleh dipelajari dan dipelajari, dan banyak lagi yang boleh dipelajari.
官方QQ群定期更新学习资源,为量化学习者铺平道路,登堂入室。
Pembelajaran video
http://v.youku.com/v_show/id_XMTUyNDY1NjQ2NA==.html
Rujukan
$.GetAccount 是FMZ 模板的导出函数(模板就是可复用的代码,参看API 文档上模板的描述)。 $.GetAccount是这个模板:https://www.fmz.com/strategy/10989 的导出函数。
上面的策略只是代码部分,没有策略参数设置,完整的策略可以在策略广场搜索30行均线策略。
就是2条均线,快线上穿慢线 一般是买入信号,上涨概率较大(程序自动买入操作)。 快线下穿慢线一般是卖出信号,下跌概率较大(程序自动卖出)。通过这样反复操作 在行情上升趋势中可以攫取利润。
- 1








