Ringkasnya: Order.Info.detail boleh digunakan untuk mencari harga purata pesanan di wex.app[0].price untuk menggantikan order.AvgPrice yang biasa digunakan. Apabila menulis kod, anda boleh membeli dan menjual dengan menguji alat debug, dan menyemak maklumat pesanan komisen sejarah dengan wex.app, untuk menyesuaikan kod strategi.
Pengakuan: Saya menulis artikel ini untuk mencatatkan masalah yang saya hadapi semasa menulis kod, proses pembelajaran dan penyelesaian. Terima kasih kepada platform pencipta untuk menyediakan simulasi wex.app, yang membolehkan saya menguji banyak strategi.
Artikel ini menggunakan alat debug dari laman web pencipta untuk menguji pesanan harga pasaran yang dibeli dan dijual di laman web analog wex.app, dan menanyakan maklumat pesanan yang dikembalikan. Hasilnya adalah seperti berikut:
Satu, pembelian ujian
(a) Kod ujian
function main(){
var account = exchange.GetAccount();
var preAccount = account;// Mencatat status akaun sebelum pembelian
Log(preAccount);
var id = exchange.Buy ((-1, 50);// menghabiskan 50 usdt untuk membeli BTC pada harga pasaran
Log(id);
if(id!=null){
var order = exchange.GetOrder(id);
Log(order);
account = exchange.GetAccount();// Mencari status akaun selepas pembelian
Log(account);
}
}
(ii) Kembali kepada maklumat Maklumat akaun preAccount sebelum membeli: { “Info”: { (Info ini banyak maklumat, tetapi tidak mempengaruhi analisis artikel ini, jadi diabaikan) }, “Stocks”: 0.8150649, “FrozenStocks”: 0, “Balance”: 5759.396067057396, “FrozenBalance”: 204954.226021164 }
Maklumat akaun selepas pembelian: { “Info”: { (Bagian info ini diabaikan) }, “Stocks”: 0.81682151, “FrozenStocks”: 0, “Balance”: 5709.396268085276, “FrozenBalance”: 204954.226021164 }
Kami membandingkan data akaun sebelum dan selepas pembelian dan mendapati: 1 , Saldo akaun (Balance) dikurangkan sebanyak 50 usdt. 2 , jumlah syiling (Stocks) meningkat 0.00175661 BTC.
order order mengembalikan data seperti berikut: { “Info”: { “account”: “exchange”, “side”: “bid”, “tx”: “49.9623272267”, “detail”: [{ “id”: 62138365, “price”: “28442.47”, “time”: 1609311663795, “amount”: “0.00175661”, “fee”: “0.037471745420025”, “fee_price”: “0.0”, “fee_replace”: “0.0” }], “fee_replace”: “0.0”, “time”: 1609311663795, “deal_amount”: “0.00175661”, “deleted”: 1609311663795, “remain”: “0.0”, “fee_symbol”: “EVE”, “id”: 201005081, “market”: “BTC_USDT”, “price”: “50.0”, “status”: “closed”, “amount”: “0.0”, “client”: “api”, “fee”: “0.037471745420025”, “type”: “market” }, “Id”: 201005081, “Amount”: 0, “Price”: 50, “DealAmount”: 0.00175661, “AvgPrice”: 0, “Status”: 1, “Type”: 0, “Offset”: 0, “ContractType”: “” }
Menurut maklumat pesanan yang dikembalikan oleh wex.app, kami dapati: 1 , pesanan telah diserahkan, status sama dengan 1 2. Jumlah mata wang yang ditukar adalah 0.00175661, yang selaras dengan perubahan nilai akaun sebelum dan selepas. 3. Berbanding dengan maklumat mengenai sejarah tempahan di laman web wex.app, terdapat: Jumlah urus niaga adalah Info.tx = 49.9623272267 USDT Harga purata transaksi ialah Info.detail[0].price=28442.47 Jumlah transaksi ialah Info.detail[0 .amount = 0.00175661 BTC Jumlah yuran adalah Info.detail[0].fee = 0.037471745420025 USDT
Harga purata transaksi = jumlah transaksi / jumlah transaksi: 49.9623272267⁄0.00175661=28442.47 Kadar bayaran = jumlah bayaran / jumlah urus niaga 0.037471745420025/49.9623272267=0.00075
Masalahnya, jika jumlah urus niaga dikurangkan dengan jumlah komisen, perbezaan nilai adalah sedikit lebih besar daripada jumlah yuran: 50-49.9623272267=0.0376727733 0.0376727733-0.037471745420025=0.000201028 Tidak tahu di mana perbezaan ini? Mungkin berkaitan dengan kaedah pengiraan pengumpulan pesanan. Dalam keadaan biasa, kesilapan ini boleh diabaikan.
Kedua, uji dan jual.
(a) Kod ujian
function main(){
var account = exchange.GetAccount();
var preAccount = account;// Mencatat status akaun sebelum dijual
Log(preAccount);
var id = exchange.Sell ((-1, 0.001);// menjual 0.001 BTC pada harga pasaran
Log(id);
if(id!=null){
var order = exchange.GetOrder(id);
Log(order);
account = exchange.GetAccount (();// Mencari status akaun selepas dijual
Log(account);
}
}
(ii) Kembali kepada maklumat Maklumat akaun preAccount sebelum membeli: { “Info”: { (Bagian info ini diabaikan) }, “Stocks”: 0.81682151, “FrozenStocks”: 0, “Balance”: 5752.887638167275, “FrozenBalance”: 204910.734651082 }
Maklumat akaun selepas pembelian: { “Info”: { (Bagian info ini diabaikan) }, “Stocks”: 0.81582151, “FrozenStocks”: 0, “Balance”: 5781.260102847275, “FrozenBalance”: 204910.734651082 }
Kami membandingkan data akaun sebelum dan selepas pembelian dan mendapati: 1 , Balance akaun meningkat 28.37246468 usdt. 2. Jumlah Stok (Stocks) dikurangkan sebanyak 0.001 BTC.
order order mengembalikan data seperti berikut: { “Info”: { “account”: “exchange”, “price”: “0.0”, “client”: “api”, “deleted”: 1609313057270, “fee_symbol”: “EVE”, “status”: “closed”, “time”: 1609313057270, “tx”: “28.39376”, “type”: “market”, “amount”: “0.001”, “detail”: [{ “time”: 1609313057270, “amount”: “0.001”, “fee”: “0.02129532”, “fee_price”: “0.0”, “fee_replace”: “0.0”, “id”: 62140121, “price”: “28393.76” }], “fee_replace”: “0.0”, “id”: 201015506, “remain”: “0.0”, “deal_amount”: “0.001”, “fee”: “0.02129532”, “market”: “BTC_USDT”, “side”: “ask” }, “Id”: 201015506, “Amount”: 0.001, “Price”: 0, “DealAmount”: 0.001, “AvgPrice”: 0, “Status”: 1, “Type”: 1, “Offset”: 0, “ContractType”: “” }
Menurut maklumat pesanan yang dikembalikan oleh wex.app, kami dapati: 1 , pesanan telah diserahkan, status sama dengan 1 2. Jumlah mata wang yang ditukar adalah 0.001 yang sesuai dengan nilai perubahan akaun sebelum dan selepas. 3. Berbanding dengan maklumat mengenai sejarah tempahan di laman web wex.app, terdapat: Jumlah urus niaga ialah Info.tx = 28.39376 USDT Harga purata transaksi ialah Info.detail[0].price=28393.76 Jumlah transaksi ialah Info.detail[0 .amount = 0.001 BTC Jumlah yuran adalah Info.detail[0 .fee = 0.021295325 USDT
Harga purata transaksi = jumlah transaksi / jumlah transaksi: 28.39376⁄0.0011=28393.76 Kadar bayaran = jumlah bayaran / jumlah urus niaga 0.021295325/28.39376=0.00075
Kita boleh mengira yuran dari sudut lain, dengan nilai perubahan dalam baki akaun (Balance) yang dikurangkan dari jumlah transaksi: 28.37246468-28.39376-=-0.02129532 Terdapat sedikit kesilapan, yang sepatutnya disebabkan oleh digit kecil, yang boleh diabaikan.