리소스 로딩... 로딩...

实际交易数量与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의 시가표 모형은 대부분의 거래소의 시가표와 거래소를 통일하는 모형입니다.