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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 能帮忙写个函数吗?

   

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


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

主题:能帮忙写个函数吗?

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


加好友 发短信
等级:新手上路 帖子:12 积分:85 威望:0 精华:0 注册:2012/7/4 19:41:38
能帮忙写个函数吗?  发帖心情 Post By:2012/7/6 10:11:14 [只看该作者]

公式:

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

 

自定义函数:

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

 

 

1.ini 内容

 

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

===============================================

请问:

if 条件为真 then tag:=writetest(M,99); 中的writetest该如何写呢。也是序列转换吗?

 

 

Function writetest(Formula,m,value)

      tag = document.WritePrivateProfileInt("aa",m,value , "C:\1.ini")

End Function

以上我写的没成功。不能改1.ini中的数据。


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


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

前面的例子你是一点都没看懂啊



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

金字塔-技术部

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

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

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


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

帮个忙吧,我不是专业人士,今天白天向贵公司打长途电话就20多分钟,给解决一下吧。谢谢了

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


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

Function writetest(Formula,m,value)

    DataCount = UBound(M)
    If DataCount <> Formula.DataSize-1 Then
        Exit Function
    End If

 

    For i = 0 To Formula.DataSize-1
      document.WritePrivateProfileInt("aa", M(i),value , "C:\1.ini")
    NEXT
    readtest=0

End Function



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

金字塔-技术部

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

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

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


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

多谢版主。

 

 

 

 

 


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


加好友 发短信
等级:论坛游侠 帖子:332 积分:1295 威望:0 精华:0 注册:2011/4/19 2:02:59
  发帖心情 Post By:2012/7/9 2:01:12 [只看该作者]

以下是引用王锋在2012-7-7 21:20:45的发言:

Function writetest(Formula,m,value)

    DataCount = UBound(M)
    If DataCount <> Formula.DataSize-1 Then
        Exit Function
    End If

 

    For i = 0 To Formula.DataSize-1
      document.WritePrivateProfileInt("aa", M(i),value , "C:\1.ini")
    NEXT
    readtest=0

End Function

 

 

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

 

夜以继日地开发~~~~~这么晚还发贴!!!

这两个函数通不过啊

提示是:编译器错误 1044    调用过程(SUB)不能使用括号

 

 

正要用这两个函数

不懂VBA麻烦版主把这两个函数写好

先谢过

 


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


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

VBS是公用的语言,初学者应该多利用一下GOOGLE的资源


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

金字塔-技术部

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

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

Email:service@weistock.com
 回到顶部