以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  帮修改下事件触发  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=96756)

--  作者:黄金精算师
--  发布时间:2016/4/26 21:15:45
--  帮修改下事件触发
你好,我原来用的按键事件触发换成钩选的事件解发,无法触发,帮修正下可以吗
-------------------------按键的代码,这是正常的----------------
Sub bk_CommandButton4_Click()
if bk_CommandButton4.Caption="运行中" then
iRun=0 \'暂停
bk_CommandButton4.Caption="暂停中"
bk_CommandButton4.backcolor=rgb(255,0,0)
else
iRun=1 \'运行
bk_CommandButton4.Caption="运行中"
bk_CommandButton4.backcolor=rgb(0,255,0)
end if
End Sub

----------------------------换成钩选的代码,不能正常------------
Sub bk_CheckBox1_Activate() \'这个钩选的属性名字为CheckBox1
if bk_CheckBox1.Caption="运行中" then
\' if bk_CommandButton4.Caption="运行中" then
iRun=0 \'暂停
bk_CheckBox1.Caption="暂停中"
else
iRun=1 \'运行
bk_CheckBox1.Caption="运行中"
end if
End Sub



--  作者:黄金精算师
--  发布时间:2016/4/26 21:41:34
--  
这样写也不行,应该事件没有触发   iRun=置1,只要  iRun=置1程序就会运行

两个都写iRun=1                   iRun=1是开的标志
Sub bk_CheckBox1_Activate() \'
if bk_CheckBox1.Checked = True then
\'       CheckBox1.Checked = True 表示选中
iRun=1 \'暂停
else
iRun=1 \'运行
        \' bk_CheckBox1.Checked = False表示关
end if
End Sub
那个窗体小方块打钩了

--  作者:黄金精算师
--  发布时间:2016/4/26 21:47:56
--  [贴
图片
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20160426214746.jpg
图片点击可在新窗口打开查看


--  作者:yukizzc
--  发布时间:2016/4/27 9:24:31
--  
CheckBox1_Click()
--  作者:黄金精算师
--  发布时间:2016/4/27 10:42:35
--  
成了,谢谢,谢谢
--  作者:黄金精算师
--  发布时间:2016/4/28 11:17:29
--  
这一句的意思可以帮解释一下吗,Set Formula = marketdata.STKINDI(sCode,sMarket,sPolicyName,0,iPeriod)   \'取策略
我的VBA在运行后,图表策略就好像失控了,完全不受图表的控制而受VBA单独控制
olicyName="图表策略"
iPeriod=0
Set Formula = marketdata.STKINDI(sCode,sMarket,sPolicyName,0,iPeriod)   \'取策略
\'0 1分钟 1 5分钟 2 15分钟 3 30分钟 4 60分钟 5日线 6周线 7月线 8年线 9多日线 10分笔成交
\'11多小时线 12多秒线 13多分钟线 14季度线 15半年线 16节气线 17 3分钟 18 10分钟 19 多笔线
iFlag=Formula.GetBufData("Flag",Formula.DataSize-1)
nFlagPrice=Formula.GetBufData("FlagPrice",Formula.DataSize-1)
iBars=Formula.GetBufData("Bars",Formula.DataSize-1)
\' iFlag=1        \'图表策略持仓         如果在这VBA里强行写开平是可以改变结果                 
          这个图表持仓完全在运行后无法控制VBA,所执行的就是VBA策略运行的图表策略1分钟策略(0)
          如果要图表策略中强行写一个空仓,怎么写可以改变呀(或VBA单独去读一个变量也行,告知一下这个变量怎么在VBA里读)

--  作者:yukizzc
--  发布时间:2016/4/28 11:27:52
--  

这个取得就是图表策略里的返回值,不了解您的具体需求

你这个取值全是图表策略这个计算结果,本来就不是你vba自己去控制,你如果要自己控制就自己写变量咯

比如

fll = 1  这样吗


--  作者:黄金精算师
--  发布时间:2016/4/28 11:43:40
--  
1、取得策略的返回值,但是我的策略在别的图表行情下运行,完全与当前的那个不同,但是他还是只执行最初那个IF05,就是VBA里写的这个,按理不是只开平这个合约按图表开平指示吗
     如原策略为IF05   1 分钟,当前策略为做多;
          我硬把策略运行于一个商品是做空的,按理策略结果要变,可是VBA还是只执行IF05的那个,不再管后面图表开不开,就算关了,一样的运行IF05

2、读取图表
    如果我的图表里写有    KKK:=1       //一会让VBA取
                              这VBA取这值怎么写

--  作者:yukizzc
--  发布时间:2016/4/28 13:10:14
--  

sCode根据你这边传参的品种代码来决定的,这个其实就和你pel里面的stkindi一样跨品种跨周期调用

你策略里有输出kkk这个变量值就可以了,Formula.GetBufData("KKK",Formula.DataSize-1)


--  作者:黄金精算师
--  发布时间:2016/4/28 15:53:41
--  
谢谢,可以读到了

图表的这个数据一开电脑就有了,有什么办法检查图表策略有没有运行的指令,我用写入数据的方式去识别他

VBA写入数据怎么写
如把0写入到KKK中