金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3151|回复: 3

你知道如何使用VBA读取等价K线的策略输出吗?

[复制链接]

11

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-6-3
曾用名:
发表于 2021-10-25 17:17 | 显示全部楼层 |阅读模式
我的群里经常有人问我,怎么使用等价K线进行程序化交易,如果使用图表策略交易,直接使用框架,窗格中使用等价k线,加载图表策略就可以实现。


问题是,你如果要进行精细化控制交易细节,比如,你要使用挂单交易,不成交,希望在N秒之内,价格超过你的挂单价M跳,就撤单,自动进行追单,那就无法使用图表策略直接下单了......


想要解决这个问题,使用VBA或Python进行后台程序化交易是必然选择,具体怎么做呢?


第一步,建立你自己的框架,要交易多少个品种就增加几个窗格,加载你交易的合约和策略到窗格,窗格的名字你最好修改为自己能记住的,后面的VBA代码中会用到,窗格上的k线,选择等价k线(这个很关键)
第二步,使用VBA打开框架,获取框架上共有多少个窗格,逐个获取窗格的合约代码、市场代码,下单是需要用到
第三步,判断窗格上有几个公式,使用Grid对象的GetFormulaByIndex()函数,逐个获取公式,得到Formula对象,判断是不是你用于交易的策略,如果是,就使用Formula对象的GetbufData方法获取公式的输出,比如获取策略的持仓信号、信号价格等。
第四步,有了合约、信号,剩下的就是写交易代码了,这个可以参考我以前发布的帖子。


代码示范:(假设框架名称为fraTest,有4个窗格,窗格名称分别为w1,w2,w3,w4,就是要交易4个合约
打开框架使用:Application.ActiveFrame("fraTest")

iCount=fraTest.GridCount     '获取框架fraTest有几个窗格
for i=0 to iCount-1    '逐个读取窗格上的合约及公式输出
    Set Grid=fraTest.GetGridByName("w" &i+1)
    Set Rep=Grid.GetReportData()      '获取窗格上的合约
    sCode=Rep.Label          '合约编码
    sMarket=Rep.MarketName    '市场编码
    nLastPrice=rep.NewPrice                        '获取最新价
    iFormulaCount=Grid.FormulaCount    ’获取窗格上的公式个数
    for j=0 to iFormulaCount-1               '逐个公式读取,判断是不是你用于交易的策略,是的话,就读取该公式的输出
        Set Formula=Grid.GetFormulaByIndex(j)    '这个关键的地方,获取Grid上的公式,得到公式对象

        if Formula.Name<>"MAIN" then     '一般不是MAIN,就是自己的策略,如果有多个策略加载在图表上,最好只保留一个
            iBar=round(Formula.GetBufData("iBar",Formula.DataSize-1),0)     '读取策略的变量输出iBar
            iFlag=Formula.GetBufData("Flag",Formula.DataSize-1)                 '读取策略的变量输出Flag
            '你自己的交易代码段,我就不写了,也无法写,每个人的想法都不一样  
        end if

    next
next
-------------------------------------------------------------------------------
希望能帮到你!想跟我学习VBA策略开发,可以加我wx:guotx-






回复

使用道具 举报

11

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-6-3
曾用名:
 楼主| 发表于 2021-11-6 22:14 | 显示全部楼层
第一行Application.ActiveFrame("fraTest"),前面需要加一个Call
回复

使用道具 举报

11

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-6-3
曾用名:
 楼主| 发表于 2022-7-23 09:53 | 显示全部楼层
在VBA中输出读取到的变量,看看是否正确,只要能读取到,后面的交易问题应该是可以搞定的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-8-18 01:44 , Processed in 0.089061 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表