首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python中的Binance与CCXT没有考虑到的杠杆作用

Python中的Binance与CCXT没有考虑到的杠杆作用
EN

Stack Overflow用户
提问于 2022-04-18 09:31:41
回答 1查看 1.2K关注 0票数 0

我在Python上的ccxt有个小问题。我正在(试图)编码一个交易机器人,它接受我的自定义tradingview信号。因此,我一直在修改一些测试代码,它在testnet.binance上打开了一个交易,在BTC/USDT和一定的杠杆作用下,我的所有余额都在雪崩。

然而,我对杠杆有一个问题。实际上,代码提到了10的杠杆,当我在本地运行代码时,UI提到了一个杠杆“孤立的x10”,但是没有在位置大小中考虑到它(见图)。我的余额大约为2600美元,贸易价值为2600美元。

通过代码定位

通过UI手动完成它,并且使用我的余额的100%,我确实得到了‘孤立的x10’中的值为26000 USDT,这是预期的。

通过UI定位

你知不知道为什么它会考虑杠杆,但不适用于该头寸?

以下是代码:

代码语言:javascript
运行
复制
import ccxt
import config

binaance = ccxt.binance({
    'enableRateLimit': True,  
    'options': {
        'defaultType': 'future',
    },
    'apiKey': config.API_KEY,  
    'secret': config.API_SECRET,
    'passphrase': config.PASSPHRASE,
})
binaance.set_sandbox_mode(True)
markets = binaance.load_markets()
symbol = 'BTC/USDT'
market = binaance.market(symbol)  

binaance.fapiPrivate_post_leverage({  
    'symbol': 'BTCUSDT',
    'leverage': 10,
})

def trade_crypto(request):
    
    free_balance = float(binaance.fetch_balance().get('USDT').get('free'))
    last_price = float(binaance.fetchTicker('BTC/USDT').get('last'))
    amount = free_balance / last_price  

    order = binaance.create_market_buy_order('BTC/USDT', amount)
    
    return order

谢谢你在这里所做的一切!这很有帮助。

在@Sam应答后编辑1

嘿,@Sam,首先,非常感谢您的回答。我没有检查右边的空白处,所以谢谢你!我确信我的计算是正确的,所以我没有去看那里。如果我正确理解的话,订单已经动用了我资本的10% (260美元),以获得10倍的杠杆,交易价值为2600美元。所以我在计算上做了一个改变,就是:

代码语言:javascript
运行
复制
leverage = 10

amount = (free_balance / last_price) * leverage

Result = (2600 / 38900) * 10 = approximately 0.6 btc

但后来我得到了“资金不足”,这是预期的,因为它试图用26,000美元,从我的可用余额,但帐户只有2600。

那么,如何考虑贸易价值必须是我的余额价值的10倍(=26000 USDT),而只使用2600 USDT (通过用户界面是可能的)这一事实?

在这张图片通过用户界面购买,我们可以看到,通过10倍的杠杆,我可以把我的2600美元可用余额,贸易价值约为26000美元。我无法复制这种行为准则。希望你或其他人能启发我啊。

Ps :我可能没有提过,但它涉及到永久期货合约的交易

在找到答案后编辑2

我终于发现了错误。我必须将我的“金额”设置乘以杠杆,才能在BTC中获得杠杆的价格,并且只投入99%的杠杆,因为很明显,它不能把我余额的100% (或者可能可以,但我没有找到怎么做)。因为用我的方法,最后的价格可能会变化,因此改变不能用我的总余额买卖的数量)。

我仍然需要找到一种方法,把我的余额的100% (也许是一个参数,不会考虑到最后的价格)。

代码修改:

代码语言:javascript
运行
复制
amount = ((free_balance / last_price) * 10 ) * 0.99
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71910014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档