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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 求教:会不会出现通过Formula的GetBufData不准的情况

   

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


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

主题:求教:会不会出现通过Formula的GetBufData不准的情况

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


加好友 发短信
等级:新手上路 帖子:93 积分:440 威望:0 精华:0 注册:2012/10/31 22:13:12
求教:会不会出现通过Formula的GetBufData不准的情况  发帖心情 Post By:2013/1/2 23:55:21 [只看该作者]

最近在尝试用Stkindi应用自定义公式,然后通过GetBufData获取对应的信号。但是出现了一个很奇怪的问题。在应用一个简单公式的时候,获取的信号都是准确的,但是应用一个复杂的公式的时候,获取的信号就不准确。目前我正在排查原因。虽然理论上GetBufData应该没问题,但我想问有没有人发现过类似的问题?还有就是是否使用中需要注意什么问题?

还有一个问题,就是前面版主曾经告诉我过,如果需要获取信号需要用新的交易信号Buy Sell等,但我发现有说明文当说这个只能用于逐K线模式下,这就会导致公式运行效率很低。不知道金字塔在开发中为啥这么考虑,而不支持序列模式呢?
我还发现Stkindi得到的Formula是内存中的,跟通过界面获得的HistoryData没有对应关系,导致在GetBufData是,对应的Index不能参考图上的位置信息。我在想是否可以通过History的SaveData来修改界面的HistoryData,来使其一致,然后再做处理是否简单一些?

问的比较杂,期望高手的解惑,万分感谢。


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


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

不会出现不准的问题,出现问题后,用户应该首先先自己反思一下问题,而不是马山想到是别人的问题。

 

Stkindi得到的Formula是与界面上的没有关系的,如果你需要取到跟界面上一致的公式信息,应该使用下面的处理方法:

 

示例:

Sub Test()
'该示例将把技术分析主图上的MA指标前两条线输出到EXCEL中,使用前请注意将K线主图打开,并显示MA指标
' 得到框架名称为"Technic",窗格名称为"Main"的窗格对象

Set Grid = Technic.GetGridByName("Main")
Set Formula = Grid.GetFormulaByIndex(1)

'创建EXCEL对象
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.Workbooks.Add

'循环遍历得到公式线
for i = 0 to Formula.DataSize-1
'将两条数据线插入到EXCEL第一、二列
objExcel.Cells(i+1,1).Value =Formula.GetBufData("MA1",i)
objExcel.Cells(i+1,2).Value =Formula.GetBufData("MA2",i)
objExcel.Cells(i+1,3).Value =Formula.GetBufDateData(i)
next

End Sub



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

金字塔-技术部

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

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

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


加好友 发短信
等级:新手上路 帖子:93 积分:440 威望:0 精华:0 注册:2012/10/31 22:13:12
  发帖心情 Post By:2013/1/3 2:53:18 [只看该作者]

 您说的很对,目前我主要也怀疑自定义公式和程序的问题。只是忽然想到这一点,会不会公式中公式线数据过多导致其获取有问题,所以冒昧的上来问了这一句。实在抱歉。
我看了您给出的方法获得一致的公式数据的方法,但这种方式无法修改公式的参数吧?有没有既可以一致又能灵活修改参数的方法呢?类似于Stkindi 的方式?或者有没有途径可以通过VBS修改界面上的公式的参数呢?
还有就是BUY SELL是否确实只能在逐K线模式下运行?
多谢您的指导。


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


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

SetParameter 方法

重设公式指标参数

SetParameter (Parameter)

Parameter        字符串格式的参数,按公式设计的参数顺序传递,每个参数用逗号分割

例如:

' 得到框架名称为"Technic",窗格名称为"Main"的窗格对象
Set Grid = Technic.GetGridByName("Main")
Set Formula = Grid.GetFormulaByIndex(1)

Formula.SetParameter("6,23,50") '将技术分析图表的MA均线公式的参数改掉
Grid.ReInitDataFormula



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

金字塔-技术部

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

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

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


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2013/1/3 10:11:59 [只看该作者]

受益良多,我以前是用全局变量来给参数赋值的,显然没有楼上的方法好。

 

从我使用stkindi方法的情况看,不会出现信号取不到的问题,建议楼主先在公式中使用显示变量值的方式,直观看看要取的值是否正确显示。

另外,需要本地有该合约的数据才可以的,如果没有,在技术分析图上打开一次该合约就可以了。

 


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


加好友 发短信
等级:新手上路 帖子:93 积分:440 威望:0 精华:0 注册:2012/10/31 22:13:12
  发帖心情 Post By:2013/1/3 22:02:46 [只看该作者]

感谢王锋版主和guotx2010版主,你们的热情帮助让我受益良多。我对自己运用金字塔越来越有信心了,多谢多谢。图片点击可在新窗口打开查看

 回到顶部