欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 模拟K线下记录开平仓,并计算盈亏

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有11226人关注过本帖树形打印复制链接

主题:模拟K线下记录开平仓,并计算盈亏

帅哥哟,离线,有人找我吗?
guotx2010
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
模拟K线下记录开平仓,并计算盈亏  发帖心情 Post By:2011/8/28 10:31:44 [只看该作者]

本程序可以将模拟k线模式下的开平仓信号输出到Excel,并计算逐笔交易的盈亏情况,对于想快速测试自己的模型能不能赚钱的朋友,可以使用这个程序来做盘后的分析。

程序中用到的知识点:

1、策略中的信号写到全局变量

2、VBA后台监控全局变量的值,当开平仓条件成立时,读出全局变量的值

3、将全局变量的值写到Excel,开仓时记录新行,平仓时,寻找对应的开仓记录,并计算本次交易的盈亏。

 

程序下载地址:http://www.weistock.com/download/testK.rar
 

安装说明:1、下载后,解压缩到d:\          2、在金字塔中导入MdMoni.bas文件

使用说明:  1、启动VBA,系统就会自定打开d:\test.xls文件,不要关闭

               2、打开技术分析,选中测试公式

               3、在工具菜单,打开模拟K线模式,选择好开始日期,启动模拟K线

               4、切换到Excel,信号出现时,观察是否写到Excel了。

图片点击可在新窗口打开查看


[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
guotx2010
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2011/8/30 12:25:03 [只看该作者]

补充说明:

1、程序中使用了定时器,时间间隔为1秒,所以,K线回放不能过快,过快可能会导致信号漏掉的情况。

2、现在程序中的品种指定了是IF09,如果,需要测试别的品种,可以将程序中的Code和Market两个变量修改成你要监控的品种代码和市场代码。

 

同时,在此征集不通过定时器,也能实现此功能的方案,毕竟使用定时器太耗资源,效率不高。

 


 回到顶部
帅哥哟,离线,有人找我吗?
rogerhylt
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:86 积分:572 威望:0 精华:0 注册:2010/4/5 17:26:37
  发帖心情 Post By:2011/10/22 11:58:27 [只看该作者]

这个在实盘中 是否也可以应用?


 回到顶部
帅哥哟,离线,有人找我吗?
guotx2010
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2011/10/22 15:06:17 [只看该作者]

实盘也可以应用,思路差不多,只是开仓价可能需要用市价才更容易成交。

如果只想记录逐笔成交情况,则需要将成交写Excel的代码放到Order_OrderStatusEx过程中。

可以参看我另一个帖子哦。

http://www.weistock.com/bbs/dispbbs.asp?boardid=9&Id=7831

 

 

[此贴子已经被作者于2011-10-22 15:09:36编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
rogerhylt
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:86 积分:572 威望:0 精华:0 注册:2010/4/5 17:26:37
  发帖心情 Post By:2011/10/22 18:45:10 [只看该作者]

   那个帖子也拜读了,真的不错 。我只想记录逐笔成交情况 就像版主那个自动交易所做的那样,

能否把你那个帖子所用代码发一个学习学习。另外还有一个问题请教:这个记录的是是虚拟持仓呢

还是实际持仓?谢谢


 回到顶部
帅哥哟,离线,有人找我吗?
samyongq
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:51 积分:220 威望:0 精华:0 注册:2011/8/25 16:41:51
  发帖心情 Post By:2011/10/25 11:31:29 [只看该作者]

 楼主你好!我也看了链接中的帖子,不知楼主能否把“自动记录每笔交易到Excel的程序”在这里贴出来?让我等学习学习
或者给个大概的模版也行啊
谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
guotx2010
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2011/10/25 17:16:10 [只看该作者]

模拟K线下记录的当然是虚拟的开、平仓了。

将持仓信息写入到Excel并进行盈亏管理那个帖子记录的实际持仓,同时监控实时价格变化,进行止盈或止损交易。

 

逐笔记录写到Excel的大致思路如下:

1、在Application_VBAStart过程中打开Excel,这个的代码在《持仓信息写入到Excel并进行盈亏管理》一贴中有完整的代码

2、在Order_OrderStatusEX2过程中捕获Status="Filled"的记录,那就是成交记录,将这些数据传递到写Excel的过程

3、在写Excel主笔成交记录过程中,根据当前交易的开、平仓类型确定是否要写一行新记录:

    A)如果是开仓记录(Kaiping=0)就自动写一行新记录,当然,需要根据当前成交的账号分别写进不同的工作表;

    B)如如果是平仓记录(Kaiping=1),就寻找excel中已经写了开仓记录没有写平仓记录的行,将本次的成交价格写进去;

    C)并计算本次交易的手续费,加上开仓时的手续费,平仓盈亏-手续费就是本次交易的盈亏金额。

为了计算手续费,需要使用Order.ChargeByNum(Code,Market,Price,1,Aspect)函数,还需要取出本次交易的品种对应的合约乘数,

使用Order.Contract(sCode,sMarket,Multipliter,MinTick,ShortPercent,LongPercent)

    D)写动态权益,使用Order.Account2

4、收盘后自动进行求和,并写日汇总表。

 

[此贴子已经被作者于2011-10-25 17:35:12编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
dnt00193
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:52 积分:235 威望:0 精华:0 注册:2013/4/2 13:48:21
  发帖心情 Post By:2013/4/7 7:47:52 [只看该作者]

 顶该程序

 回到顶部
帅哥哟,离线,有人找我吗?
明心
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:274 积分:841 威望:0 精华:10 注册:2010/7/12 15:25:05
  发帖心情 Post By:2013/4/10 16:36:11 [只看该作者]

我有一个方法不用定时器,当满足条件的时候可以输出。直接Q我把。图片点击可在新窗口打开查看

 回到顶部