欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 同一框架用vba设置不同周期的主图的显示时段有问题。

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4044人关注过本帖树形打印复制链接

主题:同一框架用vba设置不同周期的主图的显示时段有问题。

帅哥哟,离线,有人找我吗?
szwangwei88
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:61 积分:0 威望:0 精华:0 注册:2013/6/19 15:11:59
同一框架用vba设置不同周期的主图的显示时段有问题。  发帖心情 Post By:2014/4/2 16:17:22 [只看该作者]

我自建的框架,有两个主窗格,一个是1分钟k线,一个是日k线,先用vba设置1分钟主图的显示时段,正常,如下程序。然后再用同样方法设置日k线图的显示时段,但日k线不起作用,是为什么?
yGrid.ReInitDataFormula
MyGrid.LockTimeSect=1
MyGrid.LockTimeSectStart=StartTime
MyGrid.LockTimeSectEnd=EndTime
MyGrid.ReInitDataFormula
MyFrame.ReCalcAllGridFromula()

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2014/4/2 16:36:21 [只看该作者]

你全部代码发来我看看


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
szwangwei88
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:61 积分:0 威望:0 精华:0 注册:2013/6/19 15:11:59
  发帖心情 Post By:2014/4/2 16:49:29 [只看该作者]

dim MyFrame


Sub UserForm1_Initialize()
dim MyGrid
dim MyGrid1

if www.HasVisible=1 then
Set MyFrame=www
else Set MyFrame=Technic
end if

Set MyGrid=MyFrame.GetGridByName("Main")
'msgbox MyGrid.name
Set MyGrid1=MyFrame.GetGridByName("细")
'msgbox MyGrid1.name
UserForm1.Resizing=1
UserForm1.Move(MyGrid1.Width+MyGrid.Width-UserForm1.Width)
UserForm1_TextBox1.Text=""
UserForm1_TextBox2.Text=""
End Sub



Sub UserForm1_CommandButton1_Click()
dim TextTime

dim StartTime
dim StartTime1
dim NextDate
dim HistoryD 
dim MyGrid
dim MyGrid2
dim StartPos
dim EndTime
dim StartDay

Set MyGrid =MyFrame.GetGridByName("Main")



TextTime=UserForm1_TextBox1.Text

StartTime=CDate(TextTime)
If WeekDay(StartTime)=1 then
StartTime=StartTime-2
ElseIf WeekDay(StartTime)=7 then
StartTime=StartTime-1
End If
StartDay=StartTime
'msgbox starttime
EndTime=StartTime+ #15:15:00#
StartTime=StartTime+#09:16:00#

Set HistoryD = MyGrid.GetHistoryData()

MyGrid.LockTimeSect=0
MyGrid.ReInitDataFormula

StartPos=MyGrid.PosByDate(StartTime)
'msgbox startpos
StartTime1=MyGrid.DateByPos(StartPos)

If StartTime<>StartTime then
msgbox "无此日数据"
Exit Sub
end if 


MyGrid.ReInitDataFormula
MyGrid.LockTimeSect=1
'msgbox starttime
MyGrid.LockTimeSectStart=StartTime
MyGrid.LockTimeSectEnd=EndTime
MyGrid.ReInitDataFormula

MyFrame.ReCalcAllGridFromula()

EndTime=EndTime
UserForm1_TextBox1.Text= StartDay

If MyFrame.name="www" then
Set MyGrid2=MyFrame.GetGridByName("日线")
MyGrid2.LockTimeSect=1
StartTime=MyGrid2.PosByDate(StartDay)-50
StartTime=MyGrid2.DateByPos(StartTime)
MyGrid2.LockTimeSectStart=StartTime
MyGrid2.LockTimeSectEnd=StartDay
MyGrid2.ReInitDataFormula

MyFrame.ReCalcAllGridFromula()
End If


End Sub

 回到顶部
帅哥哟,离线,有人找我吗?
szwangwei88
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:61 积分:0 威望:0 精华:0 注册:2013/6/19 15:11:59
  发帖心情 Post By:2014/4/3 17:02:58 [只看该作者]

程序在贴出,等答复。

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2014/4/4 10:40:34 [只看该作者]

我们内部测试时用2个框架通过宏定义来刷新是正常的。

看你的代码,中间有很多过程和变量,怀疑你的代码出现了逻辑问题,建议你用Application.msgout函数,对你的代码做一下调试吧,看看日线刷新部分到底执行过去了没有



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
szwangwei88
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:61 积分:0 威望:0 精华:0 注册:2013/6/19 15:11:59
  发帖心情 Post By:2014/4/4 14:04:47 [只看该作者]

不是两个框架,是同一框架。

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2014/4/6 0:15:30 [只看该作者]

做了个简单的测试公式

 

Sub Test()
dim MyGrid1
dim myGrid2


Set MyGrid1 = Frame1.GetGridByName("Window1")
MyGrid1.LockTimeSect=1
MyGrid1.LockTimeSectStart="2014-3-27 09:20:00"
MyGrid1.LockTimeSectEnd="2014-3-27 15:10:00"
MyGrid1.ReInitDataFormula

Set MyGrid2 = Frame1.GetGridByName("Window2")
MyGrid2.LockTimeSect=1
MyGrid2.LockTimeSectStart="2014-3-27 09:20:00"
MyGrid2.LockTimeSectEnd="2014-3-27 15:10:00"
MyGrid2.ReInitDataFormula

 

End Sub

 

没发现你说的问题,建议你还是用调试手段多调试下你的代码吧



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
szwangwei88
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:61 积分:0 威望:0 精华:0 注册:2013/6/19 15:11:59
  发帖心情 Post By:2014/4/6 9:34:23 [只看该作者]

你的程序两个窗格的都是1分钟线,而我是用在一个是1分钟线,一个是日线。就是你这个程序第二个窗格的改成日线,对日线的控制就不行了。你可以再试下。

Sub Test()
dim MyGrid1
dim myGrid2


Set MyGrid1 = Frame1.GetGridByName("Main")
MyGrid1.LockTimeSect=1
MyGrid1.LockTimeSectStart="2014-3-27 09:20:00"
MyGrid1.LockTimeSectEnd="2014-3-27 15:10:00"
MyGrid1.ReInitDataFormula

Set MyGrid2 = Frame1.GetGridByName("日线")
MyGrid2.LockTimeSect=1
MyGrid2.LockTimeSectStart="2014-4-1"
MyGrid2.LockTimeSectEnd="2014-4-5"
MyGrid2.ReInitDataFormula

 

End Sub

 


 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2014/4/6 23:41:45 [只看该作者]

确实是有点问题,这个问题主要是之前你已经在1分钟周期上做过时段限定导致的,我们会再下个升级版修正该问题


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部