下面是我用的测试大吗,非常简单,每个小时以市价购入10个ETH,初试价格是10000,但是在模拟回测的时候发现每次都显示交易成功,但是交易的量都不是10.
function onTick() {
var id = exchange.Buy(-1, 10);
Log("Order Id:", id);
Log(exchange.GetOrder(id));
Log(exchange.GetTrades());
Log(exchange.GetAccount());
}
function main() {
Log(exchange.GetAccount());
while (true) {
onTick();
Sleep(3600 * 1000);
}
}
O log de uma dessas transações
2018-03-05 06:00:25 信息 {"Balance":9699.61809,"Stocks":0.33250049999999987,"FrozenBalance":0,"FrozenStocks":0}
2018-03-05 06:00:24 信息 [{"Id":31,"Time":1520200824800,"Price":900,"Amount":1,"Type":1}]
2018-03-05 06:00:24 信息 {"Id":31,"Price":-1,"Amount":10,"DealAmount":10,"Type":0,"Status":1,"AvgPrice":900.01}
2018-03-05 06:00:24 信息 Order Id: 31
2018-03-05 06:00:24 OKCoin_EN 买入 市价 10
E vocês sabem qual é a razão?
- O quê?Se eu tiver 100 yuan no bolso e quiser comprar rapidamente, você me deixa calcular o quanto posso comprar, porque eu não tenho tempo.
NotasÉ ótimo, você está certo! Mas eu acho que é fácil de confundir, se você definir o preço, o segundo parâmetro é o número de ETH, se o preço do mercado, o segundo parâmetro é o dólar, a API é mal projetada.
Inventor quantificado - sonho pequenoAqui, com o preço de mercado, o 10 não significa 10 ETH, mas 10 dólares, você coloca este var id = exchange.Buy ((-1, 10); o número 10 é de 900.
Inventor quantificado - sonho pequenoA interface da API do OKEX foi projetada para que, se o preço do mercado for comprado, não receba o volume do pedido, basta que o preço do pedido seja o mesmo (ou seja, o valor representado pelo valor é comprado com base nesse valor, não se sabe quanto é o volume de moedas operadas), e venda apenas pedindo o ingresso do volume do pedido (o número de moedas operadas), não pedindo o preço.