以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  高级功能研发区  (http://222.73.7.161/bbs/list.asp?boardid=5)
----  [求助][原创]日内分笔交易实时化  (http://222.73.7.161/bbs/dispbbs.asp?boardid=5&id=3540)

--  作者:明心
--  发布时间:2010/10/28 17:10:14
--  [求助][原创]日内分笔交易实时化

代码二,是一次行的运行,想通过运用代码一修改一下代码二,使之达到实时刷新的效果

 

PS:我了解一点VBA,不太熟悉,交易思路就是代码二,但修改成实时的时候思路有点改不过来,希望高手赐教!

 

代码一

Sub APPLICATION_VBAStart()
 call Application.SetTimer(0,2000) \'创建一个0号定时器,间隔时间2秒
End Sub

 

 \'定时器事件处理
 Application.ActivateFrame "Technic" \'确保技术分析主框架处于激活状态

 

 

代码二

Sub dengjiaxian()
    \' 得到框架名称为"Technic",窗格名称为"Main"的窗格对象
    Set Grid = Technic.GetGridByName("Main")
    set minutedata = Grid.GetMinuteData
    Count =  minutedata.Count
    open = minutedata.newprice(0)
    mj1close = minutedata.newprice(0)
    mj2close = minutedata.newprice(0)
    j = 0
    k = 0
    m = 0
    dtyl = 0
    ktyl = 0
    qj = 10//这边需要根据不同的品种设置不同的参数,具体的可以根据每个人的需要

    for i = 1 to count-1
        close = minutedata.newprice(i)
        if close > open and close-open > qj then
           open = close
           if m = 0 then dtdbyk = 0 else dtdbyk = mj2close-close
           if m = 0-1 or m = 0 then
              mj1close = close
              dtyl = dtyl+dtdbyk
              application.MsgOut "第"&i+1&"笔"&" "&"多:"&" "&close&" "&"单笔盈利"&" "&" "&dtdbyk&" "& "当日空头累计盈利为:" &dtyl
              j = j+1
           end if
           m = 1
        elseif   close < open and open-close > qj then
           open = close
           if m = 0 then dtdbyk = 0 else ktdbyk = close - mj1close
           if m = 1 or m = 0 then
              mj2close = close
              ktyl = ktyl+ktdbyk
              application.MsgOut "第"&i+1&"笔"&" "&"空:"&" "&close&" "&"单笔盈利"&" "&" "&ktdbyk&" "&"当日多头累计盈利为:" &ktyl
              k = k+1
           end if
           m = 0-1
        end if
     next
     application.MsgOut Date &" " &Time&" "& "多头" &j& "次" &" "& "多头盈利" &ktyl& "点"&" "& "空头" &k& "次"&" "& "空头盈利" &dtyl& "点" &" "& "总计" &k+j& "次"&" "& "总盈利" &ktyl+dtyl& "点"
End Sub

[此贴子已经被作者于2010-10-28 17:11:30编辑过]

--  作者:admin
--  发布时间:2010/10/28 17:15:39
--  

设定定时器后,只有在添加

Sub APPLICATION_Timer(ID)

End Sub
这个过程处理事件后,才行。


--  作者:明心
--  发布时间:2010/10/28 17:22:43
--  

这个我知道的。但是,每次运行,都是重头计算一遍。我是说如何把代码二的思路改成实时刷新的。我自己写的代码二,但我改不过来,可能是思维没有变化过来。

 

我想,如果把那个循环去掉,那我靠循环过来的变量怎么处理呢。所以我一时间我处理不过来了。

[此贴子已经被作者于2010-10-28 17:24:12编辑过]

--  作者:明心
--  发布时间:2010/10/28 17:26:19
--  
存在字典或者数组里?????想的我头疼。
--  作者:明心
--  发布时间:2010/10/28 17:32:08
--  

要是谁能改成分笔图上的技术指标也可以。我想了很久。没有尝试成功!


--  作者:wattwei
--  发布时间:2010/10/28 21:00:05
--  
 加计数器,记录已处理的数据的位置。下次处理时从该位置开始执行