以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- 请教关于内置对象的理解 (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=85840) |
-- 作者:nscman -- 发布时间:2015/10/7 15:35:23 -- 请教关于内置对象的理解 请教关于内置对象的理解 <!--[if !supportLists]-->1.
<!--[endif]-->ReportData对象 <!--[if !supportLists]-->2.
<!--[endif]-->MinuteData对象 <!--[if !supportLists]-->3.
<!--[endif]-->Market对象 <!--[if !supportLists]-->4.
<!--[endif]-->Font对象 <!--[if !supportLists]-->5.
<!--[endif]-->Frame对象 <!--[if !supportLists]-->6.
<!--[endif]-->Form对象 <!--[if !supportLists]-->7.
<!--[endif]-->Application对象 <!--[if !supportLists]-->8.
<!--[endif]-->HistoryData对象 <!--[if !supportLists]-->9.
<!--[endif]-->Gird对象 <!--[if !supportLists]-->10.
<!--[endif]-->Formula对象 <!--[if !supportLists]-->11.
<!--[endif]-->MarketData对象 <!--[if !supportLists]-->12.
<!--[endif]-->Fun对象 <!--[if !supportLists]-->13.
<!--[endif]-->Document对象 <!--[if !supportLists]-->14.
<!--[endif]-->Menu对象 <!--[if !supportLists]-->15.
<!--[endif]-->Order对象 <!--[if !supportLists]-->16.
<!--[endif]-->Table对象 我的理解是分为三类: 一类是全局唯一对象,不需要定义也不需要指定,直接使用。如:Application对象。 二类是在设计界面定义,在代码里直接使用,如:Frame对象。 三类是不需要定义,但要指定对象。如:Grid对象,因为可以有多个,使用时需要指定是哪个对象。 那么请问: 1、上面分类正确吗?有没有其它情况? 2、每种分类还有哪些对象?如果能把16种对象归类,不胜感激。 3、第三类对象,使用时是直接用Grid等名称合适,还是用myGrid等名称合适?直接用Grid(代码示例里多半这样),不会造成冲突吗? 4、特别地:Order对象, MarketData 对象,Menu 对象, Fun对象,属于哪种情况?怎样使用? 谢谢赐教。 |
-- 作者:nscman -- 发布时间:2015/10/7 15:37:50 -- 请教关于内置对象的理解 请教关于内置对象的理解 1、ReportData对象 2、 MinuteData对象 3、Market对象 4、Font对象 5、Frame对象 6、 Form对象 7、Application对象 8、HistoryData对象 9、Gird对象 10、Formula对象 11、MarketData对象 12、Fun对象 13、 Document对象 14、Menu对象 15、Order对象 16、Table对象 我的理解是分为三类: 一类是全局唯一对象,不需要定义也不需要指定,直接使用。如:Application对象。 二类是在设计界面定义,在代码里直接使用,如:Frame对象。 三类是不需要定义,但要指定对象。如:Grid对象,因为可以有多个,使用时需要指定是哪个对象。 那么请问: 1、上面分类正确吗?有没有其它情况? 2、每种分类还有哪些对象?如果能把16种对象归类,不胜感激。 3、第三类对象,使用时是直接用Grid等名称合适,还是用myGrid等名称合适?直接用Grid(代码示例里多半这样),不会造成冲突吗? 4、特别地:Order对象, MarketData 对象,Menu 对象, Fun对象,属于哪种情况?怎样使用? 谢谢赐教。 |
-- 作者:王锋 -- 发布时间:2015/10/8 10:06:40 -- 1,理解正确 2,就这3种 3,建议使用myGrid这样的命名 4,属于第一种 |
-- 作者:nscman -- 发布时间:2015/10/8 15:31:41 -- 非常感谢 |
-- 作者:nscman -- 发布时间:2016/3/13 11:44:15 -- 请教:下面代码意图与结果严重不符,请老师指点 请教:下面代码意图与结果严重不符,请老师指点: 一、建立一个框架“myFrame”,有主K线图“KMain” 在“myFrame”的“myFrame_Paint()”事件中加载下面的“mainfunc1()”方法 二、代码如下: \'变量定义 public myGrid, myHistoryData Set myGrid = myFrame.GetGridByName("KMain") Set myHistoryData = myGrid.GetHistoryData() dim intCount,intPos public arrayLHigh(), arrayPels()'arrayLHigh是向上突破极限,arrayPels取K线在屏幕上位置 intCount=myGrid.DataCount redim arrayLHigh(intCount), arrayPels(intCount) \'函数设计意图:根据价格变化,画出相应的向上突破极限,便于看图时作出判断 Function MoveLimit2() MoveLimit2=0 for intPos=1 to intCount If intPos=1 Then arrayLHigh(intPos)=myHistoryData.High(intPos)*1.1 \'如果是第一根K线,突破极限设为此K线最高价1.1倍 ElseIf myHistoryData.high(intPos)<arrayLHigh(intPos-1) and myHistoryData.high(intPos)>myHistoryData.high(intPos-1) Then arrayLHigh(intPos)=arrayLHigh(intPos-1) \'如果当前最高价小于上一周期突破极限,且大于上一周期最高价,则此周期突破极限等于上一周期 Else arrayLHigh(intPos)=myHistoryData.High(intPos)*1.1 \'否则,突破极限设为此K线最高价1.1倍 End If arrayPels(intPos)=myGrid.PelsByPos(intPos) \'取X坐标 if(myGrid.PtInGrid( arrayPels(intPos), myHistoryData.High(intPos))) then myGrid.DrawLine arrayPels(intPos-1), arrayLHigh(intPos-1), arrayPels(intPos), arrayLHigh(intPos), vbRed, 2, 0 end if Next End Function Function mainfunc1() if myGrid.DataType<>1 then msgbox "当前窗口不是K线窗口,不宜进行分析,此功能退出!", "重要提示!" exit Function end if if myGrid.Type<>0 then msgbox "当前窗口不是主图窗口,不宜进行分析,此功能退出!", "重要提示!" exit Function end if msgbox "当前限高为:"& arrayLHigh(intCount) &vbNewLine _ &"当前X坐标为:"& arrayPels(intCount) &vbNewLine _ &"当前Y坐标为:"& myHistorydata.high(intPos) MoveLimit2 End Function 三、希望得到的结果是:向上突破极限随价格变动不断变化。 实际结果是:在图的最上面有一条线,与实际价格严重脱离。 不知道为什么,上不了图。 谢谢。
|