比率对数策略(TS版)_第1页
比率对数策略(TS版)_第2页
比率对数策略(TS版)_第3页
比率对数策略(TS版)_第4页
比率对数策略(TS版)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

比率对数策略(TS版)指标和策略主要用于分析和预测金融市场的走势,特别是股票、期货等金融衍生品的市场表现。通过这些指标和策略,可以更加科学地制定买入和卖出的决策,从而实现投资收益的最大化。函数`ConsecCriteria``ConsecCriteria`是一个布尔函数,用于检查一个布尔数组`Criteria`是否在指定的连续周期数`Consec`内都为True。如果所有元素在指定周期内都为True,或者`Consec`为0,则返回True,否则返回False。这个函数在后续的指标和策略中起到了关键作用,特别是在需要判断连续条件是否满足的场景中。指标一:该指标通过计算两个数据序列的对数价格和比率差分,结合买入信号阈值`Brs`和连续满足差分条件的周期数`BCons`,来判断市场是否出现买入信号。具体逻辑是:当比率差分`UtRsB`大于等于`Brs`且效用差分`UtDrB`在连续`BCons`周期内大于0时,发出买入信号。指标二:该指标与指标一类似,但仅基于比率差分`UtRsB`和买入信号阈值`BrsOnly`来判断买入信号。当`UtRsB`大于等于`BrsOnly`时,发出买入信号。这个指标相对简单,适用于那些更关注比率差分的投资者。指标三:该指标通过计算两个数据序列的对数价格和比率差分,结合卖出信号阈值`Srs`和连续满足差分条件的周期数`SCons`,来判断市场是否出现卖出信号。具体逻辑是:当比率差分`UtRsS`小于等于`Srs`且效用差分`UtDrS`在连续`SCons`周期内小于0时,发出卖出信号。指标四:该指标与指标三类似,但仅基于比率差分`UtRsS`和卖出信号阈值`SrsOnly`来判断卖出信号。当`UtRsS`小于等于`SrsOnly`时,发出卖出信号。这个指标同样适用于那些更关注比率差分的投资者。策略交易逻辑:综合了上述四个指标的逻辑,通过买入和卖出信号的判断来执行交易决策。具体逻辑如下:-当满足`UtRsB>=Brs`且`UtDrB>0`在连续`BCons`周期内成立时,发出买入信号。-当满足`UtRsB>=BrsOnly`时,发出买入信号。-当满足`UtRsS<=Srs`且`UtDrS<0`在连续`SCons`周期内成立时,发出卖出信号。-当满足`UtRsS<=SrsOnly`时,发出卖出信号。技术指标和交易策略具有以下特点:1.**综合性强**:这些指标和策略综合考虑了多个因素,包括价格对数变换、比率差分、效用差分以及连续条件的判断等,能够更全面地反映市场的走势和趋势。2.**灵活性高**:通过设置不同的参数和阈值,投资者可以根据自己的投资理念和市场情况来调整指标和策略的表现,从而适应不同的市场环境。3.**实用性强**:这些指标和策略不仅具有理论价值,还具有很强的实用性。投资者可以直接将其应用于实际的交易中,辅助自己做出更加科学的投资决策。4.**可视化直观**:通过绘制图表的方式,投资者可以直观地看到指标和策略的表现以及市场的走势,有助于更好地理解和分析市场。交易策略为投资者提供了一个科学、系统、实用的分析工具,有助于提高投资收益和降低投资风险。函数的代码注解:函数的名称为ConsecCriteriaInputs://输入参数定义Criteria(TrueFalse),//Criteria是一个布尔数组,表示一系列条件是否满足Consec(Numeric);//Consec是一个数值,表示需要连续满足条件的周期数Vars://变量定义Flag(True);//Flag是一个布尔变量,用于记录是否满足连续条件,初始设置为TrueFlag=True;//将Flag初始化为True,表示默认条件满足Forvalue1=0ToConsec-1Begin//开始一个循环,从0到Consec-1IFCriteria[value1]=FalseThenFlag=False;//如果在Criteria数组中找到一个False值,则将Flag设置为FalseEnd;//结束循环IFConsec=0ThenFlag=False;//如果Consec等于0,则直接将Flag设置为False,因为0意味着没有连续周期需要满足ConsecCriteria=Flag;//将函数的返回值设置为Flag的值,即是否满足连续条件的布尔值这个函数的目的是检查一个布尔数组`Criteria`是否在指定的连续周期数`Consec`内都为True。如果数组中的所有元素(直到`Consec`指定的数量)都为True,或者`Consec`为0,则函数返回True,否则返回False。如果`Consec`为0,则函数总是返回False,因为没有周期需要满足条件。这个函数可以用于交易策略中,以确定是否满足特定的连续条件,例如连续几天的价格上涨或下跌。指标一代码注释:指标的名称为UA-Brs&BConsInputs://输入参数定义Brs(3),//Brs是比率差分买入信号阈值BCons(0),//BCons是连续满足差分条件的周期数UpLag(65);//UpLag是用于计算比率差分的滞后周期数Vars://变量定义D1(0),D2(0),//D1和D2分别代表两个数据序列的收盘价SP(0),Util(0),//SP和Util是对数变换后的价格UtSpR(0),//UtSpR是比率对数变换后的价格XCon(0),//XCon是用于平滑计算的常数UtSpRAvg(0),UtAvg(0),//UtSpRAvg和UtAvg分别是比率对数和效用对数的平均值UtDrB(0),UtRsB(0),//UtDrB和UtRsB分别是效用差分和比率差分UtDrBSum(0);//UtDrBSum是效用差分小于0的累计次数//以下代码块计算价格对数和差分D1=CloseData1;D2=CloseData2;SP=Log(D1)*100;Util=Log(D2)*100;UtSPR=Log(D2/D1)*100;XCon=2/(1+3);UtSpRAvg=UtSpRAvg[1]+(XCon*(UtSpR-UtSpRAvg[1]));UtAvg=UtAvg[1]+(XCon*(Util-UtAvg[1]));UtDrB=UtAvg-UtAvg[UpLag];UtRsB=(UtSpRAvg-UtSpRAvg[UpLag]);//以下代码块检查连续条件是否满足IFUtDrB<0ThenBeginIFBCons<>0ANDConsecCriteria(UtDrB<0,BCons)=FalseThenUtDrBSum=UtDrBSum+1;EndElseUtDrBSum=0;//绘制图表Plot1(UtRsB,“UtRsB”);//绘制比率差分Plot2(UtDrBSum/10,“UtDrBSum”);//绘制效用差分小于0的累计次数Plot3(Brs,“Brs”);//绘制买入信号阈值Plot4(0,“Zero”);//绘制零线//指标一,它是基于策略系统中的第一个买入信号。指标二代码注释:指标的名称为UA-BUtRsOnlyInputs://输入参数定义BrsOnly(3),//BrsOnly是比率差分买入信号阈值UpLag(65);//UpLag是用于计算比率差分的滞后周期数Vars://变量定义D1(0),D2(0),//D1和D2分别代表两个数据序列的收盘价SP(0),Util(0),//SP和Util是对数变换后的价格UtSpR(0),//UtSpR是比率对数变换后的价格XCon(0),//XCon是用于平滑计算的常数UtSpRAvg(0),//UtSpRAvg是比率对数的平均值UtRsB(0);//UtRsB是比率差分//以下代码块计算价格对数和差分D1=CloseData1;D2=CloseData2;SP=Log(D1)*100;Util=Log(D2)*100;UtSPR=Log(D2/D1)*100;XCon=2/(1+3);UtSpRAvg=UtSpRAvg[1]+(XCon*(UtSpR-UtSpRAvg[1]));UtRsB=(UtSpRAvg-UtSpRAvg[UpLag]);//绘制图表Plot1(UtRsB,“UtRsB”);//绘制比率差分Plot2(BrsOnly,“BrsOnly”);//绘制买入信号阈值//指标二,它是基于策略系统的第二个买入信号。指标三代码注释:指标的名称为UA-SrS&SconsInputs://输入参数定义Srs(-6),//Srs是比率差分卖出信号阈值SCons(52),//SCons是连续满足差分条件的周期数DnLag(100);//DnLag是用于计算比率差分的滞后周期数Vars://变量定义D1(0),D2(0),//D1和D2分别代表两个数据序列的收盘价SP(0),Util(0),//SP和Util是对数变换后的价格UtSPR(0),//UtSPR是比率对数变换后的价格XCon(0),//XCon是用于平滑计算的常数UtAvg(0),UtSpRAvg(0),//UtAvg和UtSpRAvg分别是效用对数和比率对数的平均值UtRsS(0),UtDrS(0),//UtRsS和UtDrS分别是比率差分和效用差分UtDrSSum(0);//UtDrSSum是效用差分小于0的累计次数//以下代码块计算价格对数和差分D1=CloseData1;D2=CloseData2;SP=Log(D1)*100;Util=Log(D2)*100;UtSPR=Log(D2/D1)*100;XCon=2/(1+3);UtSpRAvg=UtSpRAvg[1]+(XCon*(UtSpR-UtSpRAvg[1]));UtAvg=UtAvg[1]+(XCon*(Util-UtAvg[1]));UtDrS=UtAvg-UtAvg[DnLag];UtRsS=(UtSpRAvg-UtSpRAvg[DnLag]);//以下代码块检查连续条件是否满足IFUtDrS<0ThenBeginIFSCons<>0ANDConsecCriteria(UtDrS<0,SCons)=FalseThenUtDrSSum=UtDrSSum-1;EndElseUtDrSSum=0;//绘制图表Plot1(UtRsS,“UtRsS”);//绘制比率差分Plot2(UtDrSSum/10,“UtDrS”);//绘制效用差分小于0的累计次数Plot3(Srs,“Srs”);//绘制卖出信号阈值Plot4(0,“Zero”);//绘制零线//指标,它是基于策略系统的第一个卖出信号。指标四代码注释:指标的名称为UA-SUtRsOnlyInputs://输入参数定义SrsOnly(-24),//SrsOnly是比率差分卖出信号阈值DnLag(100);//DnLag是用于计算比率差分的滞后周期数Vars://变量定义D1(0),D2(0),//D1和D2分别代表两个数据序列的收盘价SP(0),Util(0),//SP和Util是对数变换后的价格UtSPR(0),//UtSPR是比率对数变换后的价格XCon(0),//XCon是用于平滑计算的常数UtSpRAvg(0),//UtSpRAvg是比率对数的平均值UtRsS(0),//UtRsS是比率差分UtDrSSum(0);//UtDrSSum是效用差分小于0的累计次数,但在当前代码中未使用//以下代码块计算价格对数和差分D1=CloseData1;//获取数据序列1的收盘价D2=CloseData2;//获取数据序列2的收盘价SP=Log(D1)*100;//计算数据序列1的对数价格并放大100倍Util=Log(D2)*100;//计算数据序列2的对数价格并放大100倍UtSPR=Log(D2/D1)*100;//计算两个数据序列比率的对数并放大100倍XCon=2/(1+3);//计算平滑常数,此处为固定值2/3//以下代码块进行比率对数平均值的计算UtSpRAvg=UtSpRAvg[1]+(XCon*(UtSpR-UtSpRAvg[1]));//计算比率对数的平均值//计算比率差分UtRsS=(UtSpRAvg-UtSpRAvg[DnLag]);//计算比率差分//绘制图表Plot1(UtRsS,“UtRsS”);//绘制比率差分Plot2(SrsOnly,“SrsOnly”);//绘制卖出信号阈值//指标四,它是基于策略系统的第二个卖出信号。策略代码注释:Inputs://输入参数定义Brs(3),//Brs是买入信号的阈值BrsOnly(3),//BrsOnly是仅基于比率差分的买入信号阈值BCons(0),//BCons是连续满足买入差分条件的周期数UpLag(65),//UpLag是用于计算买入差分的滞后周期数Srs(-6),//Srs是卖出信号的阈值SrsOnly(-24),//SrsOnly是仅基于比率差分的卖出信号阈值SCons(52),//SCons是连续满足卖出差分条件的周期数DnLag(100);//DnLag是用于计算卖出差分的滞后周期数Vars://变量定义D1(0),D2(0),//D1和D2分别代表两个数据序列的收盘价SP(0),Util(0),//SP和Util是对数变换后的价格UtSpR(0),//UtSpR是比率对数变换后的价格XCon(0),//XCon是用于平滑计算的常数UtSpRAvg(0),UtAvg(0),//UtSpRAvg和UtAvg分别是比率对数和效用对数的平均值UtDrB(0),UtRsB(0),//UtDrB和UtRsB分别是效用差分和比率差分UtDrS(0),UtRsS(0);//UtDrS和UtRsS分别是效用差分和比率差分//以下代码块计算价格对数和差分D1=CloseData1;D2=CloseData2;SP=Log(D1)*100;Util=Log(D2)*100;UtSPR=Log(D2/D1)*100;XCon=2/(1+3);UtSpRAvg=UtSpRAvg[1]+(XCon*(UtSpR-UtSpRAvg[1]));UtAvg=UtAvg[1]+(XCon*(Util-UtAvg[1]));UtDrB=UtAvg-UtAvg[UpLag];UtRsB=(UtSpRAvg-UtSpRAvg[UpLag]);UtDrS=UtAvg-UtAvg[DnLag];UtRsS=(UtSpRAvg-UtSpRAvg[DnLag]);//买入信号逻辑IF(UtRsB>=BrsANDConsecCriteria(UtDrB>0,BCons))ThenBuy(“Brs&BCons”)ThisBaronClose;IFUtRsB>=BrsOnlyThenBuy(“BUtRsOnly”)ThisBaronClose;//卖出信号逻辑IF(UtRsS<=SrsANDConsecCriteria(UtDrS<0,SCons))ThenSell(“Srs&SCons”)ThisBaronClose;IFUtRsS<=SrsOnlyThenSell(“SUtRsOnly”)ThisBaronClose;函数ConsecCriteria代码:Inputs:Criteria(TrueFalse),Consec(Numeric);Vars:Flag(True);Flag=True;Forvalue1=0ToConsec-1BeginIFCriteria[value1]=FalseThenFlag=False;End;IFConsec=0ThenFlag=False;ConsecCriteria=Flag;指标一代码:Inputs:Brs(3),BCons(0),UpLag(65);Vars:D1(0),D2(0),SP(0),Util(0),UtSpR(0),XCon(0),UtSpRAvg(0),UtAvg(0),UtDrB(0),UtRsB(0),UtDrBSum(0);D1=CloseData1;D2=CloseData2;SP=Log(D1)*100;Util=Log(D2)*100;UtSPR=Log(D2/D1)*100;XCon=2/(1+3);UtSpRAvg=UtSpRAvg[1]+(XCon*(UtSpR-UtSpRAvg[1]));UtAvg=UtAvg[1]+(XCon*(Util-UtAvg[1]));UtDrB=UtAvg-UtAvg[UpLag];UtRsB=(UtSpRAvg-UtSpRAvg[UpLag]);IFUtDrB<0ThenBeginIFBCons<>0ANDConsecCriteria(UtDrB<0,BCons)=FalseThenUtDrBSum=UtDrBSum+1;EndElseUtDrBSum=0;Plot1(UtRsB,“UtRsB”);Plot2(UtDrBSum/10,“UtDrBSum”);Plot3(Brs,“Brs”);Plot4(0,“Zero”);指标二代码:Inputs:BrsOnly(3),UpLag(65);Vars:D1(0),D2(0),SP(0),Util(0),UtSpR(0),XCon(0),UtSpRAvg(0),UtRsB(0);D1=CloseData1;D2=CloseData2;SP=Log(D1)*100;Util=Log(D2)*100;UtSPR=Log(D2/D1)*100;XCon=2/(1+3);UtSpRAvg=UtSpRAvg[1]+(XCon*(UtSpR-UtSpRAvg[1]));UtRsB=(UtSpRAvg-UtSpRAvg[UpLag]);Plot1(UtRsB,“UtRsB”);Plot2(BrsOnly,“BrsOnly”);指标三代码:Inputs:Srs(-6),SCons(52),DnLag(100);Vars:D1(0),D2(0),SP(0),Util(0),UtSPR(0),XCon(0),UtAvg(0),UtSpRAvg(0),UtRsS(0),UtDrS(0),UtDrSSum(0);D1=CloseData1;D2=CloseData2;SP=Log(D1)*100;Util=Log(D2)*100;UtSPR=Log(D2/D1)*100;XCon=2/(1+3);UtSpRAvg=UtSpRAvg[1]+(XCon*(UtSpR-UtSpRAvg[1]));UtAvg=UtAvg[1]+(XCon*(Util-UtAvg[1]));UtDrS=UtAvg-UtAvg[DnLag];UtRsS=(UtSpRAvg-UtSpRAvg[DnLag]);IFUtDrS<0ThenBeginIFSCons<>0ANDConsecCriteria(UtDrS<0,SCons)=FalseThenUtDrSSum=UtDrSSum-1;EndElseUtDrSSum=0;Plot1(UtRsS,“UtRsS”);Plot2(UtDrSSum/10,“UtDrS”);Plot3(Srs,“Srs”);Plot4(0,“Zero”);指标四代码:Inputs:SrsOnly(-24),DnLag(100);Vars:D1(0),D2(0),SP(0),Util(0),UtSPR(0),XCon(0),UtSpRAvg(0),UtRsS(0),UtDrSSum(0);D1=CloseData

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论