En résumé: pour trouver le prix moyen d’une commande, vous pouvez utiliser order.info.detail sur le site web wex.app.[0].price pour remplacer l’ordre ordinaire.AvgPrice. Lorsque vous écrivez du code, vous pouvez tester les achats et les ventes via un outil de débogage et comparer l’historique des commandes avec les informations de commande de wex.app pour ajuster le code de stratégie.
Déclaration: Le but de cet article est simplement de documenter les problèmes rencontrés lors de l’écriture du code, le processus d’apprentissage et les solutions. Merci aux inventeurs de la plateforme de simulation wex.app, qui m’a permis de tester de nombreuses stratégies.
Cet article utilise les outils de débogage du site Web de l’inventeur pour tester les commandes en cours sur le site de disque wex.app et rechercher les informations de retour des commandes. Les résultats sont les suivants:
A. Un achat à l’essai
(i) Le code de test
function main(){
var account = exchange.GetAccount();
var preAccount = account;// enregistre l’état du compte avant l’achat
Log(preAccount);
var id = exchange.Buy ((-1, 50);// dépenser 50 usdt pour acheter le BTC au prix du marché
Log(id);
if(id!=null){
var order = exchange.GetOrder(id);
Log(order);
// vérifier l’état du compte après achat
Log(account);
}
}
(ii) retour de renseignements Avant d’acheter, renseignez-vous sur le compte pré-compte: { “Info”: { (Cette partie de l’info contient beaucoup d’informations, mais n’affecte pas l’analyse de cet article, elle est donc ignorée) }, “Stocks”: 0.8150649, “FrozenStocks”: 0, “Balance”: 5759.396067057396, “FrozenBalance”: 204954.226021164 }
Les informations du compte après l’achat: { “Info”: { (Cette partie de l’info est ignorée) }, “Stocks”: 0.81682151, “FrozenStocks”: 0, “Balance”: 5709.396268085276, “FrozenBalance”: 204954.226021164 }
Nous avons comparé les données des comptes avant et après l’achat, et nous avons trouvé: 1 Le solde du compte a été réduit de 50 usdt. Le nombre de pièces (Stocks) a été augmenté de 0,00175661 BTC.
La commande order renvoie les données suivantes: { “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”: “” }
Selon les informations sur les commandes retournées par wex.app, nous avons trouvé: La commande a été passée et le statut est 1. 2/ Le nombre de pièces échangées est de 0,00175661, correspondant à la variation du compte. 3/ En comparant l’historique des commandes sur le site web de wex.app, on trouve: Le montant total de la transaction est de 49,9623272267 USD. Le prix moyen de transaction est Info.detail[0].price=28442.47 Le nombre total de transactions est de Info.detail[0].amount=0.00175661 unités de BTC Les frais de traitement sont infodétail[0].fee = 0.037471745420025 dollars américains
Le prix moyen d’une transaction = le total des transactions / le total des transactions: 49.9623272267⁄0.00175661=28442.47 Taux de traitement = frais de traitement totaux / volume total des transactions 0.037471745420025/49.9623272267=0.00075
Le problème, c’est que si vous déduisez le montant du mandat du montant total de la transaction, la différence est un peu plus grande que le montant total des frais de traitement: 50-49.9623272267=0.0376727733 0.0376727733-0.037471745420025=0.000201028 Je ne sais pas où est cette différence ? Peut-être est-ce lié à la méthode de calcul de la commande. En général, cette erreur peut être ignorée.
Deux, le test est vendu.
(i) Le code de test
function main(){
var account = exchange.GetAccount();
var preAccount = account;// enregistre l’état du compte avant la vente
Log(preAccount);
Il a vendu 0,001 BTC au prix du marché.
Log(id);
if(id!=null){
var order = exchange.GetOrder(id);
Log(order);
// vérifier l’état des comptes après la vente
Log(account);
}
}
(ii) retour de renseignements Avant d’acheter, renseignez-vous sur le compte pré-compte: { “Info”: { (Cette partie de l’info est ignorée) }, “Stocks”: 0.81682151, “FrozenStocks”: 0, “Balance”: 5752.887638167275, “FrozenBalance”: 204910.734651082 }
Les informations du compte après l’achat: { “Info”: { (Cette partie de l’info est ignorée) }, “Stocks”: 0.81582151, “FrozenStocks”: 0, “Balance”: 5781.260102847275, “FrozenBalance”: 204910.734651082 }
Nous avons comparé les données des comptes avant et après l’achat, et nous avons trouvé: 1 Le solde du compte a été augmenté de 28 3724 6468 usdt. 2/ Le nombre de pièces (Stocks) a été réduit de 0,001 BTC.
La commande order renvoie les données suivantes: { “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”: “” }
Selon les informations sur les commandes retournées par wex.app, nous avons trouvé: La commande a été passée et le statut est 1. 2. le nombre de pièces échangées est de 0,001, correspondant à la variation du compte. 3/ En comparant l’historique des commandes sur le site web de wex.app, on trouve: Le montant total des transactions est de 28 39 376 USD. Le prix moyen de transaction est Info.detail[0].price=28393.76 Le nombre total de transactions est de Info.detail[0].amount=0.001 unités de BTC Les frais de traitement sont infodétail[0].fees = 0,021295325 usdts
Le prix moyen d’une transaction = le total des transactions / le total des transactions: 28.39376⁄0.0011=28393.76 Taux de traitement = frais de traitement totaux / volume total des transactions 0.021295325/28.39376=0.00075
Nous pouvons calculer les frais de traitement d’un autre point de vue, en utilisant la variation du solde du compte (Balance) moins le montant total de la transaction: 28.37246468-28.39376-=-0.02129532 Il y a une très petite erreur, qui devrait être due à l’interception d’un certain nombre de petits chiffres, qui peut être ignorée.