Belajar membina strategi dagangan dengan modul imej adalah satu permulaan yang baik, dengan pemahaman konseptual tentang membina dan menyusun modul imej. Kemudian, mudah untuk belajar menggunakan modul lain. Fungsi yang lebih kompleks boleh digabungkan.
Dalam pembelajaran dan ujian sebelum ini, kami telah menyentuh beberapa modul "kategori urus niaga". Contohnya: Modul "Bursa Dapatkan Perdagangan" Modul "Bursa Dapatkan K-Line" ...
Mereka yang telah digunakan tidak boleh digambarkan.
Apabila menulis strategi menggunakan perdagangan bot, lebih daripada satu objek pertukaran boleh ditambah, seperti strategi untuk lindung nilai. Mungkin anda perlu melawat objek bursa (yang bermaksud melawat secara individu) ketika anda melawat pasaran. Pada masa ini, anda perlu menggunakan modul untuk mendapatkan nombor bursa.
Kita boleh mulakan dengan mencetak jumlah bursa yang sedang dikonfigurasikan dengan struktur yang mudah:
Pada dasarnya, ia adalah seperti memanggil kod dasar JavaScript seperti ini:
function main () {
Log(exchanges.length)
}
Mari kita lihat hasil daripada menjalankan modul gabungan ini:
Anda boleh lihat bahawa kita telah menambah 3 objek pertukaran yang mewakili tiga akaun pertukaran yang berbeza, dan hasil log retest adalah 3.
Apabila anda menambah tiga objek pertukaran, kotak turun menunjukkan tiga pilihan. Mempelajari modul gelung terlebih dahulu, dalam jenis gelung.
Di samping itu, anda juga boleh belajar satu modul penghakiman syarat terlebih dahulu:Syarat pertimbangan boleh ditulis:
Kami menggunakan modul berputar untuk menyambung nama bursa yang ditambahkan Menggunakan modul penghakiman syarat untuk menentukan kiraan kitaran semasa, sama ada ia sepadan dengan nama bursa yang akan dicetak.
Uji semula hasil:
Sebagai contoh, kod dasar JavaScript:
function main () {
for (var i = 1 ; i <= exchanges.length ; i++) {
if (i == 1) {
Log(exchanges[0].GetName())
} else if (i == 2) {
Log(exchanges[1].GetName())
} else {
Log(exchanges[2].GetName())
}
}
}
Satu contoh mudah adalah mengambil pasangan transaksi objek bursa pertama yang ditetapkan pada masa ini dan memberi nilai kepada pembolehubah teks (dicipta terlebih dahulu dalam kategori pembolehubah).
Hasil ujian semula:
Jika anda memanggil kod dasar JavaScript:
function main () {
var text = exchange.GetCurrency()
Log(text)
}
Modul ini sangat penting untuk operasi pesanan, di mana kedudukan pertama embedded variable harga, untuk menentukan harga pesanan, atau juga boleh masukkan nombor tetap secara langsung.
Kedudukan kedua
Sebagai contoh, kita menyusun contoh pembayaran berdasarkan harga terkini berdasarkan data transaksi tik semasa, ditambah dengan harga 10 yuan, jumlah pesanan ditetapkan kepada 0.1 sen, dan cetak ID pesanan.
Uji semula hasil:
Sebagai contoh, kod dasar JavaScript berikut:
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last + 10, 0.1)
Log(id)
}
Modul ini akan mengembalikan semua pesanan yang diserahkan kepada pasangan urus niaga semasa yang berada dalam keadaan tidak selesai, yang dikembalikan adalah struktur senarai (arry) yang boleh diuruskan dengan modul jenis senarai (menjelajah operasi dan lain-lain). Sebagai contoh: kita sedikit mengubah contoh modul pesanan yang di atas, mengubah harga 10 yuan ditambah pada masa pesanan menjadi 10 yuan dikurangkan. Pesanan tidak akan segera ditangani, tetapi akan berada di dalam kedalaman jual beli (iaitu membeli satu, membeli dua, membeli N pada peringkat tertentu), sehingga pesanan berada dalam keadaan menunggu pesanan. Kami kemudian menggunakan modul "Mendapatkan urus niaga semasa untuk pesanan tempahan" untuk mendapatkan senarai pesanan yang berada dalam status PENDING. Untuk mengelakkan pemesanan pesanan dalam pasaran berikutnya yang mempengaruhi pengamatan terakhir, kami menggunakan modul "Mengambil urus niaga semasa untuk pesanan yang diamanahkan" untuk menghentikan proses dengan segera menggunakan modul "Mengeluarkan Kecualian" selepas modul ini dijalankan.
Periksa semula dan lihat:
Harga pembelian seterusnya adalah lebih rendah daripada harga terkini 10 yuan pada masa itu, jadi tidak akan dilakukan dengan segera. Kemudian, order yang sedang menunggu untuk diproses akan diambil dan dicetak. Akhirnya, buang keanehan dan hentikan program.
Modul yang disatukan itu menyeru strategi JavaScript:
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
Log(id)
Log(exchange.GetOrders())
throw "stop"
}
Modul ini digunakan untuk membatalkan pesanan.
Dalam banyak kes, anda perlu melakukan ini semasa menyusun strategi:
Mengeluarkan semua pesanan yang sedang ditayangkan.
Tidak syak lagi, ini pasti menggunakan "modul penarikan", dan semasa mempelajari modul penarikan, kita boleh menggunakan modul penarikan 5 untuk mendapatkan perdagangan semasa terhadap pesanan yang diamanahkan, kombinasi untuk mencapai fungsi ini.
Pertama, untuk menguji untuk membatalkan semua pesanan, tidak jelas untuk menggantung satu pesanan, kita mula membuat pesanan dua kali, dan jumlah harga yang berbeza digunakan untuk membezakan kedua-dua pesanan.
Menggunakan modul "Mengembara setiap elemen dalam senarai" dalam modul Jenis Loop untuk mengembara pada pesanan dalam senarai yang sedang diunggah.Apabila ditelusuri, setiap pesanan yang diambil diberikan kepada modul pemboleh ubah order ((dicipta dalam jenis modul pemboleh ubah, seperti gambar di bawah:)Menggunakan modul jenis alat:Mengambil ID pesanan, dihantar ke modul pembatalan pesanan di lokasi yang tidak diingini, membatalkan modul pesanan untuk melaksanakan pesanan pembatalan.
Percubaan semula dijalankan:
Menggunakan dasar JavaScript untuk menerangkan:
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
Log(id)
var id2 = exchange.Buy(_C(exchange.GetTicker).Last - 12, 0.2)
Log(id2)
var orders = exchange.GetOrders()
Log(orders)
for (var i in orders) {
var order = orders[i]
Log(exchange.CancelOrder(order.Id))
}
}
Modul ini mempunyai akses ke modul pembolehubah ID pesanan untuk mendapatkan maklumat butiran pesanan.
Perhatikan pesanan yang dikembalikan selepas menjalankan:
Perbandingan antara hasil operasi dalam contoh 5 tan dan 5 tan dapat dilihat bahawa pesanan yang dicetak adalah satu maklumat pesanan yang berasingan, tidak ada[]
Paket di dalam kurung.
Oleh kerana contoh kerucut 5 adalah senarai yang dikembalikan, contoh ini akan mengembalikan maklumat pesanan yang berasingan (mengambil modul ID pembolehubah berdasarkan lokasi kerucut yang dihantar oleh modul ini).
Contoh di atas adalah sama dengan menjalankan dasar JavaScript:
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
Log(exchange.GetOrder(id))
}
Modul di atas kita belajar satu persatu, menguji bursa yang kita atur sebagai niaga hadapan komoditi.
Tetapan semula:Contoh berikut adalah ujian retest berdasarkan tetapan ini.
Mengesan modul status sambungan pelayan CTP untuk niaga hadapan dan syarikat niaga hadapan
Harta hadapan komoditi mempunyai waktu buka dan waktu cuti, ketika cuti, tidak boleh disambungkan.
Tetapkan modul kontrak
Apabila objek bursa dikonfigurasikan sebagai bursa niaga hadapan, tanpa menetapkan kontrak, mendapatkan pasaran secara langsung, akan memberikan kesalahan:
Kami menetapkan kontrak sebagai MA909, methanol adalah kontrak utama kami sekarang.Dengan cara ini, anda mendapat nilai harga terkini dalam akaun untuk kontrak MA909 pada saat ini.
Tetapkan modul satu arah di bawah dagangan niaga hadapan
Melakukan Sub-modul
Peruntukan ini perlu ditentukan kerana masa hadapan mempunyai:
beli: banyak saham
sell: Peranti kosong
closebuy: banyak saham
closesell: gudang kosong
Empat arah (komoditi niaga hadapan ditambah dua arah: closebuy_today kedudukan kosong, closesell_today kedudukan kosong)
Sebagai contoh, jika anda menetapkan modul pesanan bawah untuk membeli, maka anda mempunyai dua makna, yang menghasilkan dua makna. Oleh itu, anda memerlukan modul "Setting a single direction under futures trading" untuk menetapkan arah bawah yang jelas.
Ujian semula menunjukkan:
Sebagai contoh, kod dasar JavaScript:
function main () {
while (true) {
if (exchange.IO("status")) {
exchange.SetContractType("MA909")
Log(exchange.GetTicker().Last)
exchange.SetDirection("buy")
Log(exchange.Buy(1000, 1))
throw "stop"
} else {
Log("未连接商品期货前置机")
}
Sleep(1000)
}
}
Penggunaan mata wang digital pada masa hadapan adalah sama dengan penggunaan mata wang hadapan komoditi dalam 8 jenama di atas
Kod kontrak dalam contoh OKEX boleh menjadi:
BitMEX:
Tetapkan modul tuas
Ia digunakan untuk menetapkan tumpuan mata wang digital.
# 注意 : 回测不支持。
Sebagai contoh, strategi JavaScript:
function main () {
exchange.SetMarginLevel(10)
}
Strategi untuk memvisualisasikan paradigma:
Lebih banyak strategi boleh didapati di:https://www.fmz.com/square
Artikel lain dalam siri ini
AllinSelepas belajar programming lebih sebulan, saya masih belum dapat menulis strategi, dan sekarang saya hanya bergantung kepada batu bata!
Pencipta Kuantiti - Impian KecilTerima kasih atas sokongan anda, siri ini akan diteruskan. Sebenarnya, berdasarkan kod dasar JavaScript yang sesuai di belakang setiap paradigma, mudah untuk menguasai strategi yang ditulis dengan JS.