炒币机器人 发表于 2022-11-2 09:29:50

博森ccg合约机器人:合约算法

维持保证金率:用户维持当前仓位所需的最低保证金率,当保证金率小于等于用户当前所需维持保证金率+平仓手续费率,即触发强制平仓。
保证金率的意义:保证金率代表你仓位的风险高低程度。公众号关注:自动炒币机器人CCR详解
所谓仓位,就是一笔交易的规模大小。外汇合约的单位是"手"(Lot)。https://wx3.sinaimg.cn/large/008reWIEgy1h73f8m6n0hj30zk0nqtca.jpg全仓模式下:保证金率=账户权益/(用户持仓所需的保证金+挂单冻结保证金)
逐仓模式下:保证金率=(固定保证金+未实现盈亏)*开仓均价*杠杆/(合约面值*持仓数量)
在上述新公式调整后,强制平仓逻辑调整为:10倍杠杆时,保证金率小于等于10%时,仓位触发强制平仓;20倍杠杆时,保证金率小于等于20%时,用户触发强制平仓。
全仓保证金率=账户权益 /(仓位大小+挂单冻结保证金杠杆)
账户权益=客户存入金额+已实现盈亏+未实现盈亏。
可用保证金=账户权益-持仓张数面值/(最新标记价格*杠杆)-挂单冻结保证金
收益率 = 收益 / 开仓时所需保证金。
收益公式
多单:合约收益=(合约面值/开仓均价-合约面值/平仓均价)*张数。
空单:合约收益=(合约面值/平仓价格-合约面值/开仓均价)*张数。
未实现盈亏
多单:合约收益=(合约面值/结算基准价-合约面值/标记价格)*张数。
空单:合约收益=(合约面值/标记价格-合约面值/计算基准价)*张数。
多仓收益= (合约面值/开仓价-合约面值/平仓价)*张数,然后用这个公式,开仓价直接改成结算价格
资金费用=仓位价值*资金费率
资金费率=Clamp(MA(((合约买一价+合约卖一价)/2-现货指数价格)/现货指数价格 - Interest), a, b)

