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

用Vba写的一个模拟K线功能,大家可以参考一下: [金字塔]

  • 咨询内容:

    最终效果:


    此主题相关图片如下:模拟k线:.jpg

     

    源文件下载:

    http://www.weistock.com/bbs/UploadFile/2010-4/20104215214327834.rar

     

    安装及使用说明:

    1,下载文件,并解压。

    2,首先,按Shift+W打开“管理面板”,在下方的选项卡选择“高级”,这是,你能看到,金字塔VBA的管理窗口,在“框架”栏目上点击右键,选择“导入”,然后根据提示,导入:下载并解压后的文件中的,框架文件,即:UserFrome6.Fme;在“窗体”栏目上点击右键,选择“导入”,然后根据提示导入:下载并解压后的文件中的,窗体文件,即:UserForm2.frm。

    3,在“模块”栏目上,随便打开一个文件,添加以下代码:

    Sub xMnkx()

    UserForm2.Show()

    End Sub

    4,按功能键的快捷键“6”,调用框架,然后按ALT+F8,调用宏,在宏名中输入:xMnkx,即可。。。

     

     代码如下:

    '----------------------------------------------------------------------------
    '窗体载入时,设置窗体属性
    Sub UserForm2_Load()
    '指定一个自定义的图标
    userForm2.SetTitileIcon("MyFile\Icon\yinwu.ICO")
    userForm2.SetDefaultTabOrder()
    End Sub
    '设置控件属性
    UserForm2_TextBox1.TabIndex=0
    UserForm2_TextBox2.TabIndex=1
    UserForm2_TextBox3.TabIndex=2
    UserForm2_TextBox4.TabIndex=3
    UserForm2_CommandButton1.TabIndex=4
    UserForm2_CommandButton2.TabIndex=5
    UserForm2_CommandButton3.TabIndex=6
    '窗口打开时、默认焦点位置
    UserForm2_TextBox1.SetFocus

    '----------------------------------------------------------------------------
    '插入K线
    Sub UserForm2_CommandButton1_Click()
    '验证TextBox中的数据
    IF UserForm2_TextBox1.Text="" Or Not IsNumeric(UserForm2_TextBox1.Text) Then
    MsgBox "请输入正确的 |开盘价| 数值。。。"
    UserForm2_TextBox1.SetFocus
    Exit Sub
    End If
    '对用户输入的内容进行验证,防止输入非法数据
    IF UserForm2_TextBox2.Text="" Or Not IsNumeric(UserForm2_TextBox2.Text) Then
    MsgBox "请输入正确的 |最高价| 数值。。。"
    UserForm2_TextBox2.SetFocus
    Exit Sub
    End If
    '对用户输入的内容进行验证,防止输入非法数据
    IF UserForm2_TextBox3.Text="" Or Not IsNumeric(UserForm2_TextBox3.Text) Then
    MsgBox "请输入正确的 |最低价| 数值。。。"
    UserForm2_TextBox3.SetFocus
    Exit Sub
    End If

    '对用户输入的内容进行验证,防止输入非法数据
    IF UserForm2_TextBox4.Text="" Or Not IsNumeric(UserForm2_TextBox4.Text) Then
    MsgBox "请输入正确的 |收盘价| 数值。。。"
    UserForm2_TextBox4.SetFocus
    Exit Sub
    End If
    '获得框架中的历史数据
    Set Grid_6=UserFrame6.GetGridByName("Main")
    Set HistoryData_6=Grid_6.GetHistoryData()
    HistoryData_6.InsertAt(HistoryData_6.Count)
    '开盘价
    HistoryData_6.Open(HistoryData_6.Count-1)=Cint(UserForm2_TextBox1.Text)
    '最高价
    HistoryData_6.High(HistoryData_6.Count-1)=Cint(UserForm2_TextBox2.Text)
    '收盘价
    HistoryData_6.Low(HistoryData_6.Count-1)=Cint(UserForm2_TextBox3.Text)
    '最低价
    HistoryData_6.Close(HistoryData_6.Count-1)=Cint(UserForm2_TextBox4.Text)
    '重新计算框架内的所有公式数据、刷新框架
    UserFrame6.ReCalcAllGridFromula()
    UserFrame6.Refresh()
    End Sub
    '----------------------------------------------------------------------------
    '删除K线
    Sub UserForm2_CommandButton2_Click()
    Set Grid_6=UserFrame6.GetGridByName("Main")
    Set HistoryData_6=Grid_6.GetHistoryData()
    HistoryData_6.RemoveAt(HistoryData_6.Count)
    '重新计算框架内的所有公式数据、刷新框架
    UserFrame6.ReCalcAllGridFromula()
    UserFrame6.Refresh()
    End Sub
    '关闭窗口
    Sub UserForm2_CommandButton3_Click()
    UserForm2.EndForm
    End Sub

     

  • 金字塔客服: 丁页 三少发

     

  • 用户回复: 1.972已经不用新建宏了,ALT+F8已经可以在宏列表执行窗体了

     

  • 网友回复: 不错啊,现在看到了,VBA编写交易程序,很不错的,好处很多,大家慢慢体验啊。。。

     

  • 网友回复: 谢谢高手分享,目前vba什么都不懂呵呵

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 1145508240  有需要帮忙请点击这里留言!!!进行 有偿 编写!不贵!点击查看价格!


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

相关文章

    没有相关内容