实际交易数量与exchange.Buy设置的数量不符。

저자:부채, 2018-03-05 18:18:47에서 생성, 2018-03-05 18:19:29에서 업데이트

下面是我用的测试大吗,非常简单,每个小时以市价购入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

이 모든 것이 왜 일어나는지 아시나요?


더 많은

만약 제가 100원짜리 동전을 가지고 있다면, 금화를 빨리 사야 합니다. 그리고 제가 얼마만큼의 동전을 살 수 있는지 잠정적으로 계산해 보도록 하세요.

부채좋은, 당신은 옳습니다! 하지만 나는 그것이 쉽게 혼란 스럽다고 생각합니다. 만약 당신이 가격을 설정한다면 두 번째 매개 변수는 ETH의 양이고, 시장 가격이라면 두 번째 매개 변수는 달러이며, API는 잘 설계되지 않았습니다.

작은 꿈여기 시가표로 입력된 10은 10개의 ETH가 아니라 10달러를 의미합니다. 이 var id = exchange.Buy.(-1, 10을 사용하세요. 10을 900으로 바꾸어 보세요.

작은 꿈이러한 설계는 또한 거래소의 API 설계를 연결하기 위해 설계되었습니다. 예를 들어, OKEX의 시가표, OKEX의 API 인터페이스는 시가표가 구매되는 경우 시가표의 양을 수신하지 않고, 시가표의 가격 (즉, 시가표가 대표되는 금액, 이 금액에 따라 구매, 작동 동전의 양이 얼마나지 확실하지 않습니다), 판매하는 경우 시가표의 양을 입력하는 경우에만 판매합니다. 따라서 BotVS의 시가표 모형은 대부분의 거래소의 시가표와 거래소를 통일하는 모형입니다.