因为我在文档中找不到任何解决方案。因此,我想出了解决方法(这可能不是最有效的方法,但它对我有用)我已经开始按顺序使用 3 个订单下订单。
示例场景:以 300 美元的市场价格 (139.00) 购买 SOL。
#Place Market Buy Order, Buying volume = 2.15 for $300
ftx.create_order('SOL/USD','market','buy',2.15)
#Place Stop-loss order, volume = 2.15 when price reaches 135.00
ftx.create_order('SOL/USD','stop','sell',2.15,params={'triggerPrice':135.00,'reduceOnly': True})
#Place take-profit order, volume = 2.15 when price reaches 148.00
ftx.create_order('SOL/USD','takeProfit','sell',2.15,params={'triggerPrice':148.00,'reduceOnly': True})
确保包含 reduceOnly 参数,以便在执行 SL/TP 订单时不会开立新仓位。
我意识到,当订单被填满时,止盈/止损订单中的任何一个都会被排除在订单簿中,我不确定随后会发生什么,以避免与同一资产的新订单发生冲突。我在使用 - 下新订单之前单独处理该问题
ftx.cancel_all_orders(symbol, {'conditionalOrdersOnly':True})