Php Binance API仅出售利润和;所有位置

Php Binance API仅出售利润和;所有位置,php,binance,Php,Binance,我试图理解,当只出售利润或某一订单的所有头寸时,执行的逻辑是什么 我已经实施了购买操作。因此,假设用户希望以当前BTC价格购买价值100美元的BTC,我将按照以下步骤操作: $params = [ 'symbol' => 'BTCUSDT', 'side' => 'BUY', 'type' => 'MARKET', 'quoteOrderQty' => 100, 'timestamp' => $timestamp ]

我试图理解,当只出售利润或某一订单的所有头寸时,执行的逻辑是什么

我已经实施了购买操作。因此,假设用户希望以当前BTC价格购买价值100美元的BTC,我将按照以下步骤操作:

$params = 
[
    'symbol' => 'BTCUSDT', 
    'side' => 'BUY', 
    'type' => 'MARKET', 
    'quoteOrderQty' => 100, 
    'timestamp' => $timestamp
];

$binance->buy($params);

我保存了来自Binance的
OrderId
clientOrderId
响应。一周后,我想卖出订单头寸,并拥有以下可用选项:

  • 仅出售此订单的利润&(可能)结束
  • 卖出我在该订单中的所有头寸(无论是否获利)&(可能)结束
  • 问题:如何实现这两种情况

  • 您需要等待订单何时处于
    FILLED
    状态。对于
    市场
    订单,它通常会立即发生,但为了确保您需要检查响应状态,如果它是
    新的
    部分填充的
    则进行此调用
    GET/api/v3/order
  • 好的,你已经填好了。在此步骤中,您需要保存
    已执行数量
    累计数量
    字段。第一个是你买了多少BTC,第二个是你花了多少USDT
  • 我不知道你说的“只卖利润”到底是什么意思,但让我猜猜。您需要获取该对的最后一个价格
    GET/api/v3/ticker/price
    ,然后进行计算
  • 利润=$currentPrice*$exectuedQty-$cummulativeqoteqty
    。 以美元计算,这将是您的利润。对于部分销售,您需要下订单

        'symbol' => 'BTCUSDT', 
        'side' => 'SELL', 
        'type' => 'MARKET', 
        'quoteOrderQty' => $profit, 
        'timestamp' => $timestamp
    
    请记住,
    quoteOrderQty
    不能低于10美元

  • 这是你全部结束的命令

  • 难道利润就不能像
    $currentPrice-$pricebunded
    ?此外,API在哪里提到了10美元规则?我看到它适用于OCO订单类型,但这似乎不是我使用的(?)。您的回复中没有PriceBuy。你需要计算一下。此外,您还可以以基本货币或报价货币数量进行订单。我做了第一个(更多的控制),你们建议第二个变体(容易理解)。10美元规则来自二进制过滤器。你可以在这里读更多。所有USDT的最低报价都是10美元。我不认为这一轮是个好主意。在这种情况下,最好使用地板。该轮可以给出高于您当前货币金额的值。找到此解决方案(搜索“roundStep”)似乎是最合适的。
        'symbol' => 'BTCUSDT', 
        'side' => 'SELL', 
        'type' => 'MARKET', 
        'quantity' => $exectuedQty, 
        'timestamp' => $timestamp