2.70K 浏览
0

本人qq578728 欢迎用天勤量化框架的一起交流学习

ssshouxufei=0
pc_dianshu=0
ssdianshu=0
sssy2=0
本地增加4个变量,思路:开新订单累计手续费,平仓统计盈亏点数pc_dianshu变量,累计平仓手续费,实时盈亏收益=((开仓价-现价)*手数 + 平仓盈亏点数)*合约单位(螺纹钢为例10元) 10元-累计手续费

最后再止盈的时候全部清0,循环统计即可。也可以不清0,一直本地统计

下面是双均线为例的代码,回测与单账户单策略回测结果基本相同,有很少的出入,可能与我重写下单函数有关
if position.pos_short > 0:
    if kc>0:
        sssy =leiji_sy+(kc - quote.last_price) * position.pos_short * 10
        ssdianshu=pc_dianshu+((kc - quote.last_price)*position.pos_short)

        sssy2=(ssdianshu*10)+ssshouxufei
if  position.pos_long > 0:
    if kc>0:
        sssy =leiji_sy+(quote.last_price-kc ) * position.pos_long * 10
        ssdianshu=pc_dianshu+((quote.last_price-kc ) * position.pos_long)
        sssy2=(ssdianshu*10)+ssshouxufei
if df8['ma10'].iat[-1] > df8['ma120'].iat[-1]:

    if position.pos_short > 0:
        pc = quote.last_price
        pc_dianshu=pc_dianshu+((kc - pc)*position.pos_short)
        ssshouxufei = ssshouxufei - (position.pos_short * 5)

        id = cover(1, position.pos_short)

    if position.pos_long == 0:

            id = buy(1, 1)
            bd_kc = df8['close'].iat[-1]
            kc = api.get_order(id)['limit_price']
            ssshouxufei=ssshouxufei-5
if df8['ma10'].iat[-1] < df8['ma120'].iat[-1] :

    if position.pos_long > 0:

        pc = quote.last_price
        pc_dianshu = pc_dianshu+((pc - kc)*position.pos_long)
        ssshouxufei = ssshouxufei - (position.pos_long * 5)

        id = sell(df8['close'].iat[-1], position.pos_long)
        # 获取平仓均价

        # 计算平仓盈亏  浮动盈亏=(当天的结算价 — 开仓价格)*合约单位*持仓量 — 手续费。

    if position.pos_short == 0:

            id = short(1, 1)
            bd_kc = df8['close'].iat[-1]
            kc = api.get_order(id)['limit_price']
            ssshouxufei=ssshouxufei-5
chengxiaohui321 编辑问题 2021年2月1日