xiaokakaren 发表于 2015-11-20 11:39:34

GetTBProfileString2Filee使用问题

Vars
        string strkey;
        String strvalue;
        Numeric D1;
Begin
       D1=1024;

        strKey = DateToString(Date);
        strvalue=Text(D1);
        SetTBProfileString2File("d:\\d.Log","1and2",strKey,strvalue);
End
我在调用的时候是这样写的
Vars
        NumericSeries H1;
        StringSeries strKey;
        string strValue;
        StringSeries strKeyH1;
        string strValueH1;
Begin
      
        strValue = GetTBProfileString2File("d:\\d.Log",strKey,strvalue);
        H1 = Value(strValue);
        strKeyH1=DateToString(Date);
        strValueH1=Text(H1);
        SetTBProfileString2File("d:\\0.Log",strKeyH1,strValueH1);
End

为什么出来是N/A,新手,问题可能有些可笑,请各位大大帮帮忙。

小米 发表于 2015-11-20 13:30:06

示例 SetTBProfileString2File("c:\\test.txt","MySection","Close",Text(Close));

上述内容为帮助文档的函数说明里的示例。可以清楚看到,该函数的使用所需4个参数。
而你的代码SetTBProfileString2File("d:\\0.Log",strKeyH1,strValueH1);只使用了3个参数,不对的。

xiaokakaren 发表于 2015-12-1 15:44:56

小米 发表于 2015-11-20 13:30 static/image/common/back.gif
示例 SetTBProfileString2File("c:\\test.txt","MySection","Close",Text(Close));

上述内容为帮助文档的 ...

谢谢,我现在转到用函数解决跨周期了

xiaokakaren 发表于 2015-12-1 15:52:27

小米 发表于 2015-11-20 13:30 static/image/common/back.gif
示例 SetTBProfileString2File("c:\\test.txt","MySection","Close",Text(Close));

上述内容为帮助文档的 ...

在这里再问一个问题,用函数解决跨周期时,我借用了onpain的http://bbs.tb18.net/thread-1996-1-1.html这个帖子的做法,但是在参数声明时NumericSeries Price(10);这一句就显示声明的数据类型错误。原码如下:
1、新建一个用户函数,TransMinsData,返回值为数值型。
参数1:要计算的数据源。
参数2:想按N分钟来处理,本例是5分钟,不能大于60。
参数3:希望取多少个N分钟前的数据。
Params
        NumericSeries Price(1);
        Numeric nMinSet(5);
        Numeric MinsAgo(2);
Vars
        NumericSeries barCnt;
        NumericSeries MinData;
        Numeric i;
        Numeric j;
        Numeric nIndex(0);
Begin
        If(IntPart(Minute%nMinSet)==0)
        {
                barCnt = 1;
        }Else
        {
                barCnt = barCnt + 1;
        }
        MinData = Price;
               
        If(MinsAgo == 0)
        {
                return MinData;
        }Else
        {
                For i = 1 To MinsAgo
                {
                        If( i == 1)
                        {        
                                j = 0;
                        }Else
                        {
                                j = j + BarCnt;                                
                        }
                        If (j > CurrentBar ) Return InvalidNumeric;
                        nIndex = nIndex + BarCnt;
                }
                Return MinData;
        }
End
复制代码

小米 发表于 2015-12-1 16:24:22

xiaokakaren 发表于 2015-12-1 15:52 static/image/common/back.gif
在这里再问一个问题,用函数解决跨周期时,我借用了onpain的http://bbs.tb18.net/thread-1996-1-1.html这 ...

新建用户函数, 数值型 ,复制上述代码后,编译成功。
注意看看你新建的函数是否数值型?或者将编译截图的整个截图来看看



页: [1]
查看完整版本: GetTBProfileString2Filee使用问题