位置:丁香财经网 >> 金融

期货程序化 函数ref 没有被声明(期货程序化交易合法吗)

日期:2023年04月22日 08:31 浏览量:1

TSF时序预测指标,这指标我没用过,百度找它的算法也没找着,到是在外国网站看到了一些内容,可哥们看代码还行,看外文就只能借助翻译工具了,但翻译出来的不伦不类的,也懒得去组织内容了。我看了这指标代码,算法也不复杂,就一个求线性回归罢了,数学好点的,看一下就明白,实在不行的,就跟我一样用笨方法,一条条记下来,算一遍就明白的。

在说线性回归代码前,先看它用到的求和函数Summation代码,直接附上了,这个之前也解读过了,如下:

Params

NumericSeries Price(1);

Numeric Length(10);

Vars

Numeric SumValue(0);

Numeric i;

Begin

SumValue = 0;

for i = 0 to Length - 1

{

SumValue = SumValue + Price[i];

}

Return SumValue;

End

接下来就是真正需要解读的求线性回归函数LinearReg的代码了,解读如下:

Params

NumericSeries Price(1);//声明数值序列参数Price,初值为1.//

Numeric Length(10);//声明数值参数Length,初值为10.//

Numeric TgtBar(0);//声明数值参数TgtBar,初值为0.//

NumericRef LRSlope; //声明引用参数LRSlope。//

NumericRef LRAngle;//声明引用参数LRAngle。//

NumericRef LRIntercept;//声明引用参数LRIntercept。//

NumericRef LRValue;//声明引用参数LRValue。//

Vars

Numeric SumXY(0);//声明数值变量SumXY,初值为0.//

Numeric SumY;//声明数值变量SumY。//

Numeric SumX; //声明数值变量SumX。//

Numeric SumXSqr;//声明数值变量SumXSqr。//

Numeric Divisor;//声明数值变量Divisor。//

Numeric i;//声明变量i。//

Begin

if (Length > 1)//假如周期参数Length(初值10)大于1成立,执行下列代码了。//

{

SumX = Length * ( Length - 1 ) * 1/2;//直接代入数值,变量SumX = 10 * (10-1)* 1 / 2。//

SumXSqr = Length * ( Length - 1 ) * ( 2 * Length - 1 ) * 1/6 ;//变量SumXSqr = 10 *(10-1)*(2*10-1)*1/6.//

Divisor = Sqr( SumX ) - Length * SumXSqr ;//这里只看Sqr函数了,即算括号里数值的平方。相关数据上两行已经算出来了,这一行也就是代入直接读就行了。//

SumY = Summation( Price, Length ) ;//这里就是把价格Price与周期Length,返回函数求和就行了,最后把得到的值返回来赋值给变量SumY了。//

for i = 0 to Length - 1 //循环语句,即变量 i 从0到 9执行花括号求值,直到跳出循环了。//

{

SumXY = SumXY + i * Price[i] ;//比如第一个0代入,SumXY = 0 + 0 * Price[0];再接着循环第二个值1,SumXY = 0 + 0 * Price[0] + 1 * Price[1];第三个2,SumXY= 0 + 0 * Price[0] + 1 * Price[1] +2 * price[2]...这就是累加起来的循环求和罢了,直到变量 i =10,不符合条件了,直接跳出来,接着执行下面代码。//

}

LRSlope = ( Length * SumXY - SumX * SumY) / Divisor ; //你说这公式里还有哪个值没求出来的,也是直接代入数据求值了,即可得出引用参数LRSlope值。//

LRAngle = Atan ( LRSlope ) ; //这里Atan函数,意思是返回参数的反正切值,比如Atan (1) = 0.785398这意思理解了吧,这个函数是TB系统自带的函数名,只要理解它意思就行了。这代入引用参数LRSlope数值不就可以求出引用参数LRAngle值 了嘛。//

LRIntercept = ( SumY - LRSlope * SumX ) / Length ; //这个也是直接把上面算得的相应数值代入公式,算得出LRIntercept值来。//

LRValue = LRIntercept + (Length - 1 - TgtBar)*LRSlope;//这引用参数LRValue,也是如此了。//

Return True; //返回真值,即把四个引用参数数值返回给主函数了。//

}Else//这是假如周期Length >1,不成立情况下。//

{

Return False;//返回假值,就是没有返回值了。//

}

End

这一步步也就是数值代入,算下来不难吧,代码也就是这么一回事了。我们来看TSF时序预测指标代码了,这更简单,都是直接把参数返回线性回归函数LinearReg,直接得出相应值来的。代码如下:

Params

Numeric Length(9);

Numeric TgtBar(7) ;

Vars

Numeric oLRSlope( 0 );

Numeric oLRAngle( 0 );

Numeric oLRIntercept( 0 );

Numeric oLRValue( 0 ) ;

Begin

LinearReg( Close, Length, TgtBar, oLRSlope, oLRAngle, oLRIntercept, oLRValue ) ; //记得规则吧,线性回归有声明了多少个参数,这括号里就得有对应的多少个参数。//

PlotNumeric("TSP",oLRValue);//画线TSP,值为oLRValue值。//

End

添加到超级图表上,你会发现它跟移动均线很相像,从这我们可以考虑一下,能不能做成跟移动均线一样的程序化系统的,结果会不会不错呢?有兴趣的朋友自己试试了,添加一下买卖条件就行。

期货软件TB系统源代码解读系列26-TSF

推荐阅读

百望股份股票代码是多少(百望股份ipo)
黄金au9999股市代码(au9999黄金行情)
长江投资股票代码(600119长江投资股票)
云米的股票代码是什么(云米科技股票今天多少)
信用卡进度更新(这两天信用卡系统在升级吗)
山东格林上市股票代码(格林上市的股票代码)
辽宁成大的股票(辽宁成大的股票代码是多少)
湖南帝亿生物有限公司股票代码(湖南帝亿生物科技股份有限公司)
武汉社保机构名称(武汉社保机构行政区划代码查询)
国外期货上市公司股票,国外期货上市公司股票代码
期货程序化 函数ref 没有被声明(期货程序化交易合法吗)文档下载: PDF DOC TXT

标签: length 参数 代码

文章来源: 丁香财经网
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至405936398@qq.com 举报,一经查实,本站将立刻删除。
相关资讯
芯片软件题材股票有哪些(芯片 软件)
芯片软件题材股票有哪些(芯片 软件) 2023-04-22

//声明数值序列参数Price,初值为1.//Numeric Length(10)

用友 portal(用友网络)
用友 portal(用友网络) 2023-04-22

//声明数值序列参数Price,初值为1.//Numeric Length(10)

金店加工黄金吗(金店加工黄金首饰)
金店加工黄金吗(金店加工黄金首饰) 2023-04-22

//声明数值序列参数Price,初值为1.//Numeric Length(10)

动力煤809期货(动力煤2109期货社区讨论)
动力煤809期货(动力煤2109期货社区讨论) 2023-04-22

//声明数值序列参数Price,初值为1.//Numeric Length(10)

海蜇怎么做(海蜇怎么做好吃又简单方便)
海蜇怎么做(海蜇怎么做好吃又简单方便) 2023-04-22

//声明数值序列参数Price,初值为1.//Numeric Length(10)

用友软件索引被破坏(用友软件索引被破坏怎么办)
用友软件索引被破坏(用友软件索引被破坏怎么办) 2023-04-22

//声明数值序列参数Price,初值为1.//Numeric Length(10)