最大可下单金额

获取当前账户的最大可下单金额,与最大可用余额不同的是,最大可下单金额需要考虑当前的挂单,还有当前交易币种的杠杆系数。通过计算从而获得最大可用于下单的金额。

self.GetAllowBuyAmount(positionAmt, pending_order_size, price, markPrice, marginBalance, leverage)

代码示例:

    import math
    import json
    from datetime import datetime
    from datetime import timedelta
    from strategy_features import TQFeataures
    from date_util.datetime_util import DateTimeUtil
    
    class TQStrategyEntity(TQFeataures):
        # 策略初始化
        def Initialize(self):
    
            
        # 技术指标会回调函数
        #  name - 技术指标名称
        #  tag 指标标签,与用户添加指标时使用的标签一致。
        def on_indicator(self, name, tag, data):
            # 获取策略运行时的公共信息
            runtime_info = self.GetStrategyRuntimeInfo()
    
            exchange           = runtime_info.exchange           # 交易所代码
            data_type          = runtime_info.data_type          # 产品类型(如:spot,futures)
            pair               = runtime_info.pair               # 交易对(如:BTC-USDT)
            f_curr_close_price = runtime_info.curr_close_price   # 当前收盘价        
            fee_taker          = runtime_info.fee_taker          # 吃单手续费(如:0.0004)
            fee_maker          = runtime_info.fee_maker          # 挂单手续费(如:0.0002)
            data_key           = runtime_info.data_key           # 根据交易所,交易对和产品类型生成的唯一键值,用于在多交易所和多交易对同时交易的场景下的数据标记,也可以作为一般的数据暂存时的键值。
            indicator_data_key = runtime_info.indicator_data_key # 当前的的技术指标键值,使用该键值可以暂存对应技术指标的数据,这在使用多指标场合下作为辨识属于哪一个技术指标。
            markPrice          = runtime_info.marked_price       # 标记价格
            min_size           = runtime_info.min_size           # 交易对最小交易数量,比如BTC是“0.001”,该数值是字符串类型
            
            # 初始化以下变量
            # 杠杆
            leverage = 0
            # 开仓价格
            entryPrice = 0
            # 当前仓位
            positionAmt = 0
            
            # 获取仓位信息
            position_risk_info = self.GetPositionRiskEx()
            if position_risk_info is not None:      
                leverage = int(position_risk_info['leverage'])
                entryPrice = float(position_risk_info['entryPrice'])
                positionAmt = float(position_risk_info['positionAmt'])
            else:
                self.log.warning("暂时无法获得仓位信息......")
                # 同步交易所的账户余额,同时同步仓位信息
                self.SyncBalanceEx()
                return
            
            # 接收技术指标数据
            if tag == 'BOLL-20':
                quote_balance_info = self.GetBalanceEx("USDT")
                if quote_balance_info is None:
                    self.log.warning("账户余额信息为空!")
                    self.SyncBalanceEx()
                    return
    
                #保证金余额
                marginBalance = float(quote_balance_info['marginBalance']) * self.STRATEGY_AMOUNT_PERCENT
                # 当前所有挂单数量
                pending_order_size = self.GetAllPendingOrderSizeEx()
                # 最大可用余额
                maxWithdrawAmount = self.GetMaxWithdrawAmountEx() * self.STRATEGY_AMOUNT_PERCENT
    
                # 计算最大可下单金额
                max_buy_amount = self.GetAllowBuyAmount(abs(positionAmt), pending_order_size, f_curr_close_price,  markPrice, marginBalance, leverage)
                max_buy_amount = min(max_buy_amount, maxWithdrawAmount)
    

参数说明

#字段名类型说明
1positionAmt浮点型仓位
2pending_order_size浮点型当前挂单数量
3price浮点型当前收盘价
4markPrice浮点型当前标记价
5marginBalance浮点型保证金余额
6leverage整型当前交易对杠杆

返回值

返回值类型: 浮点型

计算公式

max_buy_amount = round( (marginBalance * threshold * leverage) - (pending_order_size * price) - (abs(positionAmt) * markPrice),2)
max_buy_amount = min(marginBalance*leverage, max_buy_amount)

其中threshold是表示策略可用资金的百分比。

知识图谱

知识库服务

一站式、全流程的知识图谱构建、应用平台。通过创建、分享、并融合地图和图形数据库,实现知识内容可视化。

数据抽取

构建知识图谱的第一步

通过系统提供在线的知识编辑和导入功能,创建知识条目、构建知识库。并且从异构数据源中获取候选知识单元,知识抽取技术将自动从半结构化和无结构数据中抽取实体、关系以及实体属性等结构化信息。

关系抽取

构建可视化的知识图谱

经过实体抽取, 知识库目前得到的仅是一系列离散的命名实体,为了得到更准确的语义信息, 还需要从文本语料中提取出实体之间的关联关系, 以此形成可视化的网状的知识结构。

与地图融合

在地图上标注知识点

在地图上标注知识点,查看知识内容,并可从内容中定位含有坐标信息的知识点。实现地图标注的聚合、查询。

全文搜索

根据关键词全文搜索

建立全文索引数据库,通过关键词实现快速全文搜索,支持结构化和非结构化的内容搜索。

系统架构及特点

分布式设计和易于扩展的系统架构

支持海量数据存储

满足企业日益增长的数据存储和知识库扩充需求,使用大数据和分布式系统设计,架构上支持海量数据的存储和高并发用户的访问。

移动设备支持

使用最新的基于Web的开放框架,可迅速地运用于PC端及移动端设备的Web页面上。提供跨设备、跨浏览器的支持。

数据安全

采用保护措施来防止数据受到未经批准的访问并保持数据机密性、完整性和可用性。通过数据加密、密钥管理以及特权用户访问控制、审计和监视等。

订阅和获取更新,了解最新的资讯和产品开发进度。

关于趣宽科技

提供软件系统开发维护服务,主要致力于知识图谱、大数据、分布式系统和区块链方面的系统的开发。


版权所有 |
2023 © 趣宽

v0.0.1