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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → [求助]请教金字塔的VBA窗体开发模式

   

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


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

主题:[求助]请教金字塔的VBA窗体开发模式

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


加好友 发短信
等级:新手上路 帖子:16 积分:100 威望:0 精华:0 注册:2011/11/8 21:38:44
[求助]请教金字塔的VBA窗体开发模式  发帖心情 Post By:2012/1/11 12:18:27 [只看该作者]

请教各位大牛,如何在金字塔系统下开发比较复杂的VBA窗体GUI来管理后台多线程算法。简单一点说就是单个策略,单个账户,但是后台算法是需要多线程来控制的。在这样的需求下,请问我应该如何使用金字塔来完成开发?

考古了一些论坛的帖子,发现有两个方法
第一
在金字塔框架下开发,因为我的捕捉交易信号的线程是依赖的金字塔的公式系统,希望能通过走金字塔来实现获取一些修改过的指标数据,不想通过VBA来实现指标的计算,怕影响效率。

第二
好像有金字塔人建议在VB模式下开发程序,然后以ActiveX DLL动态链接进来。但是不知道是怎么连接过来的(预警吗?),特别是在登陆账户通过金字塔设置好了(非VBA登陆账户,貌似不支持此功能)后,怎么将金字塔和我设计的VBA程序连接起来?我比较困惑。而且通过这种方法,还能访问金字塔内部的指标数据吗?

万分感谢有开发金字塔VBA的大牛给我一些建议和指导

CJ



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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/1/11 13:05:22 [只看该作者]

VBA不支持多线程,但是你可以通过定时器的方式,通过定义不同的定时器,来实现多线程方式的运行。

通过VBA来控制公式系统的运行,效率方式并不会得到提高,反而会下降,如果你是在不追求速度的情况,可以考虑使用STKINDI函数来控制公式的运行,取到计算结果后,用VBA再来下单,

 

示例
Set Formula = marketdata.STKINDI("if08","zj","ma(5,10,20,60)",0,0) '调用中金所IF08合约的1分钟的MA移动平均线指标,参数依次是5,10,20,60
mgbox Formula.GetBufData("ma3",924) '显示第925根k线上的MA3指标线数值



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
cj
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:16 积分:100 威望:0 精华:0 注册:2011/11/8 21:38:44
  发帖心情 Post By:2012/1/11 14:42:31 [只看该作者]

以下是引用王锋在2012-1-11 13:05:22的发言:

VBA不支持多线程,但是你可以通过定时器的方式,通过定义不同的定时器,来实现多线程方式的运行。


能否给个链接,举例来说明一下。


通过VBA来控制公式系统的运行,效率方式并不会得到提高,反而会下降,如果你是在不追求速度的情况,可以考虑使用STKINDI函数来控制公式的运行,取到计算结果后,用VBA再来下单,

 

示例
Set Formula = marketdata.STKINDI("if08","zj","ma(5,10,20,60)",0,0) '调用中金所IF08合约的1分钟的MA移动平均线指标,参数依次是5,10,20,60
mgbox Formula.GetBufData("ma3",924) '显示第925根k线上的MA3指标线数值


不知道怎么讲,我的信号只要求每1分钟(或者每5、15分钟)级别轮询一次,需要的数据也就是前一个K线的(high,low,close,open,一条我设定的MA数据,和一个我修改过的公式指标内的两个小指标数据) 就OK了, 然后发信号给我前台的GUI,GUI再根据上面一些按钮的设置,判断要不要开始委托,判断信号我希望在1到2秒就完了,因为委托到成交也需要2到3秒钟时间。委托也不是个简单开仓,而是分获利了结和开新仓的(两者内部逻辑不同),而且还要手动修改委托价格。开完新仓成交以后, 止损和止盈要马上开始运行,直到或者亏损退出或者盈利退出。根据我提供的需求,斑竹你觉得我应该如何设计比较合适?



[此贴子已经被作者于2012-1-11 14:44:20编辑过]

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/1/11 14:48:45 [只看该作者]

我觉得我给你的例子完全可以说明问题,目前明显你是对VBA一窍不通,建议你书店里买本VBA的书先自学一下,等开发时遇到实际问题再来发帖请教,或者我们帮你有偿进行开发



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
guotx2010
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

这个需求不需要多线程,使用定时器或者使用价格订阅方式就可以实现,公示系统提供信号,VBA根据信号来实现开平仓和止盈止损管理。

 


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


加好友 发短信
等级:论坛游侠 帖子:109 积分:360 威望:0 精华:0 注册:2011/7/9 18:05:33
  发帖心情 Post By:2012/1/11 23:58:04 [只看该作者]

以下是引用王锋在2012-1-11 13:05:22的发言:

VBA不支持多线程,但是你可以通过定时器的方式,通过定义不同的定时器,来实现多线程方式的运行。

通过VBA来控制公式系统的运行,效率方式并不会得到提高,反而会下降,如果你是在不追求速度的情况,可以考虑使用STKINDI函数来控制公式的运行,取到计算结果后,用VBA再来下单,

 

示例
Set Formula = marketdata.STKINDI("if08","zj","ma(5,10,20,60)",0,0) '调用中金所IF08合约的1分钟的MA移动平均线指标,参数依次是5,10,20,60
mgbox Formula.GetBufData("ma3",924) '显示第925根k线上的MA3指标线数值

VBA可以用于高频模式,难道用STKINDI的方式会降低速度吗?那如何在VBA中使用指标可以提高速度呢?


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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/1/12 10:26:59 [只看该作者]

使用VBA提高速度,在于你需要脱离指标的运行机制,全部算法都在VBA中实现



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
sxpms
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:109 积分:360 威望:0 精华:0 注册:2011/7/9 18:05:33
  发帖心情 Post By:2012/1/12 12:04:47 [只看该作者]

哦,我大概懂了,谢谢

 回到顶部