实际交易数量与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元持っていたら急いで買おう"と頼むと,暫定計算で何枚買えるか計算させてもらいます.

ミノート素晴らしい,あなたは正しい! しかし,私は簡単に混乱すると思う,価格を設定した場合,第2パラメータはETHの数,市場価格の場合,第2パラメータはドル,このAPIは設計が悪い.

小さな夢市場価格表で入力した10は,10のETHではなく,10ドルを表しています.このvar id = exchange.Buy (−1,10) を使います. 10を900に変更します.

小さな夢OKEXの価格表のような取引所のAPIのデザインも設計されている. OKEXのAPIインターフェースは,市場価格で購入した場合,下注金額を受け取らない限り,下注価格 (すなわち,取引所が代表する金額,この金額に基づいて購入,操作コインの量は多少かは不明) を要求するだけで,下注金額 (操作コインの数) を要求するだけで,価格を求めないように設計されている.