随机指标策略(TS版)_第1页
随机指标策略(TS版)_第2页
随机指标策略(TS版)_第3页
随机指标策略(TS版)_第4页
随机指标策略(TS版)_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

随机指标策略(TS版)随机指标是一个重要的技术分析工具,用于评估价格的动量和超买/超卖条件。这一步骤为后续的交易信号判断提供了关键指标。交易逻辑思路随机指标计算:策略首先定义了一个名为_TASC_JUL_SlowK的函数,该函数通过调用Stochastic函数计算随机指标的慢速K值。数据整合:该策略应用于SPY(标准普尔500指数的ETF)的周线图,或者将SP-500和$VIX.X(波动率指数)作为Data2进行处理。这意味着策略在进行决策时会综合考虑市场的整体表现和市场波动性。信号生成:策略通过一系列复杂的条件判断来生成买入和卖出信号。这些条件涉及市场趋势、价格动量、波动性等多个方面,旨在捕捉市场的最佳入场和出场时机。买入信号:策略设定了两个买入条件,即BUYINITIAL和B2。当这两个条件中的任何一个被满足时,将触发买入信号。买入信号的生成综合考虑了价格走势、随机指标、市场波动性等多个因素。卖出信号:同样,策略也设定了复杂的卖出条件,当这些条件被满足时,将触发卖出信号。卖出信号的生成主要关注市场是否出现下跌趋势、价格动量是否减弱、波动性是否升高等。交易执行:一旦买入或卖出信号被触发,策略将执行相应的交易操作。如果允许做空(AllowShorts为1),则卖空操作将被执行;否则,仅执行卖出操作。策略特点多维度分析:策略结合了随机指标、市场趋势、波动性等多个维度进行分析,以提高交易信号的准确性和可靠性。灵活性:策略中的多个参数(如VIXDNMIN、VIXUPMIN、ATRLength等)可根据市场情况进行调整,以适应不同的市场环境。风险控制:策略在买入和卖出信号的生成过程中,均考虑了风险控制因素,如市场波动性、价格动量等,以减少潜在的交易风险。适应性:策略能够在SPY的周线图上应用,同时也可扩展至其他相关资产,如SP-500和$VIX.X,展示了良好的适应性。交易执行自动化:一旦满足交易条件,策略将自动执行买入或卖出操作,无需人工干预,提高了交易效率。综该策略通过多维度分析、灵活调整参数、严格的风险控制和自动化的交易执行,提供了一种系统化、规范化的交易方法。然而,需要注意的是,任何交易策略都存在一定的风险和不确定性,在使用前应充分了解其特点并进行充分的测试。以下是函数代码的逐行注释://函数:_TASC_JUL_SlowK//输入参数:inputs:StochLength(numericsimple),//输入:随机指标长度,类型为数值简单SmoothingLength1(numericsimple);//输入:随机指标第一个平滑长度,类型为数值简单//变量声明:variables:ReturnValue(0),//变量:返回值初始化为0oFastK(0),//变量:快速K值初始化为0oFastD(0),//变量:快速D值初始化为0oSlowK(0),//变量:慢速K值初始化为0oSlowD(0);//变量:慢速D值初始化为0//调用随机指标函数计算相关值ReturnValue=Stochastic(High,Low,Close,StochLength,SmoothingLength1,3,1,oFastK,oFastD,oSlowK,oSlowD);//函数返回值设置为慢速K值_TASC_JUL_SlowK=oSlowK;以上代码定义了一个名为`_TASC_JUL_SlowK`的函数,该函数计算并返回随机指标的慢速K值。它使用了`Stochastic`函数来计算随机指标的各种值,包括快速K值、快速D值、慢速K值和慢速D值。在这个函数中,只有慢速K值被返回作为函数的结果。随机指标是一个常用的技术分析工具,用于评估价格的动量和超买/超卖条件。函数:_TASC_JUL_SlowK代码:inputs:StochLength(numericsimple),SmoothingLength1(numericsimple);variables:ReturnValue(0),oFastK(0),oFastD(0),oSlowK(0),oSlowD(0);ReturnValue=Stochastic(High,Low,Close,StochLength,SmoothingLength1,3,1,oFastK,oFastD,oSlowK,oSlowD);_TASC_JUL_SlowK=oSlowK;策略信号代码解读://shouldbeappliedonaweeklychartoftheSPYortheSP-500and$VIX.XshouldbeaddedasData2//应在SPY的周图上应用,或//SP-500和$VIX.X应添加为Data2inputs:VIXDNMIN(-30),//输入参数VIXDNMIN,初始值为-30,用于某个与VIX相关的下限判断VIXUPMIN(100),//输入参数VIXUPMIN,初始值为100,用于某个与VIX相关的上限判断ATRLength(2),//输入参数ATRLength,初始值为2,用于平均真实波动范围(ATR)计算的周期长度NetReturnPctThreshold(6),//输入参数NetReturnPctThreshold,初始值为6,用于净收益百分比的阈值InitialEquity(100000),//输入参数InitialEquity,初始值为100000,表示初始资金PctEquityForTradeSize(100),//输入参数PctEquityForTradeSize,初始值为100,用于确定交易规模占权益的百分比AllowShorts(0);//输入参数AllowShorts,初始值为0,用于控制是否允许做空variables:TotEquity(0),//定义变量TotEquity并初始化为0,用于存储总权益TradeSizeEquity(0),//定义变量TradeSizeEquity并初始化为0,用于存储交易规模对应的权益TradeSize(0),//定义变量TradeSize并初始化为0,用于存储交易规模ATR(0),//定义变量ATR并初始化为0,用于存储平均真实波动范围的值CCH(0),//定义变量CCH并初始化为0VIXDN(0,Data2),//定义变量VIXDN,初始值为0,与Data2相关,用于存储与VIX相关的数据ATRDN(0),//定义变量ATRDN并初始化为0UP(0),//定义变量UP并初始化为0LLB(0),//定义变量LLB并初始化为0BuyInitial(false),//定义变量BuyInitial并初始化为false,用于表示初始买入状态B2(false),//定义变量B2并初始化为falseBuySignal(false),//定义变量BuySignal并初始化为false,用于表示买入信号VIXUP(0,Data2),//定义变量VIXUP,初始值为0,与Data2相关,用于存储与VIX相关的数据ATRUP(0),//定义变量ATRUP并初始化为0DN(0),//定义变量DN并初始化为0HHB(0),//定义变量HHB并初始化为0VOLUP(0),//定义变量VOLUP并初始化为0SellSignal(false);//定义变量SellSignal并初始化为false,用于表示卖出信号TotEquity=InitialEquity+NetProfit;//计算总权益,等于初始权益加上净利润TradeSizeEquity=MaxList(1000,TotEquity*PctEquityForTradeSize*0.01);//计算交易规模对应的权益,取1000和总权益乘以交易规模百分比再乘以0.01的最大值TradeSize=MaxList(1,Floor(TradeSizeEquity/Close));//计算交易规模,取1和交易规模权益除以收盘价的下取整值的最大值ATR=AvgTrueRange(ATRLength);//计算平均真实波动范围(ATR),使用ATRLength作为参数VIXDN=(CloseofData2/Highest(CloseofData2,15)[1]ofData2-1)*100;//计算VIXDN,涉及Data2的收盘价和15周期内的最高价等数据的计算VIXUP=(CloseofData2/Lowest(CloseofData2,15)[1]ofData2-1)*100;//计算VIXUP,涉及Data2的收盘价和15周期内的最低价等数据的计算ATRDN=(ATR/Highest(AvgTrueRange(ATRLength),15)[1]-1)*100;//计算ATRDN,涉及ATR和15周期内的ATR最高价等数据的计算ATRUP=(ATR/Lowest(AvgTrueRange(ATRLength),15)[1]-1)*100;//计算ATRUP,涉及ATR和15周期内的ATR最低价等数据的计算UP=(Highest(Close,2)/Lowest(Close,4)-1)*100;//计算UP,涉及最高价和最低价等数据的计算DN=(Lowest(Close,2)/Highest(Close,4)-1)*100;//计算DN,涉及最高价和最低价等数据的计算CCH=(Lowest(Close,10)/Highest(Close,100)-1)*100;//计算CCH,涉及不同周期的最高价和最低价等数据的计算HHB=HighestBar(Close,4);//计算最近4个周期内最高价对应的柱线编号LLB=LowestBar(Close,4);//计算最近4个周期内最低价对应的柱线编号ifBarType>=2andBarType<=4thenVOLUP=(Volume/Average(Volume,50)[HHB+1]-1)*100elseVOLUP=(Ticks/Average(Ticks,50)[HHB+1]-1)*100;//根据BarType的条件判断来计算VOLUP,涉及成交量或ticks等数据的计算BUYINITIAL=CurrentBar<=10andAverage(Close,10)>=Average(Close,10)[1]and_TASC_JUL_SlowK(3,3)<40;//定义BUYINITIAL的条件,涉及当前柱线编号、平均收盘价和_TASC_JUL_SlowK等条件判断B2=UP>NetReturnPctThresholdand(VIXDN<VIXDNMINorATRDN<2*VIXDNMIN)andCCH<-15andLowest(_TASC_JUL_SlowK(40,3),LLB)<25andLowest(_TASC_JUL_SlowK(14,3),LLB)<25and_TASC_JUL_SlowK(14,3)>=_TASC_JUL_SlowK(40,3);//定义B2的条件,涉及多个变量的条件判断BuySignal=BUYINITIALorB2;//确定买入信号,根据BUYINITIAL或B2的结果ifBuySignalthenBuynextbarTradeSizesharesmarket;//如果满足买入信号,则在下一根柱线执行买入操作,买入数量为TradeSize股SellSignal=Close<Average(Close,20)andDN<-6and(VIXUP>VIXUPMINorATRUP>2*VIXUPMIN)andVOLUP>80andHighest(_TASC_JUL_SlowK(40,3),HHB)>85andHighest(_TASC_JUL_SlowK(14,3),HHB)>85and_TASC_JUL_SlowK(40,3)>=_TASC_JUL_SlowK(14,3);//定义卖出信号的条件,涉及收盘价、DN、VIXUP、ATRUP、VOLUP等多个变量的条件判断ifSellSignalthenbeginifAllowShorts=0thenSellnextbarmarketelsesellShortnextbarmarket;end;//如果满足卖出信号,根据AllowShorts的值决定是卖出还是卖空操作策略信号代码:inputs:VIXDNMIN(-30),VIXUPMIN(100),ATRLength(2),NetReturnPctThreshold(6),InitialEquity(100000),PctEquityForTradeSize(100),AllowShorts(0);variables:TotEquity(0),TradeSizeEquity(0),TradeSize(0),ATR(0),CCH(0),VIXDN(0,Data2),ATRDN(0),UP(0),LLB(0),BuyInitial(false),B2(false),BuySignal(false),VIXUP(0,Data2),ATRUP(0),DN(0),HHB(0),VOLUP(0),SellSignal(false);TotEquity=InitialEquity+NetProfit;TradeSizeEquity=MaxList(1000,TotEquity*PctEquityForTradeSize*0.01);TradeSize=MaxList(1,Floor(TradeSizeEquity/Close));ATR=AvgTrueRange(ATRLength);VIXDN=(CloseofData2/Highest(CloseofData2,15)[1]ofData2-1)*100;VIXUP=(CloseofData2/Lowest(CloseofData2,15)[1]ofData2-1)*100;ATRDN=(ATR/Highest(AvgTrueRange(ATRLength),15)[1]-1)*100;ATRUP=(ATR/Lowest(AvgTrueRange(ATRLength),15)[1]-1)*100;UP=(Highest(Close,2)/Lowest(Close,4)-1)*100;DN=(Lowest(Close,2)/Highest(Close,4)-1)*100;CCH=(Lowest(Close,10)/Highest(Close,100)-1)*100;HHB=HighestBar(Close,4);LLB=LowestBar(Close,4);ifBarType>=2andBarType<=4thenVOLUP=(Volume/Average(Volume,50)[HHB+1]-1)*100elseVOLUP=(Ticks/Average(Ticks,50)[HHB+1]-1)*100;BUYINITIAL=CurrentBar<=10andAverage(Close,10)>=Average(Close,10)[1]and_TASC_JUL_SlowK(3,3)<40;B2=UP>NetReturnPctThresholdand(VIXDN<VIXDNMINorATRDN<2*VIXDNMIN)andCCH<-15andLowest(_TASC_JUL_SlowK(40,3),LLB)<25andLowest(_TASC_JUL_SlowK(14,3),LLB)<25and_TASC_JUL_SlowK(14,3)>=_TASC_JUL_SlowK(40,3);BuySignal=BUYINITIALorB2;ifBuySignalthenBuynextbarTradeSizesharesmarket;SellSignal=Close<Average(Close,20)andDN<-6and(VIXUP>VIXUPMINorATRUP>2*VIXUPMIN)andVOLUP>80andHighest(_TASC_JUL_SlowK(40,3),HHB)>85andHighest(_TASC_JUL_SlowK(14,3),HHB)>85and_TASC_JUL_SlowK(40,3)>=_TASC_JUL_SlowK(14,3);ifSellSignalthenbeginifAllowShorts=0thenSellnextbarmarketelsesellShortnextbarmarket;end;策略中的Data2找不到是什么意思,特地百度了一下:"Data2"这一术语的含义可以根据其它因素而有所不同,但通常,在数据库、编程或数据处理领域,它指的是存储或处理的数据的一个特定部分或字段。具体来说,以下几点可能有助于解释"Data2"的含义:1.数据字段:在数据库表中,"Data2"可能是一个列名,用于存储某种类型的数据。这种命名方式通常用于当表中需要存储多种类型的数据时,如"Data1"、"Data2"、"Data3"等,分别代表不同的数据类型或属性。然而,这种命名方式并不推荐,因为它缺乏描述性,不易于理解和维护。更好的做法是使用更具描述性的列名,如"EmailAddress"、"PhoneNumber"等。2.编程和数据处理:在编程或数据处理过程中,"Data2"可能是一个变量名或数据结构中的一个元素,用于存储和处理数据。同样地,这种命名方式可能不够明确,但在某些特定的上下文或脚本中,它可能被用来表示特定的数据项。3.软件和数据文件:在某些软件或数据文件中,"Data2"可能表示一个特定的数据集、文件夹或文件,用于存储特定类型的数据。然而,这种用法相对较少见,因为通常我们会使用更具描述性的名称来命名文件和文件夹。在提供的代码中,“Data2应该被添加到作为Data2的$VIX.X”,这里“Data2”可能是一个占位符或示例名称,用于说明在某种分析或数据处理过程中,需要将$VIX.X(即VIX指数的数据)作为第二个数据集(或数据字段)来处理或显示。这里的“Data2”并不具有固定的含义,而是根据具体的需求来确定的。总的来说,"Data2"的具体含义取决于其使用的场景。在大多数情况下,它指的是存储或处理的数据的一个特定部分或字段

温馨提示

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

评论

0/150

提交评论