交易手数的计算方法

[复制链接]
查看660 | 回复4 | 张孟珂 | 2020-5-30 19:12:05 | 显示全部楼层 |阅读模式
我们在研究交易模型时,定义好开平仓条件后,就是开平仓的手数计算。

手数计算公式
FUND:=10000000; //定义初始资金
LOTS:=INTPART(FUND*0.4/(CLOSE*MARGIN*UNIT+FEE));// 计算开仓手数

在上述计算公式中,每一根k线上的收盘价是会对计算出来的手数有所影响,那就是说会影响到开平仓的手数,出现仓位并不能完全平掉的情况,具体测试内容我们在下面楼层中详细说明。

回复

使用道具 举报

张孟珂 | 2020-5-30 19:19:37 | 显示全部楼层
我们今天的测试结果是基于MACD指标在上证指数的。测试内容有:

1)  测试一条件:MACD金叉,买入;死叉卖出;开平仓的手数直接使用LOTS;
2)  测试二条件:MACD金叉,买入;死叉卖出;开平仓的手数使用LOTS、BKVOL、SKVOL去定义的中间变量;
回复

使用道具 举报

张孟珂 | 2020-5-30 19:20:23 | 显示全部楼层
一、测试内容说明
1)  测试一条件:MACD金叉,买入;死叉卖出;开平仓的手数直接使用LOTS;

测试代码
DIFF : EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);// 短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA  : EMA(DIFF,M);// DIFF的M个周期指数平滑移动平均
2*(DIFF-DEA),COLORSTICK;// DIFF减DEA的2倍画柱状线
//仓位计算
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.4/(C*MARGIN*UNIT+FEE));// 计算开仓手数
CROSSUP(DIFF,DEA),BPK(LOTS);//做多信号
CROSSDOWN(DIFF,DEA),SPK(LOTS);//做空信号

【交易明细说明】

交易手数A.png

2)  测试二条件:MACD金叉,买入;死叉卖出;开平仓的手数使用LOTS、BKVOL、SKVOL去定义的中间变量;

测试代码
DIFF : EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);// 短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA  : EMA(DIFF,M);// DIFF的M个周期指数平滑移动平均
2*(DIFF-DEA),COLORSTICK;// DIFF减DEA的2倍画柱状线
//仓位计算
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.4/(C*MARGIN*UNIT+FEE));// 计算开仓手数
//手数计算
// 1、设置一个头寸值,头寸是LOTS和BKVOL之间取最大值,或者在LOTS和SKVOL取最大值;
// BKTC:在LOTS和SKVOL之间取最大值;
BKTC : MAX(LOTS, SKVOL);//反手做多的手数
// SKTC:在LOTS和BKVOL之间取最大值;
SKTC : MAX(LOTS, BKVOL);//反手做空的手数
CROSSUP(DIFF,DEA),BPK(BKTC);//做多信号
CROSSDOWN(DIFF,DEA),SPK(SKTC);//做空信号

【交易明细说明】
交易手数B.png


【测试一、测试二对比】

交易手数-测试对比.png

二、测试小结
1、从测试一的测试报告中可以看出来,指令个数和信号格式是350次,但是交易次数只有59次,很明显是不正常的;从交易明细中可以看出来,平仓手数是和开仓手数是不相等的;
2、我们改变手数计算方法后,测试二报告中的交易次数有175次,同时交易明细中开仓手数和平仓手数都是相等的;因此在后面的模型研究中均可以使用测试二中的手数计算方法。

回复

使用道具 举报

西瓜 | 2020-6-1 23:47:24 | 显示全部楼层
// 1、设置一个头寸值,头寸是LOTS和BKVOL之间取最大值,或者在LOTS和SKVOL取最大值;
// BKTC:在LOTS和SKVOL之间取最大值;
BKTC : MAX(LOTS, SKVOL);//反手做多的手数
// SKTC:在LOTS和BKVOL之间取最大值;
SKTC : MAX(LOTS, BKVOL);//反手做空的手数
CROSSUP(DIFF,DEA),BPK(BKTC);//做多信号
CROSSDOWN(DIFF,DEA),SPK(SKTC);//做空信


这里的逻辑理能说说吗?
回复

使用道具 举报

张孟珂 | 2020-6-2 09:47:58 | 显示全部楼层
1、先说明:在LOTS 的计算公式中,用到了当根k线上的收盘价,所以LOTS 这个值是在不停变化的,如果首次开仓100手,持仓量就是100手;但是在反手条件触发时,你反手时计算出来的LOTS 值要比实际持仓量BKVOL 或者SKVOL 大或者小;
2、因此我们先设置一个中间变量 BKTC / SKTC;
3、如果现在是持多头仓位,那SKTC 就在LOTS 和BKVOL 两个值中间取最大值,这个最大值就是我们要反手做空或者平掉的仓位,否则会有仓位没有全部平掉。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

媒体报道
如何抄在针尖上?
刘昱妗如何抄在针尖上?
如果有办法能让你抄在针尖上,你想不想学? 不需要复杂的指标,也不需要高深的技术,
交易模型测试库
宇晨交易模型测试库
目录 1.MACD日线 2.海6日线3.海龟S1日线 4.海龟S2日线
关于调delta的研究
刘昱妗关于调delta的研究
调备兑时间点 早晨9点,下午14:30,晚上21点 12.9 夜盘调delta 纸浆成交量为0 delta
文华各分区测试
宇晨文华各分区测试
////一楼////
test1
admintest1
test1
test1
admintest1
test1
交易SOP
刘昱妗交易SOP
日常任务及流程【金山文档 | WPS云文档】 交易sop https://www.kdocs.cn/l/cvXFT8HZDO
2025.12.1宽论解盘日报
dudu2025.12.1宽论解盘日报
大家好,欢迎来到宽论解盘。今天我们来用宽论的角度,一起解读上证指数近期的走势和
相关课程推荐
如何抄在针尖上?
如果有办法能让你抄在针尖上,你想不想学? 不需要复杂的指标,也不需要高深的技术,只要死磕这招盈亏比极
交易模型测试库
目录 1.MACD日线 2.海6日线3.海龟S1日线 4.海龟S2日线
关于调delta的研究
调备兑时间点 早晨9点,下午14:30,晚上21点 12.9 夜盘调delta 纸浆成交量为0 delta极小 此时期权的delta

43

主题

235

帖子

799

积分

宽论高级会员

Rank: 4

积分
799
  • 官方论坛

    提供最新 Discuz! 产品新闻、软件下载与技术交流