代码二,是一次行的运行,想通过运用代码一修改一下代码二,使之达到实时刷新的效果
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
设定定时器后,只有在添加
Sub APPLICATION_Timer(ID)
End Sub
这个过程处理事件后,才行。
这个我知道的。但是,每次运行,都是重头计算一遍。我是说如何把代码二的思路改成实时刷新的。我自己写的代码二,但我改不过来,可能是思维没有变化过来。
我想,如果把那个循环去掉,那我靠循环过来的变量怎么处理呢。所以我一时间我处理不过来了。
要是谁能改成分笔图上的技术指标也可以。我想了很久。没有尝试成功!