以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  用Vba写的一个模拟K线功能,大家可以参考一下:  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=1331)

--  作者:dzfp2010
--  发布时间:2010/4/2 15:34:27
--  用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


--  作者:雷镇子
--  发布时间:2010/4/2 15:42:13
--  
丁页 三少发
--  作者:admin
--  发布时间:2010/4/2 16:44:24
--  
1.972已经不用新建宏了,ALT+F8已经可以在宏列表执行窗体了
--  作者:dzfp2010
--  发布时间:2010/4/2 17:57:56
--  
不错啊,现在看到了,VBA编写交易程序,很不错的,好处很多,大家慢慢体验啊。。。
--  作者:winewine99
--  发布时间:2010/5/7 22:53:16
--  谢谢高手分享
谢谢高手分享,目前vba什么都不懂呵呵
--  作者:guotie
--  发布时间:2010/5/8 9:16:17
--  
谢谢高手分享
--  作者:guotie
--  发布时间:2010/5/8 9:41:00
--  
按功能键的快捷键“6”,调用框架,这一步怎么操作的?
--  作者:msedu
--  发布时间:2010/5/15 16:29:12
--  
按“6”,实际上是,设置的调用这个“框架”的快捷键。。。
--  作者:TANGGGG
--  发布时间:2011/3/5 20:53:54
--  
图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看
--  作者:cnmfy
--  发布时间:2013/9/25 9:50:56
--  

好人,这个必须顶起来啊

不胜感激