您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 其他期货软件知识>>正文内容

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

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

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

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

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

    CJ


     

  • 金字塔客服:

    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指标线数值

     

  • 用户回复: 以下是引用王锋在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编辑过]

     

  • 网友回复:

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

     

  • 网友回复:

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

     


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容