Baru-baru ini, terdapat banyak berita mengenai pasaran mata wang digital dan pertukaran. Untuk seketika, semua rakan mata wang berada dalam keadaan panik, bimbang tentang keselamatan aset blockchain mereka. Terdapat juga banyak iklan kecil diskaun 10% dan 20% untuk mata wang kedua yang tidak aktif di pelbagai kumpulan pasaran mata wang. Terdapat banyak jenis strategi money printer
, yang tidak mudah dijumpai.
Maafkan saya untuk bahasa Inggeris saya yang buruk.
Walau bagaimanapun, masih ada beberapa yang tidak stabil. contohnya, melalui lindung nilai kontrak, kita boleh membuat keuntungan sambil membuat kerugian sebanyak mungkin.
Strategi DEMO
/*backtest
start: 2020-09-30 00:00:00
end: 2020-10-19 00:00:00
period: 1d
basePeriod: 1m
exchanges: [{"eid":"Futures_OKCoin","currency":"BTC_USD"},{"eid":"Futures_HuobiDM","currency":"BTC_USD"}]
*/
var step = 20 // Step length of adding position price
function main() {
var pos1 = []
var pos2 = []
var ct = "quarter" // For example, quarterly contract
exchanges[0].SetContractType(ct)
exchanges[1].SetContractType(ct)
var diff = 0
while (true) {
var r1 = exchanges[0].Go("GetDepth") // Exchange A
var r2 = exchanges[1].Go("GetDepth") // Exchange B
var depth1 = r1.wait()
var depth2 = r2.wait()
if(depth1.Bids[0].Price - depth2.Asks[0].Price > diff) {
if(pos1.length == 0 && pos2.length == 0) {
var info1 = $.OpenShort(exchanges[0], ct, 10)
var info2 = $.OpenLong(exchanges[1], ct, 10)
pos1 = _C(exchanges[0].GetPosition)
pos2 = _C(exchanges[1].GetPosition)
diff = depth1.Bids[0].Price - depth2.Asks[0].Price
} else if(depth1.Bids[0].Price - depth2.Asks[0].Price > diff + step) {
var info1 = $.OpenShort(exchanges[0], ct, 10)
var info2 = $.OpenLong(exchanges[1], ct, 10)
pos1 = _C(exchanges[0].GetPosition)
pos2 = _C(exchanges[1].GetPosition)
diff = depth1.Bids[0].Price - depth2.Asks[0].Price
}
}
if(pos1.length != 0 && pos1[0].Profit < -0.001) {
var info1 = $.CoverShort(exchanges[0], ct, pos1[0].Amount)
var info2 = $.CoverLong(exchanges[1], ct, pos2[0].Amount)
pos1 = _C(exchanges[0].GetPosition)
pos2 = _C(exchanges[1].GetPosition)
diff = 0
}
LogStatus(_D(), diff)
Sleep(500)
}
}
Logik strategi:
Strategi ini bermula dengan memulakan pembolehubah kedudukan pos1 dan pos2 sebagai array kosong. Strategi memasuki gelung utama. Pada permulaan setiap gelung, data kedalaman (data buku pesanan) kontrak kedua bursa diperoleh untuk mengira perbezaan harga. Jika perbezaan harga terus berkembang dan melebihi
Prinsipnya sangat mudah, iaitu, apabila perbezaan harga besar, maka de-hedge. Apabila menunggu kehilangan kerugian yang dijangkakan dari kedudukan pertukaran, tutup kedudukan. Jika perbezaan harga terus berkembang, terus menambah kedudukan untuk lindung nilai sehingga kerugian yang dijangkakan dari kerugian kedudukan pertukaran. Parameter penting adalah: jumlah kerugian untuk menutup kedudukan, panjang langkah menambah perbezaan harga kedudukan, dan jumlah lindung nilai.
Strategi ini agak asas, hanya untuk mengesahkan idea, bot sebenar tidak tersedia. Masih ada banyak isu yang perlu dipertimbangkan untuk bot sebenar, sebagai contoh, sama ada kontrak yang akan diperdagangkan adalah standard mata wang atau standard U, dan sama ada pengganda kontrak yang berbeza di bursa A dan B adalah sama.
Dengan cara ini, satu bursa akan kehilangan wang, dan bahagian kerugian akan menjadi bahagian keuntungan bursa lain (perbezaan harga, mungkin ada kerugian lindung nilai, iaitu kerugian lebih banyak daripada keuntungan).$.OverShort
, $.OpenShort
, ini adalah fungsi antara muka templat. Untuk menjalankan DEMO di atas, anda perlu merujuk perpustakaan kelas ini.
Prototaip strategi di atas hanya eksplorasi yang paling mudah, dan mungkin ada lebih banyak butiran untuk dipertimbangkan dalam operasi sebenar, sebagai contoh, jumlah kedudukan boleh direka untuk tambahan. ini hanya contoh di sini. strategi yang sama harus dapat mengoptimumkan lebih banyak, dan pakar dialu-alukan untuk memberikan cadangan.