[*]Clamp 代表超过a取a 超过b取b
[*]MA 这个代表上一分钟的移动平均值
[*]Interest 代表0
[*]
已实现盈亏:上一次结算至当前,用户已平仓仓位产生的盈亏,在合约结算后该合约所产生的已实现盈亏才可以提出至交易账户。
未实现盈亏:上一次结算至当前,用户当前所持仓位产生的盈亏,也称浮动盈亏平仓已实现盈亏是已经扣除过手续费 收益没有扣除手续费
合约交易最低的开仓限制:一张合约,不足一张无法下单。
币本位合约可开张数=可用保证金最新成交价格杠杆倍数/合约面值
USDT合约开仓张数=可用保证金杠杆倍数/(面值最新成交价格)
平台是有仓位档位限制,不同的合约开仓时选择的杠杆倍数不同,可开仓张数限制不同,可参照仓位档位说明。
页面显示的最大可开数量是使用最新行情价格计算的,和用户本身的委托价格有区别,所以使用页面中的张数开仓会提示风险率过高或者下单失败。
亏损大于保证金就是穿仓
标记价格达到预估强平价就会爆仓
全仓预估强平价=【(维持保证金率+对应等级合约吃单手续费率)*总开仓张数+(开多张数-开空张数)】/(总亏损/面值+开多张数/开多均价-开空张数/开空均价)
逐仓多预估强平价=(1+维持保证金率)/(1/开仓均价+固定保证金/面值/张数)
逐仓空预估强平价=(1-维持保证金率)/(1/开仓均价-固定保证金/面值/张数)
当用户触发强平后,系统强平引擎以破产价格接管平仓,产生的平仓盈余会注入风险准备金。
当用户触发强平后,如果产生穿仓损失则优先从风险准备金中抵扣,如果无法完全抵扣,则由当日所有净盈利用户参与分摊。
全仓做多破产价=多仓持仓均价-(余额+已实现盈亏)/多仓张数/面值
全仓做空破产价=空仓持仓均价+(余额+已实现盈亏)/空仓张数/面值
逐仓做多破产价=多仓持仓均价-固定保证金/多仓张数/面值
逐仓做空破产价=空仓持仓均价+固定保证金/空仓张数/面值
当用户触发强平后,系统强平引擎以破产价格接管平仓,产生的平仓盈余会注入风险准备金。
当用户触发强平后,如果产生穿仓损失则优先从风险准备金中抵扣,如果无法完全抵扣,则由当日所有净盈利用户参与分摊。
标记价格:标记价格=现货指数价格+基差移动平均值
基差移动平均值:基差移动平均值=移动平均值(合约中间价 - 现货指数价格)=移动平均值
((合约卖一价 + 合约买一价)/2 - 现货指数价格)
未实现盈亏计算
多仓:未实现盈亏=面值张数/开仓均价-面值张数/最新标记价格
空仓:未实现盈亏=面值张数/最新标记价格-面值张数/开仓均价
永续合约于每日香港时间16:00结算,结算价为当时的最新标记价格
平均价格= 合约面值 * ( 原持仓数 + 新开仓数 ) / ( 合约面值 * 原持仓数 / 原持仓均价 + 合约面值 * 新开仓数 / 新开仓成交均价 )
新开仓成交均价 = 合约面值 * 新开仓数 / ( 合约面值 * 成交价格1的合约数 / 成交价格1 + 合约面值 * 成交价格2的合约数 / 成交价格2 + … )
新开仓数 = 成交价格1的合约数 + 成交价格2的合约数 + …
保证金
全仓模式:开仓保证金=面值*张数/最新标记价格/杠杆,用户的开仓保证金将随价格变化而变动。
逐仓模式:开仓保证金=面值*张数/开仓均价/杠杆,开仓保证金固定不变。
保证金和杠杆的关系
所需保证金=仓位价值/所选杠杆倍数
初始保证金率:初始保证金率 = 1/杠杆倍数
维持保证金率:用户维持当前仓位所需的最低保证金率,当保证金率小于等于用户当前所需维持保证金率+平仓手续费率,即触发爆仓。
逐仓:保证金率=(固定保证金+未实现盈亏)/仓位价值,
仓位价值=面值张数/最新标记价格
全仓:保证金率=(余额+已实现盈亏+未实现盈亏)/(仓位价值+挂单冻结保证金杠杆倍数)
仓位价值 =面值*张数/最新标记价格
保证金率
逐仓:保证金率=(固定保证金+未实现盈亏)/仓位价值=(固定保证金+未实现盈亏)/(面值*张数/最新标记价格)
全仓:保证金率=(余额+已实现盈亏+未实现盈亏)/(仓位价值+挂单冻结保证金杠杆倍数)=(余额+已实现盈亏+未实现盈亏)/(面值张数/最新标记价格+挂单冻结保证金*杠杆倍数)持仓杠杆倍数调整
逐仓:开仓所需保证金=面值张数/(开仓均价杠杆);
全仓:开仓所需保证金=面值张数/(最新标记价格杠杆);
盈亏计算
合约已实现盈亏
买单方向:
合约已实现盈亏 = (合约面值 / 结算基准价 – 合约面值 / 平均平仓价格) * 平仓数量
例如某用户以结算基准价500 USD/BTC 买入开多2张BTC合约,然后以价格 1000 USD/BTC卖出平多1张合约,则合约已实现盈亏 = (100 / 500 - 100 / 1000) * 1 = 0.1 BTC。
卖单方向:
合约已实现盈亏 = (合约面值 / 平均平仓价格 - 合约面值 /结算基准价) * 平仓数量
例如某用户以结算基准价500 USD/BTC 卖出开空10张BTC合约,然后以价格 1000 USD/BTC买入平空8张合约,则合约已实现盈亏 = (100 / 1000 - 100 / 500) * 8 = - 0.8 BTC。
具体交流请加笔者。
页: [1]
查看完整版本: 博森ccg合约机器人:合约算法