Вкратце: при поиске средней цены заказа на сайте wex.app можно использовать order.Info.detail[0].price заменить обычно используемые order.AvgPrice. При написании кода, вы можете тестировать покупку и продажу с помощью инструмента дебютирования, а также проверить историю заказов в wex.app, чтобы скорректировать код стратегии.
Заявление: Целью написания этой статьи является простое описание проблем, с которыми я столкнулся в процессе написания кода, процесса обучения и решения. Благодарю разработчиков платформы за предоставленный имитационный диск wex.app, который позволил мне протестировать многие стратегии.
В данной статье используется инструмент дебютирования на сайте изобретателя, чтобы проверить рыночные заказы на покупку и продажу на сайте wex.app и запросить информацию о возвращенных заказах. Конкретные результаты следующие:
Первый - тест-покупка.
(a) Код тестирования
function main(){
var account = exchange.GetAccount();
var preAccount = account;// записывает состояние аккаунта до покупки
Log(preAccount);
var id = exchange.Buy ((-1, 50);// потратить 50 usdt, чтобы купить BTC по рыночной цене
Log(id);
if(id!=null){
var order = exchange.GetOrder(id);
Log(order);
account = exchange.GetAccount (();// запросить состояние аккаунта после покупки
Log(account);
}
}
(II) возвращение информации Прежде чем совершить покупку, обратите внимание на следующие данные с учетной записи preAccount: { “Info”: { (Инфо-часть содержит много информации, но не влияет на анализ статьи, поэтому игнорируется) }, “Stocks”: 0.8150649, “FrozenStocks”: 0, “Balance”: 5759.396067057396, “FrozenBalance”: 204954.226021164 }
После покупки, информация о счете: { “Info”: { (Эта часть информации была проигнорирована) }, “Stocks”: 0.81682151, “FrozenStocks”: 0, “Balance”: 5709.396268085276, “FrozenBalance”: 204954.226021164 }
Мы сравнили данные счетов до и после покупки и обнаружили: 1, баланс аккаунта (Balance) уменьшился на 50 usdt. 2 , количество монет (Stocks) увеличилось на 0,00175661 BTC.
order возвращает следующие данные: { “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”: “” }
По данным wex.app, мы обнаружили: 1 Заказ выполнен, статус равен 1 2. Количество монет в обмене составляет 0,00175661, что соответствует изменениям в счетах. 3 , Сравнение исторической информации о заказах на веб-странице wex.app показало: Общая сумма сделки: Info.tx = 49.9623272267 usdt Средняя цена сделки - Info.detail[0].price=28442.47 Общий объем сделок - Info.detail[0].amount=0.00175661 BTC Общая стоимость: Info.detail[0].fee=0.037471745420025 долларов США
Средняя цена сделки = общий объем сделки/общий объем сделки: 49.9623272267⁄0.00175661=28442.47 Процедура оплаты = общая стоимость услуги / общий объем сделки 0.037471745420025/49.9623272267=0.00075
Проблема заключается в том, что если вычесть сумму поручения из суммы сделки, то разница будет немного больше, чем общая сумма комиссионных: 50-49.9623272267=0.0376727733 0.0376727733-0.037471745420025=0.000201028 Неизвестно, куда делась эта разница? Возможно, она связана с методом расчета заказа. В общем случае, эту ошибку можно игнорировать.
Второе: тест-продажа.
(a) Код тестирования
function main(){
var account = exchange.GetAccount();
var preAccount = account;// записывает состояние аккаунта до продажи
Log(preAccount);
var id = exchange.Sell ((-1, 0.001);// продать 0.001 BTC по рыночной цене
Log(id);
if(id!=null){
var order = exchange.GetOrder(id);
Log(order);
account = exchange.GetAccount (();// запрос состояния аккаунта после продажи
Log(account);
}
}
(II) возвращение информации Прежде чем совершить покупку, обратите внимание на следующие данные с учетной записи preAccount: { “Info”: { (Эта часть информации была проигнорирована) }, “Stocks”: 0.81682151, “FrozenStocks”: 0, “Balance”: 5752.887638167275, “FrozenBalance”: 204910.734651082 }
После покупки, информация о счете: { “Info”: { (Эта часть информации была проигнорирована) }, “Stocks”: 0.81582151, “FrozenStocks”: 0, “Balance”: 5781.260102847275, “FrozenBalance”: 204910.734651082 }
Мы сравнили данные счетов до и после покупки и обнаружили: 1 , Баланс аккаунта увеличился на 28,37246468 usdt. 2., количество монет (Stocks) уменьшилось на 0.001 BTC.
order возвращает следующие данные: { “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”: “” }
По данным wex.app, мы обнаружили: 1 Заказ выполнен, статус равен 1 2. Количество монет в обмене составляет 0,001 и соответствует изменениям в счетах до и после. 3 , Сравнение исторической информации о заказах на веб-странице wex.app показало: Общий объем сделок Info.tx = 28.39376 usdt Средняя цена сделки - Info.detail[0].price=28393.76 Общий объем сделок - Info.detail[0].amount=0.001 BTC Общая стоимость: Info.detail[0].fee = 0.021295325 долларов США
Средняя цена сделки = общий объем сделки/общий объем сделки: 28.39376⁄0.0011=28393.76 Процедура оплаты = общая стоимость услуги / общий объем сделки 0.021295325/28.39376=0.00075
Мы можем рассчитать комиссионные с другой точки зрения, используя изменение баланса счета (Balance) за вычетом суммы сделки: 28.37246468-28.39376-=-0.02129532 Если мы не будем делать ошибок, мы не сможем найти нужную цифру, и мы не сможем найти нужную цифру.