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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 还是有问题,请帮忙解决一下吧。

   

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


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

主题:还是有问题,请帮忙解决一下吧。

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


加好友 发短信
等级:新手上路 帖子:12 积分:85 威望:0 精华:0 注册:2012/7/4 19:41:38
还是有问题,请帮忙解决一下吧。  发帖心情 Post By:2012/7/6 13:06:04 [只看该作者]

公式:

runmode:1;
m:PEAKBARS(4,5,1),linethick0;
tmp:readtest(m),linethick0;
if c>O then tmp1:=writetest(m,50);

 

自定义函数:

 

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 , "G:\1.ini")
    NEXT
    readtest=ResultMa
End Function

 

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

 

1.ini 内宾:

[aa]
0=3
1=10
2=7
3=6
4=8
5=10

 

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

能读出1.ini文件中的数据,可是没有成功写入。

我也知道这样很烦人,可是自己确实搞不了,需要金字塔帮助。拜托了.


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


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

楼主试试这样能写入吗

公式中:

 

runmode:1;
M:PEAKBARS(4,5,1),linethick0;
tmp:readtest(m),linethick0;
if c>o then
begin
tmp1:writetest(m,50);
end

 

 

 

自定义函数中: '将盘符替换成ini文件放置的盘符

 

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 , "F:\1.ini")
    NEXT


   readtest=ResultMa

 

End Function

 

 

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

End Function


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


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

一句话是不用begin end的,应该是writetest函数不对。等待客服的回答


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


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

试了一下,如果加条件if c>o就会无法写入,另外如果要写入必须每次更改一下公式编辑,也就是加个回车再次生成,才会写入。原因正在查找。
[此贴子已经被作者于2012-7-6 15:25:52编辑过]

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


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

经过刚才测试,首先c>o必须条件成立,才会触发,并且修改过公式一定要把公式重启一次,这样就能写入了。

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


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

谢谢leon.您说是加个begin end函数吗?我回家试一下,现在单位不方便测试。

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


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

以下是引用在2012-7-6 16:35:04的发言:
谢谢leon.您说是加个begin end函数吗?我回家试一下,现在单位不方便测试。

这个和begin end没有关系的,应该是WritePrivateProfileInt函数内m参数类型的问题,如果将m替换成一个具体值。在最后一根k线为阳线并且修改过公式一定要把公式编辑器重启一次

这样才能出现写入操作。

'这里我将m替换成了具体数值

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

if c<o then tmp1:writetest(10,50);


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


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

是的。我也猜是序列变量的问题。等待客服回答吧。。谢谢L了

 回到顶部