下面是我用的测试大吗,非常简单,每个小时以市价购入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);
}
}
이 거래 중 하나에 대한 로그
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
이 모든 것이 왜 일어나는지 아시나요?
부채좋은, 당신은 옳습니다! 하지만 나는 그것이 쉽게 혼란 스럽다고 생각합니다. 만약 당신이 가격을 설정한다면 두 번째 매개 변수는 ETH의 양이고, 시장 가격이라면 두 번째 매개 변수는 달러이며, API는 잘 설계되지 않았습니다.
발명가들의 수량화 - 작은 꿈여기 시가표로 입력된 10은 10개의 ETH가 아니라 10달러를 의미합니다. 이 var id = exchange.Buy.(-1, 10을 사용하세요. 10을 900으로 바꾸어 보세요.
발명가들의 수량화 - 작은 꿈이러한 설계는 또한 거래소의 API 설계를 연결하기 위해 설계되었습니다. 예를 들어, OKEX의 시가표, OKEX의 API 인터페이스는 시가표가 구매되는 경우 시가표의 양을 수신하지 않고, 시가표의 가격 (즉, 시가표가 대표되는 금액, 이 금액에 따라 구매, 작동 동전의 양이 얼마나지 확실하지 않습니다), 판매하는 경우 시가표의 양을 입력하는 경우에만 판매합니다. 따라서 BotVS의 시가표 모형은 대부분의 거래소의 시가표와 거래소를 통일하는 모형입니다.