Belajar membangun strategi transaksi dengan modul visualisasi adalah hal yang sangat mudah, dan memiliki pemahaman konseptual tentang membangun, menyusun, dan mengintegrasikan modul visualisasi. Setelah itu, mudah untuk belajar menggunakan modul lain. Fungsi yang lebih kompleks dapat dikombinasikan.
Dalam pembelajaran dan pengujian sebelumnya, kami telah membahas beberapa modul "kategori transaksi". Misalnya: Modul "Bursa Dapatkan Pasar" Modul "Bursa Dapatkan K-Line" "Saya tidak tahu.
Di sini, saya akan membahas beberapa hal yang telah saya lakukan.
Ketika menulis strategi menggunakan perdagangan robot, lebih dari satu objek pertukaran dapat ditambahkan, seperti strategi untuk hedging. Jika Anda ingin melihat pasar, Anda mungkin perlu melihat objek yang ada di bursa, atau ketika Anda mengunjungi pasar. Pada saat ini, Anda perlu menggunakan modul untuk mendapatkan jumlah bursa.
Pada awalnya, kita dapat mencetak jumlah bursa yang sedang dikonfigurasi dengan struktur sederhana:
Pada dasarnya, ini seperti memanggil kode kebijakan JavaScript seperti ini:
function main () {
Log(exchanges.length)
}
Kita lihat hasil dari menjalankan modul gabungan ini:
Anda dapat melihat bahwa kita menambahkan 3 objek bursa yang mewakili tiga akun bursa yang berbeda, dan hasil ulangan log output adalah 3.
Saat menambahkan tiga objek pertukaran, drop-down box akan menampilkan tiga opsi. Mempelajari modul loop sebelumnya, dalam tipe loop.
Di sini Anda akan belajar modul penilaian kondisional:Kondisi penilaian dapat ditulis sebagai berikut:
Kami menggunakan modul berputar untuk menelusuri nama bursa yang ditambahkan. Menggunakan modul penilaian kondisional untuk menentukan apakah hitungan siklus saat ini sesuai dengan nama bursa yang akan dicetak.
Hasil uji coba:
Seperti kode kebijakan 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())
}
}
}
Contoh sederhana adalah mengambil pasangan transaksi dari objek bursa pertama yang saat ini ditetapkan, dan memberikan nilai pada variabel text (dibuat sebelumnya dalam kategori variabel).
Hasil tes ulang:
Jika Anda memanggil kode kebijakan JavaScript:
function main () {
var text = exchange.GetCurrency()
Log(text)
}
Modul ini sangat penting, digunakan untuk operasi ordering, posisi pertama
Sebagai contoh, kita menyusun contoh pembayaran dengan harga terbaru berdasarkan data transaksi tik saat ini, ditambah dengan harga 10 dolar AS, jumlah pesanan terakhir ditetapkan menjadi 0,1 koin, dan ID pesanan dicetak.
Hasil uji coba:
Seperti kode kebijakan 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 pada pasangan transaksi saat ini yang berada dalam keadaan belum selesai, dan kembali dengan struktur daftar (Array) yang dapat ditangani dengan modul jenis daftar (Perjalanan operasi, dll.). Misalnya: kita sedikit mengubah contoh modul order di atas, mengubah harga 10 yuan yang ditambahkan pada saat pesanan menjadi 10 yuan yang dikurangi. Pesanan tidak akan segera selesai, akan tergantung di kedalaman jual beli (yaitu, membeli satu, membeli dua, membeli N pada suatu peringkat), sehingga pesanan berada di daftar tanggungan menunggu penyelesaian. Kami kemudian menggunakan modul "Mendapatkan transaksi saat ini untuk pesanan pesanan" untuk mendapatkan daftar pesanan yang berada di status PENDING. Untuk menghindari transaksi pesanan di pasar berikutnya yang mempengaruhi pengamatan terakhir, setelah modul "Mendapatkan transaksi saat ini untuk pesanan yang ditugaskan" dijalankan, kami mencetak daftar pesanan dan segera menggunakan modul "Melepaskan Keanehan" untuk menghentikan proses.
Periksa kembali dan lihat:
Harga pembelian berikutnya adalah lebih rendah dari harga terbaru 10 yuan pada saat itu, jadi tidak akan segera ditransfer. Setelah itu, Anda dapat mengambil pesanan yang sedang menunggu dan mencetaknya. Pada akhirnya, buanglah kesalahan dan hentikan program tersebut.
Pada dasarnya, semua modul yang disatukan menyeru kebijakan 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 situasi, strategi harus dilakukan dengan cara ini:
Untuk itu, kami akan merekomendasikan kepada Anda untuk menghapus semua pesanan yang ada saat ini.
Tidak diragukan lagi, ini pasti menggunakan "modul penarikan", dan saat mempelajari modul penarikan, kita dapat menggunakan plugin 5 untuk mendapatkan modul transaksi saat ini terhadap pesanan yang diserahkan, kombinasi yang memungkinkan fungsi ini.
Pertama, untuk menguji untuk membatalkan semua pesanan, tidak jelas untuk menggantung satu pesanan, kita mulai memesan dua kali, dan jumlah harga yang berbeda digunakan untuk membedakan dua pesanan.
Menggunakan modul "Menggali setiap elemen dalam daftar" di tipe loop, untuk menjelajahi pesanan dalam daftar yang sedang diunggah.Saat dijelajahi, setiap order yang diambil diberi nilai untuk variabel modul order ((dibuat dalam tipe modul variabel, seperti gambar di bawah ini:)Menggunakan modul jenis alat:Mengambil ID pesanan, mengirim ke lokasi yang ditandai pada modul pembatalan pesanan, dan membatalkan modul pemesanan untuk melakukan perintah pembatalan.
Periksa ulang:
Menggunakan kebijakan JavaScript untuk menjelaskan:
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 memiliki akses ke modul variabel Order ID yang dapat mengembalikan detail pesanan.
Perhatikan pesanan yang dikembalikan setelah operasi:
Perbandingan dari hasil yang dijalankan dalam contoh 5 ton dan 5 ton dapat ditemukan bahwa pesanan yang dicetak adalah informasi pesanan yang terpisah, tidak ada[]
Paket dengan tanda kurung di tengah.
Karena contoh yang dikembalikan adalah daftar di kerucut 5, contoh ini mengembalikan informasi pesanan yang terpisah (berdasarkan pengambilan variabel ID dari modul pada posisi kerucut yang ditransfer ke modul).
Contoh di atas adalah implementasi kebijakan JavaScript:
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
Log(exchange.GetOrder(id))
}
Modul di atas kita pelajari satu per satu, menguji bursa yang kita atur sebagai komoditas berjangka.
Setel ulang:Contoh berikut adalah contoh pengujian retest berdasarkan pengaturan tersebut.
Mengetahui modul status koneksi server CTP untuk komoditas berjangka
Komoditas berjangka memiliki waktu buka dan waktu istirahat, dan saat libur, tidak dapat dihubungkan.
Mengatur modul kontrak
Ketika objek pertukaran dikonfigurasi sebagai bursa berjangka, tidak mengatur kontrak, langsung mengakses pasar, akan memberikan kesalahan:
Kami menetapkan kontrak untuk MA909, methanol adalah kontrak utama saat ini.Dengan cara ini, Anda mendapatkan nilai harga terbarunya di akun untuk kontrak MA909 saat ini.
Mengatur modul satu arah di bawah perdagangan futures
Melakukan Sub-Module
Jika Anda ingin membeli saham, Anda harus menentukan arahnya, karena opsi tersebut memiliki:
buy: banyak saham
sell: gudang kosong
closebuy: banyak saham
closesell: gudang kosong
Empat arah (komoditas berjangka ditambah dua arah: closebuy_today, closeesell_today, dan close-buy_today).
Misalnya, jika Anda mengatur modul untuk membeli, maka Anda akan memiliki dua arti, yang menghasilkan dua makna. Oleh karena itu dibutuhkan modul "Setel arah perdagangan berjangka" untuk mengatur arah perdagangan yang jelas.
Hasil tes menunjukkan:
Seperti kode kebijakan 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 uang digital untuk futures sama dengan penggunaan mata uang komoditas untuk futures di 8 tabel di atas
Kode kontrak dalam bentuk OKEX dapat:
BitMEX:
Mengatur modul tuas
Untuk mengatur leverage mata uang digital berjangka.
# 注意 : 回测不支持。
Seperti kebijakan JavaScript:
function main () {
exchange.SetMarginLevel(10)
}
Strategi untuk memvisualisasikan contoh:
Lebih banyak strategi dapat ditemukan di:https://www.fmz.com/square
Artikel lain dalam seri ini
AllinSetelah belajar lebih dari sebulan, saya masih belum bisa menulis strategi, dan sekarang saya hanya mengandalkan batu bata!
Penemu Kuantitas - Mimpi KecilTerima kasih atas dukungannya, artikel ini akan terus dilakukan. Pada kenyataannya, berdasarkan kode kebijakan JavaScript yang sesuai di belakang setiap paradigma, Anda dapat dengan mudah menguasai strategi yang ditulis dengan JS.