




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
幽灵交易者系统(TB版)一、系统概述幽灵交易者系统是一个基于TB平台的交易策略系统,主要通过指数平均线、RSI指标和唐奇安通道等技术分析工具进行交易决策。系统分为做多信号和做空信号两部分,各自包含明确的入场和出场条件。二、系统要素两条指数平均线:短期指数平均线(FastLength,默认值9)长期指数平均线(SlowLength,默认值19)RSI指标:计算RSI所用的周期(Length,默认值9)超卖阈值(OverSold,默认值30)超买阈值(OverBought,默认值70)唐奇安通道:上轨(ExitHiBand,通过Highest函数计算最近20个最高价)下轨(ExitLoBand,通过Lowest函数计算最近20个最低价)三、入场条件做多信号:模拟交易产生一次亏损短期均线在长期均线之上RSI低于超买值创新高做空信号:模拟交易产生一次亏损(根据逻辑推断,做空也应遵循此条件)短期均线在长期均线之下RSI高于超卖值创新低四、出场条件持有多单时:价格小于唐奇安通道下轨,则平多单持有空单时:价格大于唐奇安通道上轨,则平空单五、代码解读参数定义:系统通过Params部分定义了多个数值型参数,包括指数平均线的周期、RSI计算周期、超买超卖阈值以及交易手数等。变量定义:Vars部分定义了多个数值序列变量和数值变量,用于存储计算过程中的中间值和最终结果,如指数平均线值、RSI值、唐奇安通道上下轨、进场价格、出场价格、利润以及多空状态等。计算逻辑:首先,系统通过Xaverage函数计算短期和长期指数平均线。接着,根据当前K线的位置计算RSI相关指标(NetChgAvg和TotChgAvg),进而得到RSI值。然后,通过Highest和Lowest函数计算唐奇安通道的上轨和下轨。最后,根据多空状态和价格条件执行入场或出场操作。交易执行:在满足入场条件时,系统会根据利润状态决定是否开仓。在满足出场条件时,系统执行平仓操作,并计算利润。六、策略说明系统采用了一种模拟交易产生一次亏损后才启动真实下单交易的策略,旨在通过模拟交易测试市场条件,提高真实交易的准确性和盈利能力。同时,系统结合了多种技术分析工具,形成了较为完整的交易决策体系。做多信号代码:ParamsNumericFastLength(9);NumericSlowLength(19);NumericLength(9);NumericOverSold(30);NumericOverBought(70);NumericLots(0);VarsNumericSeriesAvgValue1;NumericSeriesAvgValue2;NumericSeriesNetChgAvg(0);NumericSeriesTotChgAvg(0);NumericSF(0);NumericChange(0);NumericChgRatio(0);NumericSeriesRSIValue;NumericSeriesExitHiBand(0);NumericSeriesExitLoBand(0);NumericSeriesmyEntryPrice(0);NumericSeriesmyExitPrice(0);NumericSeriesmyProfit(0);NumericSeriesmyPosition(0);BeginIf(!CallAuctionFilter())Return;AvgValue1=Xaverage(Close,FastLength);AvgValue2=Xaverage(Close,SlowLength);//计算RSIIf(CurrentBar<=Length-1){NetChgAvg=(Close-Close[Length])/Length;TotChgAvg=Average(Abs(Close-Close[1]),Length);}Else{SF=1/Length;Change=Close-Close[1];NetChgAvg=NetChgAvg[1]+SF*(Change-NetChgAvg[1]);TotChgAvg=TotChgAvg[1]+SF*(Abs(Change)-TotChgAvg[1]);}If(TotChgAvg<>0){ChgRatio=NetChgAvg/TotChgAvg;}Else{ChgRatio=0;}RSIValue=50*(ChgRatio+1);ExitHiBand=Highest(High,20);ExitLoBand=Lowest(Low,20);If(myPosition==1AndmyPosition[1]==1andLow<=ExitLoBand[1]){myExitPrice=Min(Open,ExitLoBand[1]);Sell(0,myExitPrice);myProfit=myExitPrice-MyEntryPrice;myPosition=0;}If(myPosition==0AndmyPosition[1]==0AndAvgValue1[1]>AvgValue2[1]AndRSIValue[1]<OverBoughtandHigh>=High[1]){myEntryPrice=Max(Open,High[1]);myPosition=1;If(myProfit<0)Buy(Lots,myEntryPrice);}End策略说明:模拟交易产生一次亏损后才启动真实下单交易。系统要素:1、两条指数平均线2、RSI指标3、唐奇安通道入场条件:1、模拟交易产生一次亏损、短期均线在长期均线之上、RSI低于超买值、创新高,则开多单2、模拟交易产生一次亏损、短期均线在长期均线之下、RSI高于超卖值、创新低,则开空单出场条件:1、持有多单时小于唐奇安通道下轨,平多单2、持有空单时大于唐奇安通道上轨,平空单做多代码解读:ParamsNumericFastLength(9);//声明数值参数FastLength,初值9,即短期指数平均线参数。NumericSlowLength(19);//声明数值参数SlowLength,初值19,即长期指数平均线参数。NumericLength(9);//声明数值参数Length,初值9,即RSI参数。NumericOverSold(30);//声明数值参数OverSold,初值30,即超卖。NumericOverBought(70);//声明数值参数OverBought,初值70,即超买。NumericLots(0);//声明数值参数Lots,初值0,即交易手数设置。VarsNumericSeriesAvgValue1;//声明数值序列变量AvgValue1,即短期指数平均线。NumericSeriesAvgValue2;//声明数值序列变量AvgValue2,即长期指数平均线。NumericSeriesNetChgAvg(0);//声明数值序列变量NetChgAvg,初值0。NumericSeriesTotChgAvg(0);//声明数值序列变量TotChgAvg,初值0.NumericSF(0);//声明数值变量SF,初值0.NumericChange(0);//声明数值变量Change,初值0.NumericChgRatio(0);//声明数值变量ChgRatio,初值0.NumericSeriesRSIValue;//声明数值序列变量RSIValue,即RSI指标。NumericSeriesExitHiBand(0);//声明数值序列变量ExitHiBand,初值0,唐奇安通道上轨。NumericSeriesExitLoBand(0);//声明数值序列变量ExitLoBand,初值0,唐奇安通道下轨。NumericSeriesmyEntryPrice(0);//声明数值序列变量myEntryPrice,初值0,进场价格。NumericSeriesmyExitPrice(0);//声明数值序列变量myExitPrice,初值0,出场价格。NumericSeriesmyProfit(0);//声明数值序列变量myProfit,初值0,即利润。NumericSeriesmyPosition(0);//声明数值序列变量myPosition,初值0,即多空标志。BeginIf(!CallAuctionFilter())Return;//集合竞价和小节休息过滤。AvgValue1=Xaverage(Close,FastLength);//计算短期指数平均线,即把收盘价与周期9返回函数Xaverage求值。AvgValue2=Xaverage(Close,SlowLength);//同理,计算长期指数平均线参数。//计算RSI。If(CurrentBar<=Length-1)//假如当前索引k线数位值小于等于周期8。{NetChgAvg=(Close-Close[Length])/Length;//代入相应数值计算,即得NetChgAvg=(close-close[9])/9TotChgAvg=Average(Abs(Close-Close[1]),Length);//先算绝对值函数Abs里的,再把绝对值与周期9返回均值函数Average求均值,最后赋值给变量TotChgAvg。}Else//就是k线数位值大于周期8。{SF=1/Length;//代入相应数值,即SF=1/9。Change=Close-Close[1];//同理,代入当期k线收盘价与前一k线收盘价即可。NetChgAvg=NetChgAvg[1]+SF*(Change-NetChgAvg[1]);//代入上边求得的相应数值TotChgAvg=TotChgAvg[1]+SF*(Abs(Change)-TotChgAvg[1]);//同上解读。}If(TotChgAvg<>0)//假如变量TotChgAvg不等于0{ChgRatio=NetChgAvg/TotChgAvg;//则两变量相除}Else//等于0{ChgRatio=0;//变量ChgRatio=0}RSIValue=50*(ChgRatio+1);//指标RSI的计算结果ExitHiBand=Highest(High,20);//唐奇安通道上轨。ExitLoBand=Lowest(Low,20);//唐奇安通道下轨。If(myPosition==1AndmyPosition[1]==1andLow<=ExitLoBand[1])//持有多单时,下破唐奇安通道下轨,平多单。{myExitPrice=Min(Open,ExitLoBand[1]);//出场价的计算,开盘价与前一个唐奇安通道下轨的比较,取较小值。Sell(0,myExitPrice);//平仓。myProfit=myExitPrice-MyEntryPrice;//利润算法。myPosition=0;//持仓多空标志myPosition=0.}If(myPosition==0AndmyPosition[1]==0AndAvgValue1[1]>AvgValue2[1]AndRSIValue[1]<OverBoughtandHigh>=High[1])//模拟交易产生一次亏损、短期均线在长期均线之上、RSI低于超买值、创新高,则开多单。{myEntryPrice=Max(Open,High[1]);//进场价计算,即开盘价与前一个最高价的比较,取较大值。myPosition=1;//持仓多空标志myPosition=1.If(myProfit<0)Buy(Lots,myEntryPrice);//假如利润myProfit<0的,以进场价开仓。}End做空信号代码:ParamsNumericFastLength(9);NumericSlowLength(19);NumericLength(9);NumericOverSold(30);NumericOverBought(70);NumericLots(0);VarsNumericSeriesAvgValue1;NumericSeriesAvgValue2;NumericSeriesNetChgAvg(0);NumericSeriesTotChgAvg(0);NumericSF(0);NumericChange(0);NumericChgRatio(0);NumericSeriesRSIValue;NumericSeriesExitHiBand(0);NumericSeriesExitLoBand(0);NumericSeriesmyEntryPrice(0);NumericSeriesmyExitPrice(0);NumericSeriesmyProfit(0);NumericSeriesmyPosition(0);BeginIf(!CallAuctionFilter())Return;AvgValue1=Xaverage(Close,FastLength);AvgValue2=Xaverage(Close,SlowLength);If(CurrentBar<=Length-1){NetChgAvg=(Close-Close[Length])/Length;TotChgAvg=Average(Abs(Close-Close[1]),Length);}Else{SF=1/Length;Change=Close-Close[1];NetChgAvg=NetChgAvg[1]+SF*(Change-NetChgAvg[1]);TotChgAvg=TotChgAvg[1]+SF*(Abs(Change)-TotChgAvg[1]);}If(TotChgAvg<>0){ChgRatio=NetChgAvg/TotChgAvg;}Else{ChgRatio=0;}RSIValue=50*(ChgRatio+1);ExitHiBand=Highest(High,20);ExitLoBand=Lowest(Low,20);If(myPosition==-1AndmyPosition[1]==-1andHigh>=ExitHiBand[1]){myExitPrice=Max(Open,ExitHiBand[1]);BuyToCover(0,myExitPrice);myProfit=myEntryPrice-MyExitPrice;myPosition=0;}If(myPosition==0AndmyPosition[1]==0AndAvgValue1[1]<AvgValue2[1]AndRSIValue[1]>OverSoldandLow<=Low[1]){myEntryPrice=Min(Open,Low[1]);myPosition=-1;If(myProfit<0)SellShort(Lots,myEntryPrice);}End做空代码注解:#参数定义部分Params#定义数值型参数FastLength,初始值为9,用于短期指数平均线的计算NumericFastLength(9);#定义数值型参数SlowLength,初始值为19,用于长期指数平均线的计算NumericSlowLength(19);#定义数值型参数Length,初始值为9与RSI指标计算相关NumericLength(9);#定义数值型参数OverSold,初始值为30,超卖阈值NumericOverSold(30);#定义数值型参数OverBought,初始值为70,超买阈值NumericOverBought(70);#定义数值型参数Lots,初始值为0,用于设置交易手数NumericLots(0);#变量定义部分Vars#定义数值序列变量AvgValue1,用于存储短期指数平均线的值NumericSeriesAvgValue1;#定义数值序列变量AvgValue2,用于存储长期指数平均线的值NumericSeriesAvgValue2;#定义数值序列变量NetChgAvg,初始值为0NumericSeriesNetChgAvg(0);#定义数值序列变量TotChgAvg,初始值为0NumericSeriesTotChgAvg(0);#定义数值变量SF,初始值为0NumericSF(0);#定义数值变量Change,初始值为0NumericChange(0);#定义数值变量ChgRatio,初始值为0NumericChgRatio(0);#定义数值序列变量RSIValue,用于存储RSI指标的值NumericSeriesRSIValue;#定义数值序列变量ExitHiBand,初始值为0,唐奇安通道上轨NumericSeriesExitHiBand(0);#定义数值序列变量ExitLoBand,初始值为0,唐奇安通道下轨NumericSeriesExitLoBand(0);#定义数值序列变量myEntryPrice,初始值为0,进场价格NumericSeriesmyEntryPrice(0);#定义数值序列变量myExitPrice,初始值为0,出场价格NumericSeriesmyExitPrice(0);#定义数值序列变量myProfit,初始值为0,是利润NumericSeriesmyProfit(0);#定义数值序列变量myPosition,初始值为0,表示多空状态NumericSeriesmyPosition(0);Begin#如果处于集合竞价或小节休息阶段,直接返回If(!CallAuctionFilter())Return;#计算短期指数平均线并赋值给AvgValue1AvgValue1=Xaverage(Close,FastLength);#计算长期指数平均线并赋值给AvgValue2AvgValue2=Xaverage(Close,SlowLength);#根据当前K线的位置计算RSI相关指标If(CurrentBar<=Length-1){#计算NetChgAvgNetChgAvg=(Close-Close[Length])/Length;#计算TotChgAvgTotChgAvg=Average(Abs(Close-Close[1]),Length);}Else{#计算SFSF=1/Length;#计算ChangeChange=Close-Close[1];#计算NetChgAvgNetChgAvg=NetChgAvg[1]+SF*(Change-NetChgAvg[1]);#计算TotChgAvgTotChgAvg=TotChgAvg[1]
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 嵌入式应用场景试题及答案
- 计算机三级考试注意事项试题及答案
- 2024–2025年中国数据标注产业深度分析报告
- 组织中的冲突管理与领导策略试题及答案
- 电子商城销售商品采购合同
- 家庭学习计划(4篇)
- 环境工程水处理技术实务试题
- 物流管理理论及应用测试题
- 测试工具的性能评估方法试题及答案
- 数据库表的设计与增强方法试题及答案
- 小微型客车租赁经营备案表
- 教育培训机构办学许可证申请书(样本)
- 瓷砖业务员提成方案
- 2022年一级注册计量师案例分析真题
- “三级”安全安全教育记录卡
- 爱莲说-王崧舟
- 小微企业信用评级标准模板
- 车辆安全设施设备定期检查台账
- 超危大工程实施指导手册宣贯
- 人教版小学五年级数学竞赛试题及答案
- 福州一中历年自主招生物理试卷(整理)
评论
0/150
提交评论