




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
布林轨道策略(TB版)主要逻辑1.布林通道策略概述布林通道策略是一种基于统计学的技术分析策略,主要通过计算价格的移动平均和标准差来确定价格的波动范围,即上轨道、中轨道和下轨道。该策略常用于判断市场的超买超卖状态,并据此进行买卖操作。2.函数详解VariancePS(估计方差函数)参数:*Price:数值型序列参数,表示价格数据。*Length:数值型参数,表示计算周期,默认为10。*DataType:数值型参数,控制计算细节,默认为1。逻辑:根据DataType计算Divisor(除数)。计算Length周期内的价格平均值(Mean)。遍历每个周期,计算每个价格与平均值的差的平方和(SumSqr)。返回SumSqr除以Divisor的结果,即方差。StandardDev(标准差函数)参数:同VariancePS。逻辑:调用VariancePS函数计算方差。对方差取平方根,得到标准差。返回标准差,用于布林通道的计算。3.布林通道公式参数:Length:计算移动平均和标准差的周期数,默认为20。Offset:确定布林带宽度的系数,默认为2。变量:UpLine:上轨道。DownLine:下轨道。MidLine:中轨道(移动平均线)。Band:布林带宽度。逻辑:使用AverageFC(或Average)函数计算Length周期的收盘价移动平均,作为中轨道。调用StandardDev函数计算标准差,并乘以Offset得到布林带宽度。计算上轨道和下轨道(中轨道加减布林带宽度)。在图表上绘制上轨道、下轨道和中轨道。4.策略信号代码参数:包括Length、Offset,以及新增的止损止盈点参数。变量:包括UpLine、DownLine、MidLine、Band,以及用于跟踪止损的HighestAfterEntry、LowestAfterEntry等。逻辑:买卖条件基于价格突破布林带上轨或下轨。止损设置为固定点数(如30个点)。跟踪止损根据开仓后的最高价或最低价动态调整。止盈可另行设置。5.修改后的策略代码要点开仓条件保持不变。引入固定止损和跟踪止损。记录开仓后的最高价和最低价,用于跟踪止损的计算。根据市场位置和价格变动,执行相应的买卖动作。函数VariancePS求估计方差。ParamsNumericSeriesPrice(1);//声明数值型序列参数Price,赋值为1.NumericLength(10);//声明数值型参数Length,赋值10.NumericDataType(1);//声明数值型参数DataType,赋值为1.VarsNumericDivisor;//声明数值型变量Divisor。NumericSumSqr(0);//声明数值型变量SumSqr,赋值为0.NumericMean;//声明数值型变量Mean。Numerici;//声明数值型变量i。BeginDivisor=Length-1;//变量Divisor的值等于参数Length减去1.If(DataType==1)//假如参数DataType等于1,执行下列语句。Divisor=Length;//变量Divisor的值则等于参数Length。If(Divisor>0)//假如变量Divisor的值大于0。{Mean=Average(Price,Length);//变量Mean的值等于10个周期的平均价。fori=0toLength-1//循环的条件,就是从0开始到Length-1结束,就是在这期间的k线反复执行下列的语句。{SumSqr=SumSqr+Sqr(Price[i]-Mean);//又一个累加的语句,SumSqr赋值为0,Sqr是一个平方的意思,则Sqr(Price[i]-Mean)等同于(Price[i]-Mean)*(Price[i]-Mean),把这连起来意思就是SumSqr的值逐步累加}ReturnSumSqr/Divisor;//计算SumSqr总值除以变量Divisor的值,把相除得到的值返回给主函数。}Else//假如变量Divisor的值小于等于0,执行下列语句。{Return0;//返回的是0。}End求标准差函数StandardDev:ParamsNumericSeriesPrice(1);//声明数值型序列参数Price,赋值为1.NumericLength(10);//声明数值型参数Length,赋值为10.NumericDataType(1);//声明数值型参数DataType,赋值为1.VarsNumericVarPSValue;//声明数值型变量VarPSValue。BeginVarPSValue=VariancePS(Price,Length,DataType);//变量VarPSValue等于10k线的价格方差。If(VarPSValue>0)//假如变量VarPSValue大于0.{ReturnSqrt(VarPSValue);//求得正平方根,如果Sqrt里数字为负,则函数Sqrt返回无效值。这个就是把VarPSValue的平方返回给主函数,即布林通道计算可调用的值。}Else//假如VarPSValue小于或等于0的。{Return0;//返回给主函数就是0}End布林通道公式代码:ParamsNumericLength(20);//声明数值型参数Length,赋值为20.NumericOffset(2);//声明数值型参数Offset,赋值为2.VarsNumericUpLine;//上轨道,声明它为变量UpLine。NumericDownLine;//下轨道,声明它为变量DownLine。NumericSeriesMidLine;//中间线,声明它为序列变量MidLine。NumericBand;//声明变量Band。BeginMidLine=AverageFC(Close,Length);//中间线MidLine的值就是求它20个周期的收盘价均值。Band=StandardDev(Close,Length,2);//变量Band的值,直接调用StandardDev函数求出来,就是把收盘价,周期及数字2返回去求得。UpLine=MidLine+OffsetBand;//上轨道=20均线的值+系数值2*标准差。DownLine=MidLine-OffsetBand;//下轨道=20均线的值-系数值2*标准差。PlotNumeric("UpLine",UpLine);//画出上轨道。PlotNumeric("DownLine",DownLine);//画出下轨道。PlotNumeric("MidLine",MidLine);//画出中间线,即20日均线。End突破上下轨道进行买卖,止损就放在中间带上。策略信号代码:ParamsNumericLength(20);NumericOffset(2);VarsNumericSeriesUpLine;NumericSeriesDownLine;NumericSeriesMidLine;NumericBand;BeginMidLine=Average(Close,Length);Band=StandardDev(Close,Length,2);UpLine=MidLine+Offset*Band;DownLine=MidLine-Offset*Band;PlotNumeric("UpLine",UpLine);PlotNumeric("DownLine",DownLine);PlotNumeric("MidLine",MidLine);If(MarketPosition!=1&&Close[1]>UpLine[1]){Buy(1,Open);}If(MarketPosition!=-1&&Close[1]<DownLine[1]){SellShort(1,Open);}If(MarketPosition==1&&Close[1]<MidLine[1]){Sell(1,Open);}If(MarketPosition==-1&&Close[1]>MidLine[1]){BuyToCover(1,Open);}信号代码的注解:Params定义参数段,用于设置策略中使用的变量的初始值。NumericLength(20);定义一个名为
Length
的数值型变量,并初始化为20,用于计算移动平均和标准差。NumericOffset(2);定义一个名为
Offset
的数值型变量,并初始化为2,用于确定布林带的宽度。Vars定义变量段,用于声明策略中使用的变量。NumericSeriesUpLine;声明一个名为
UpLine
的数值型序列,用于存储布林带的上轨。NumericSeriesDownLine;声明一个名为
DownLine
的数值型序列,用于存储布林带的下轨。NumericSeriesMidLine;声明一个名为
MidLine
的数值型序列,用于存储布林带的中轨。NumericBand;声明一个名为
Band
的数值型变量,用于存储布林带的宽度。Begin开始策略的主体部分。MidLine=Average(Close,Length);计算中轨,即收盘价的
Length
周期移动平均。Band=StandardDev(Close,Length,2);计算布林带的宽度,即收盘价的
Length
周期标准差乘以2。UpLine=MidLine+Offset*Band;计算上轨,即中轨加上
Offset
倍的布林带宽度。DownLine=MidLine-Offset*Band;计算下轨,即中轨减去
Offset
倍的布林带宽度。PlotNumeric("UpLine",UpLine);在图表上绘制名为"UpLine"的布林带上轨。PlotNumeric("DownLine",DownLine);在图表上绘制名为"DownLine"的布林带下轨。PlotNumeric("MidLine",MidLine);在图表上绘制名为"MidLine"的布林带中轨。If(MarketPosition!=1&&Close[1]>UpLine[1]){...}如果当前市场位置不是多头且上一根K线的收盘价大于上轨,则执行以下操作。Buy(1,Open);执行买入操作。If(MarketPosition!=-1&&Close[1]<DownLine[1]){...}如果当前市场位置不是空头且上一根K线的收盘价小于下轨,则执行以下操作。SellShort(1,Open);执行卖出开空操作。If(MarketPosition==1&&Close[1]<MidLine[1]){...}如果当前市场位置是多头且上一根K线的收盘价小于中轨,则执行以下操作。Sell(1,Open);执行卖出平多操作。If(MarketPosition==-1&&Close[1]>MidLine[1]){...}如果当前市场位置是空头且上一根K线的收盘价大于中轨,则执行以下操作。BuyToCover(1,Open);执行买入平空操作。End结束修改一下:开仓条件不变,只改止损止盈点。给个固定止损最小变动的30个点。修改后信号代码ParamsNumericLength(20);NumericOffset(2);NumericStopPoint(45);NumericProfitPoint(100);NumericTrailingStart1(50);//跟踪止损启动设置1NumericTrailingStart2(80);//跟踪止损启动设置2NumericTrailingStop1(30);//跟踪止损设置1NumericTrailingStop2(20);//跟踪止损设置2NumericStopLossSet(30);//固定止损30个点VarsNumericSeriesUpLine;NumericSeriesDownLine;NumericSeriesMidLine;NumericBand;NumericSeriesHighestAfterEntry;//开仓后出现的最高价。NumericSeriesLowestAfterEntry;//开仓后出现的最低价。NumericMinPoint;NumericMyEntryPrice;Numericmyprice;Numericmyexitprice;BeginMidLine=Average(Close,Length);Band=StandardDev(Close,Length,2);UpLine=MidLine+Offset*Band;DownLine=MidLine-Offset*Band;PlotNumeric("UpLine",UpLine);PlotNumeric("DownLine",DownLine);PlotNumeric("MidLine",MidLine);If(MarketPosition!=1&&Close[1]>UpLine[1]){Buy(1,Open);}If(MarketPosition!=-1&&Close[1]<DownLine[1]){SellShort(1,Open);}If(BarsSinceentry==0){HighestAfterEntry=Close;LowestAfterEntry=Close;If(MarketPosition<>0){HighestAfterEntry=Max(HighestAfterEntry,AvgEntryPrice);//开仓的Bar,将开仓价和当时的收盘价的较大值保留到HighestAfterEntry。LowestAfterEntry=Min(LowestAfterEntry,AvgEntryPrice);//开仓的Bar,将开仓价和当时的收盘价的较小值保留到LowestAfterEntry。}}else{HighestAfterEntry=Max(HighestAfterEntry,High);//记录下当前Bar的最高点,用于下一个Bar的跟踪止损判断。/,LowestAfterEntry=Min(LowestAfterEntry,Low);//记录下当前Bar的最低点,用于下一个Bar的跟踪止损判断。}Commentary("HighestAfterEntry="+Text(HighestAfterEntry));Commentary("LowestAfterEntry="+Text(LowestAfterEntry));Commentary("MyEntryPrice="+Text(MyEntryPrice));MinPoint=MinMove*PriceScale;MyEntryPrice=AvgEntryPrice;If(MarketPosition==1)//有多仓的情况。{If(HighestAfterEntry[1]>=MyEntryPrice+TrailingStart2*MinPoint)//第二级跟踪止损的条件表达式。{If(Low<=HighestAfterEntry[1]-TrailingStop2*MinPoint){MyExitPrice=HighestAfterEntry[1]-TrailingStop2*MinPoint;Sell(0,MyExitPrice);}}elseif(HighestAfterEntry[1]>=MyEntryPrice+TrailingStart1*MinPoint)//第一级跟踪止损的条件表达式。{If(Low<=HighestAfterEntry[1]-TrailingStop1*MinPoint){MyExitPrice=HighestAfterEntry[1]-TrailingStop1*MinPoint;Sell(0,MyExitPrice);}}elseif(Low<=MyEntryPrice
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国集线器行业前景规划及投资潜力分析报告
- 2025-2030年中国铸造扣件市场发展现状及前景趋势分析报告
- 2025-2030年中国蚝油酱行业需求规模及发展趋势预测报告
- 2025-2030年中国草柳编制工艺品市场运营状况及投资规划研究报告
- 2025-2030年中国自动支票打字机专用色带行业运行态势及发展战略分析报告
- 2025-2030年中国羟丙基甲基纤维素行业十三五规划与发展策略分析报告
- 2025-2030年中国纯棉内衣市场运营状况及发展前景分析报告
- 2025-2030年中国科技地产行业竞争现状及投资战略研究报告
- 2025-2030年中国硫酸氧钒行业风险评估规划研究报告
- 2025-2030年中国真空冻干蔬菜行业运行状况及发展趋势预测报告
- 全国川教版信息技术八年级下册第一单元第3节《打印展示作品》教学设计
- 现代家谱名人录范文
- 质谱仪产品商业计划书
- 课件:举手意识课件讲解
- 中考体育培训合同
- 固定式、车载式、便携式反无人机实施方案
- 陕西省2024年高中学业水平合格考数学试卷试题(含答案)
- 美术基础试题库含答案
- 乡村研学旅行方案
- 《养老机构认知障碍照护专区设置与服务规范》
- DLT 5630-2021 输变电工程防灾减灾设计规程-PDF解密
评论
0/150
提交评论