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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 请问这是什么错误啊。搞了几天了

   

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


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

主题:请问这是什么错误啊。搞了几天了

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


加好友 发短信
等级:新手上路 帖子:12 积分:85 威望:0 精华:0 注册:2012/7/4 19:41:38
请问这是什么错误啊。搞了几天了  发帖心情 Post By:2012/7/4 21:03:35 [只看该作者]

公式

 

runmode:1;
rq:PEAKBARS(4,5,1);
tmp:readtest(rq),linethick0; 

 

 

函数

Function readtest(Formula,M)
    '系统会在逐K线模式解释公式时的每个周期都会调用此函数一遍,因此设计时应该注重程序的执行效率,不要重复的执行一些没必要的代码
    readtest=0
 tttt =  document.GetPrivateProfileInt("aa", M,0 , "C:\1.ini")

End Function

 

 

 

1.ini 内容

 

[aa]
0=0
1=2
2=4
3=6

 

 

错误提示:

编译器错误 13

类型不匹配:document.getprivateprofileint

 

请问哪里写错了。谢谢


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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2012/7/4 23:55:41 [只看该作者]

在序列模式下,传输的变量应该注意要区分是序列变量还是单值变量。如果是序列变量,那么传递给VBS自定义函数中的参数就是个数组,你这种调用方式自然是有问题的。应该使用数组的方式读取。

 

Function readtest(Formula,M)
    '系统会在逐K线模式解释公式时的每个周期都会调用此函数一遍,因此设计时应该注重程序的执行效率,不要重复的执行一些没必要的代码
    
   DataCount = UBound(M)
    If DataCount <> Formula.DataSize-1 Then
        Exit Function
    End If

 

'定义一个计算返回的数组
    Dim ResultMa
    Redim ResultMa(DataCount)

    For i = 0 To Formula.DataSize-1

      ResultMa(i) =  document.GetPrivateProfileInt("aa", M(i),0 , "C:\1.ini")
    NEXT

   readtest=ResultMa
 
End Function


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


加好友 发短信
等级:新手上路 帖子:12 积分:85 威望:0 精华:0 注册:2012/7/4 19:41:38
  发帖心情 Post By:2012/7/5 7:30:34 [只看该作者]

谢谢管理员耐心答复。

 

公式:

runmode:1;
m:PEAKBARS(4,5,1),linethick0;
tmp:readtest(m),linethick0;

 

自定义函数:

Function readtest(Formula,M)
    '系统会在逐K线模式解释公式时的每个周期都会调用此函数一遍,因此设计时应该注重程序的执行效率,不要重复的执行一些没必要的代码
    DataCount = UBound(M)
    If DataCount <> Forula.DataSize-1 Then
        Exit Function
    End If

'定义一个计算返回的数组
    Dim ResultMa
    Redim ResultMa(DataCount)
    For i = 0 To Formula.DataSize-1
      ResultMa(i) =  document.GetPrivateProfileInt("aa", M(i),0 , "C:\1.ini")
    NEXT
    readtest=ResultMa
End Function

 

 

提示错误:

编译器错误 ‘424’

缺少对象 'forula'


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


加好友 发短信
等级:金字塔养老院 帖子:509 积分:2425 威望:0 精华:0 注册:2012/3/2 12:50:05
  发帖心情 Post By:2012/7/5 8:53:54 [只看该作者]

楼主笔误了 If DataCount <> Forula.DataSize-1 Then里的Forula改成Formula

 回到顶部