




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
递归平滑策略(TS版)主要介绍了TRIX(2线)指标及其在交易策略中的应用。详细阐述了TRIX指标的计算方法,包括三个指数移动平均值(EMA)的递归计算,以及TRIX线和信号线的生成。通过具体的策略代码,展示了如何利用TRIX指标进行交易决策,1.TRIX指标计算方法-EMA计算:TRIX指标的计算基于三个指数移动平均值(EMA),分别是EMA1、EMA2和EMA3。每个EMA都是对前一个EMA进行进一步平滑处理的结果。-TRIX线:TRIX线是通过计算EMA3与其前一天EMA3的差值,再除以前一天的EMA3,然后乘以10得到的。-信号线:信号线是对TRIX线进行平滑处理的结果,通常使用较小的移动平均长度(如3)。2.策略信号一-入场信号:-金叉:当TRIX线上穿信号线时,产生买入信号。-TRIX反弹:当TRIX线从下向上穿过其前一天的值时,产生买入信号。-出场信号:-TRIX下跌:当TRIX线下穿其前一天的值时,产生卖出信号。-死叉:当TRIX线下穿信号线时,产生卖出信号。3.策略信号二-成交量和价格变化:策略使用成交量百分比变化和价格百分比变化来确定当前条形的类型。-交易类型:根据成交量和价格变化的组合,确定交易类型,并执行相应的买入或卖出操作。-具体操作:在特定交易类型下,当前条形以收盘价买入,下一个条形以市价卖出。4.策略信号三(实时版)-时间控制:策略在特定的入场和退出时间点进行交易决策。-实时更新:策略在实时环境中运行,根据当前的交易类型和时间来决定是否买入或卖出。-具体操作:在特定交易类型和时间点下,当前条形以收盘价买入,下一个条形以市价卖出。5.策略特点总结-TRIX指标的应用:TRIX指标通过三个EMA的递归计算,能够有效捕捉价格趋势的变化,提供较为稳健的交易信号。-多种入场和出场方式:策略提供了多种入场和出场信号,包括金叉、TRIX反弹、TRIX下跌和死叉等,增加了策略的灵活性和适应性。-成交量和价格的结合:策略信号二和实时版策略通过结合成交量和价格变化,进一步提高了交易决策的准确性。-实时与回测的结合:策略信号三为实时版策略,能够在实际交易中即时应用,而策略信号二则用于回测目的,验证策略的有效性。本策略详细介绍了TRIX(2线)指标及其在交易策略中的应用。通过具体的策略代码,展示了如何利用TRIX指标进行交易决策,包括金叉、TRIX反弹、TRIX下跌和死叉等多种信号。此外,还介绍了基于成交量和价格变化的策略,以及实时版策略的具体实现。总体而言,TRIX指标及其相关策略在捕捉价格趋势和提供交易信号方面表现出色,具有较高的实用价值。6.交易逻辑详解-金叉与TRIX反弹:策略信号一提供了两种入场方式,金叉和TRIX反弹,分别在TRIX线上穿信号线和TRIX线从下向上穿过前一天值时触发买入。-TRIX下跌与死叉:同样,策略信号一也提供了两种出场方式,TRIX下跌和死叉,分别在TRIX线下穿前一天值和TRIX线下穿信号线时触发卖出。-成交量与价格的综合考量:策略信号二和实时版策略引入了成交量百分比变化和价格百分比变化,通过这些变化来确定当前条形的类型,并据此执行买入或卖出操作。-时间与交易类型的约束:实时版策略在特定的入场和退出时间点进行交易决策,进一步限制了交易的时机,提高了策略的时效性。7.策略的灵活性与适应性-多种信号的组合:通过结合不同的入场和出场信号,策略能够适应不同的市场环境,提高交易的成功率。-实时与回测的验证:实时版策略用于实际交易,而回测策略用于验证历史数据中的表现,两者结合能够全面评估策略的有效性。-交易类型的多样性:策略信号二和实时版策略根据成交量和价格变化的组合,定义了多种交易类型,增加了策略的灵活性。8.策略的风险控制-信号的稳健性:通过多个EMA的平滑处理,TRIX指标能够减少市场噪声的影响,提供更为稳健的交易信号。-成交量的考量:引入成交量变化作为交易决策的一部分,能够在价格变动中增加对交易量的考量,提高交易的安全性。-时间的约束:实时版策略通过设定特定的入场和退出时间,能够在一定程度上控制交易风险,避免在市场波动较大时进行交易。本策略通过对TRIX(2线)指标及其相关策略的详细解析,展示了其在交易决策中的应用价值。通过多种信号的组合、成交量和价格的结合、实时与回测的验证,以及时间与交易类型的约束,策略能够在不同的市场环境中提供稳健的交易信号,并有效控制风险。总体而言,TRIX指标及其相关策略为投资者提供了一套完整的交易体系,具有较高的实用性和参考价值。TRIX(2线)指标代码解释:inputs:TRIXLength(5),{TRIX长度输入}SigLineXMALen(3);{信号线XMAL长度输入}variables:EMA1(0),{存储第一个指数移动平均值的变量}EMA2(0),{存储第二个指数移动平均值的变量}EMA3(0),{存储第三个指数移动平均值的变量}TRIXLine(0),{存储TRIX线的变量}SignalLine(0);{存储信号线的变量}EMA1=XAverage(Close,TRIXLength);{计算第一个指数移动平均值}EMA2=XAverage(EMA1,TRIXLength);{计算第二个指数移动平均值}EMA3=XAverage(EMA2,TRIXLength);{计算第三个指数移动平均值}ifEMA3[1]<>0then{确保不会除以零}beginTRIXLine=10*(EMA3-EMA3[1])/EMA3[1];{计算TRIX线}end;SignalLine=XAverage(TRIXLine,SigLineXMALen);{计算信号线}Plot1(TRIXLine,"TRIXLine");{绘制TRIX线}Plot2(SignalLine,"SignalLine");{绘制信号线}以上代码定义了一个名为TRIX(2线)的指标,它使用了三个指数移动平均值(EMA)来计算TRIX线和信号线,并绘制了这两个线在图表上。TRIX线用于指示趋势的强度和方向,而信号线用于作为交易的触发点。策略信号一代码注解:{2-LineTRIX策略}inputs:TRIXLength(5),{TRIX长度输入}SigLineXMALen(3),{信号线XMAL长度输入}EntrySignal(1),{1=金叉,2=TRIX反弹}ExitSignal(1);{1=TRIX下跌,2=死叉}variables:EMA1(0),{存储第一个指数移动平均值的变量}EMA2(0),{存储第二个指数移动平均值的变量}EMA3(0),{存储第三个指数移动平均值的变量}TRIXLine(0),{存储TRIX线的变量}SignalLine(0);{存储信号线的变量}EMA1=XAverage(Close,TRIXLength);{计算第一个指数移动平均值}EMA2=XAverage(EMA1,TRIXLength);{计算第二个指数移动平均值}EMA3=XAverage(EMA2,TRIXLength);{计算第三个指数移动平均值}ifEMA3[1]<>0then{确保不会除以零}beginTRIXLine=10*(EMA3-EMA3[1])/EMA3[1];{计算TRIX线,乘以10以匹配作者图表的缩放比例}end;SignalLine=XAverage(TRIXLine,SigLineXMALen);{计算信号线}ifEntrySignal=1andTRIXLinecrossesaboveSignalLinethenbuy("GC")thisbaronClose{在金叉时入场。}elseifEntrySignal=2andTRIXLine>TRIXLine[1]thenbuy("TB")thisbaronClose;{在TRIX反弹时入场。}ifExitSignal=1andTRIXLine<TRIXLine[1]thensell("TF")thisbaronClose{在TRIX下跌时退出。}elseifExitSignal=2andTRIXLinecrossesbelowSignalLinethensellthisbaronClose;{在死叉时退出。}以上代码定义了一个名为'TRIX(2Line)'的策略,它使用三个指数移动平均值(EMA)来计算TRIX线和信号线,并基于这些指标的交叉来确定买入和卖出的时机。策略提供了两种入场信号(金叉和TRIX反弹)以及两种退出信号(TRIX下跌和死叉)。策略信号二代码注解:{基于AnthonyTrongone的'HoldingPositionsOvernight'策略的'RisingDarkness'策略,用于回测目的}inputs:SampleWindow(375),{样本窗口长度输入}TradeType(1);{交易类型输入}{TradeType1=显著减少的成交量,显著的价格上涨TradeType2=显著减少的成交量,显著的价格下跌TradeType3=显著增加的成交量,显著的价格上涨TradeType4=显著增加的成交量,显著的价格下跌}variables:Counter(0),{初始化计数器变量}MA8Vol(0),{初始化MA8Vol变量,用于存储过去8个条形的平均成交量}VolPctChg(0),{初始化VolPctChg变量,用于存储成交量百分比变化}PriPctChg(0),{初始化PriPctChg变量,用于存储价格百分比变化}Rank(0),{初始化Rank变量,用于存储排名}RankPct(0),{初始化RankPct变量,用于存储排名百分比}DayType(0);{初始化DayType变量,用于存储当前条形的类型}MA8Vol=Average(Volume,8);{计算过去8个条形的平均成交量}ifMA8Vol[1]>0then{确保MA8Vol不为零}beginVolPctChg=(MA8Vol-MA8Vol[1])/MA8Vol[1];{计算成交量百分比变化}end;ifClose[1]>0then{确保Close不为零}beginPriPctChg=100*(Close-Close[1])/Close[1];{计算价格百分比变化}end;Rank=0;{初始化Rank为0}forCounter=1toSampleWindow{从1遍历到SampleWindow}beginifVolPctChg>VolPctChg[Counter]then{如果当前VolPctChg大于历史值}Rank=Rank+1;{增加Rank值}end;RankPct=100*Rank/SampleWindow;{计算Rank的百分比}ifRankPct<=30andPriPctChg>1then{如果RankPct小于等于30且PriPctChg大于1}DayType=1;{设置DayType为1}elseifRankPct<=30andPriPctChg<-1then{如果RankPct小于等于30且PriPctChg小于-1}DayType=2;{设置DayType为2}elseifRankPct>=70andPriPctChg>1then{如果RankPct大于等于70且PriPctChg大于1}DayType=3;{设置DayType为3}elseifRankPct>=70andPriPctChg<-1then{如果RankPct大于等于70且PriPctChg小于-1}DayType=4;{设置DayType为4}elseDayType=0;{否则设置DayType为0}ifTradeType=DayTypethen{如果当前交易类型等于DayType}beginBuythisbaratclose;{在当前条形以收盘价买入}Sellnextbaratmarket;{在下一个条形以市价卖出}end;以上代码定义了一个名为'RisingDarkness'的策略,用于回测目的。该策略使用成交量百分比变化和价格百分比变化来确定当前条形的类型,并根据交易类型执行买入或卖出的操作。策略信号三代码注解:{实时版'RisingDarkness'策略-基于AnthonyTrongone的'HoldingPositionsOvernight'策略}inputs:SampleWindow(375),{样本窗口长度输入}TradeType(1),{交易类型输入}MyExitTime(935),{退出时间输入}MyEntryTime(1600);{入场时间输入}{TradeType1=显著减少的成交量,显著的价格上涨TradeType2=显著减少的成交量,显著的价格下跌TradeType3=显著增加的成交量,显著的价格上涨TradeType4=显著增加的成交量,显著的价格下跌}variables:Counter(0),{初始化计数器变量}MA8Vol(0),{初始化MA8Vol变量,用于存储过去8个条形的平均成交量}VolPctChg(0),{初始化VolPctChg变量,用于存储成交量百分比变化}PriPctChg(0),{初始化PriPctChg变量,用于存储价格百分比变化}Rank(0),{初始化Rank变量,用于存储排名}RankPct(0),{初始化RankPct变量,用于存储排名百分比}DayType(0),{初始化DayType变量,用于存储当前条形的类型}MyVolume(0),{初始化MyVolume变量,用于存储当前条形的成交量}OldMA8Vol(0),{初始化OldMA8Vol变量,用于存储上一个MA8Vol值}array:MyDailyVol[8](0),{初始化MyDailyVol数组,用于存储过去8个交易日的成交量}MyMA8VolArray[375](0);{初始化MyMA8VolArray数组,用于存储过去375个条形的MA8Vol值}ifTime=SessionEndTime(0,1)then{如果时间等于交易日结束时间}beginForValue1=2to6{从2遍历到6}beginMyDailyVol[8-Value1]=MyDailyVol[7-Value1];{复制MyDailyVol数组中的值}end;MyDailyVol[1]=MyVolume;{更新MyDailyVol数组中的最新成交量}MyVolume=0;{重置MyVolume为0}endelse{否则}MyVolume=MyVolume+Ticks;{累加Ticks值到MyVolume}ifTime=MyEntryTimethen{如果时间等于入场时间}beginOldMa8Vol=MA8Vol;{保存上一个MA8Vol值}Value2=0;{初始化Value2为0}ForValue1=1to7{从1遍历到7}beginValue2=Value2+MyDailyVol[Value1];{计算过去7个交易日的总成交量}end;MA8Vol=(MyVolume+Value2)/8;{计算新的MA8Vol值}ifOldMA8Vol>0then{如果OldMA8Vol不为零}beginVolPctChg=(MA8Vol-OldMA8Vol)/OldMA8Vol;{计算成交量百分比变化}ForValue1=2toSampleWindow-2{从2遍历到SampleWindow-2}beginMyMA8VolArray[SampleWindow-Value1]=MyMA8VolArray[SampleWindow-1-Value1];{复制MyMA8VolArray数组中的值}end;MyMA8VolArray[1]=VolPctChg;{更新MyMA8VolArray数组中的最新值}end;ifClose[1]>0then{如果Close不为零}PriPctChg=100*(CloseD(0)-CloseD(1))/CloseD(1);{计算价格百分比变化}Rank=0;{初始化Rank为0}forCounter=1toSampleWindow-1{从1遍历到SampleWindow-1}beginifVolPctChg>MyMA8VolArray[Counter+1]then{如果当前VolPctChg大于历史值}Rank=Rank+1;{增加Rank值}end;RankPct=100*Rank/SampleWindow;{计算Rank的百分比}ifRankPct<=30andPriPctChg>1then{如果RankPct小于等于30且PriPctChg大于1}DayType=1;{设置DayType为1}elseifRankPct<=30andPriPctChg<-1then{如果RankPct小于等于30且PriPctChg小于-1}DayType=2;{设置DayType为2}elseifRankPct>=70andPriPctChg>1then{如果RankPct大于等于70且PriPctChg大于1}DayType=3;{设置DayType为3}elseifRankPct>=70andPriPctChg<-1then{如果RankPct大于等于70且PriPctChg小于-1}DayType=4;{设置DayType为4}elseDayType=0;{否则设置DayType为0}{打印(日期,"",日期[1],"",时间,"",Daytype,"",MA8Vol,"",OldMA8Vol,"",VolPctchg,"",Rank,"",Rankpct,"",MyVolume,"",MyDailyvol[1],"",MyDailyVol[2]);}end;ifTradeType=DayTypeandTime=MyEntryTimethen{如果当前交易类型等于DayType且时间等于入场时间}Buythisbaratclose;{在当前条形以收盘价买入}ifMarketPosition=1andTime=MyExitTimethen{如果市场持仓为1且时间等于退出时间}Sellnextbaratmarket;{在下一个条形以市价卖出}以上代码定义了一个名为’RisingDarkness-RT’的实时版策略,该策略在实时环境中运行,并根据当前的交易类型和时间来决定是否买入或卖出。策略使用成交量百分比变化和价格百分比变化来确定当前条形的类型,并根据交易类型执行买入或卖出的操作。指标代码:inputs:TRIXLength(5),SigLineXMALen(3);variables:EMA1(0),EMA2(0),EMA3(0),TRIXLine(0),SignalLine(0);EMA1=XAverage(Close,TRIXLength);EMA2=XAverage(EMA1,TRIXLength);EMA3=XAverage(EMA2,TRIXLength);ifEMA3[1]<>0thenTRIXLine=10*(EMA3-EMA3[1])/EMA3[1];SignalLine=XAverage(TRIXLine,SigLineXMALen);Plot1(TRIXLine,"TRIXLine");Plot2(SignalLine,"SignalLine");策略信号一代码:inputs:TRIXLength(5),SigLineXMALen(3),EntrySignal(1),ExitSignal(1);variables:EMA1(0),EMA2(0),EMA3(0),TRIXLine(0),SignalLine(0);EMA1=XAverage(Close,TRIXLength);EMA2=XAverage(EMA1,TRIXLength);EMA3=XAverage(EMA2,TRIXLength);ifEMA3[1]<>0thenTRIXLine=10*(EMA3-EMA3[1])/EMA3[1];SignalLine=XAverage(TRIXLine,SigLineXMALen);ifEntrySignal=1andTRIXLinecrossesaboveSignalLinethenbuy("GC")thisbaronCloseelseifEntrySignal=2andTRIXLine>TRIXLine[1]thenbuy("TB")thisbaronClose;ifExitSignal=1andTRIXLine<TRIXLine[1]thensell("TF")thisbaronCloseelseifExitSignal=2andTRIXLinecrossesbelowSignalLinethensellthisbaronClose;策略信号二代码:inputs:SampleWindow(375),TradeType(1);variables:Counter(0),MA8Vol(0),VolPctChg(0),PriPctChg(0),Rank(0),RankPct(0),DayType(0);MA8Vol=Average(Volume,8);ifMA8Vol[1]>0thenVolPctChg=(MA8Vol-MA8Vol[1])/MA8Vol[1];ifClose[1]>0thenPriPctChg=100*(Close-Close[1])/Close[1];Rank=0;forCounter=1toSampleWindowbeginifVolPctChg>VolPctChg[Counter]thenRank=Rank+1;end;RankPct=100*Rank/SampleWindow;ifRankPct<=30andPriPctChg>1thenDayType=1elseifRankPct<=30andPriPctChg<-1thenDayType=2elseifRankPct>=70andPriPctChg>1thenDayType=3elseifRankPct>=70andPriPctChg<-1thenDayType=4elseDayType=0;ifTradeType=DayTypethenbeginBuythisbaratclose;Sellnextbaratmarket;end;策略信号三代码:inputs:SampleWindow(375),TradeType(1),MyExitTime(935),MyEntryTime(1600);variables:Counter(0),MA8Vol(0),VolPctChg(0),PriPctChg(0),Rank(0),RankPct(0),DayType(0),MyVolume(0),OldMA8Vol(0);array:MyDailyVol[8](0),MyMA8VolArray[375](0);ifTime=SessionEndTime(0,1)thenbeginForValue1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 叉车转让回收合同范本
- 仿古门窗加工合同范本
- 午托员工合同范本
- 教学提质增效课题申报书
- 农村合作社有些合同范例
- 克拉玛依劳动合同范本
- 员工离职接触合同范本
- 厂房拆除门窗合同范本
- 中介融资合同范本
- 叫做招标性质合同范本
- 2025年湖南水利水电职业技术学院高职单招职业适应性测试近5年常考版参考题库含答案解析
- 2025年徐州生物工程职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 向量的数量积说课
- 2024年全国体育专业单独招生考试数学试卷试题真题(含答案)
- 2025年中粮集团有限公司招聘笔试参考题库含答案解析
- 2023年12月大学英语四级第一套真题和答案
- 河北省职业院校技能大赛建筑信息模型建模与应用(高职组)赛项参考试题及答案
- 艾滋病耐药报告解读
- 创新思维与创造力开发(山西经贸职业学院)知到智慧树答案
- 2024年潍坊护理职业学院单招职业适应性测试题库及答案解析
- 《西方经济学》(上册)课程教案
评论
0/150
提交评论