龙哥量化:通达信文华技术指标-双均线策略叠加分时均线,量化策略思路详细分析
如果您需要代写技术指标公式, 请联系我。
龙哥QQ:591438821
龙哥微信:Long622889
也可以把您的通达信,文华技术指标改成TB交易开拓者、金字塔、文华8的自动交易量化策略
开始分享一些细致化的思路和写法,我常用的是TB交易开拓者。对量化感兴趣的朋友可以多交流
这篇介绍重点介绍分时均线的写法,用双均线举例开仓平仓
分时均线的计算公式是,从每个交易日的第一个K线开始累加,累加的成交额,除以,累积的成交量
开仓逻辑:
ma1金叉ma2,而且,收盘价在分时均线之上,开多
ma1死叉ma2,而且,收盘价在分时均线之下,开空
平仓逻辑:
只要是死叉平多,不用管收盘价是不是在分时均线之上,因为死叉有可能出现在分时均线之上,也有可能在之下
只要死叉就平空
尾盘最后一分钟14:59,清仓
核对交易信号
核对交易记录
用文华6,核对分时均线是否正确
//是解释文字,
可以复制的代码,
Params Numeric qty(1); Numeric ma1_n(20); Numeric ma2_n(60); Vars Series<bool> BK_xinhao; Series<bool> SK_xinhao; Series<bool> BP_xinhao; Series<bool> SP_xinhao; Series<Numeric> ma1; Series<Numeric> ma2; Series<Numeric> baramount; Series<Numeric> barvol; Series<Numeric> RD_dayavg; Series<Numeric> dayavg; Global Numeric time2; Events OnInit() { AddDataFlag(Enum_Data_RolloverBackWard()); //设置后复权 AddDataFlag(Enum_Data_RolloverRealPrice()); //设置映射真实价格 AddDataFlag(Enum_Data_AutoSwapPosition()); //设置自动换仓 AddDataFlag(Enum_Data_IgnoreSwapSignalCalc()); //设置忽略换仓信号计算 } onBar(ArrayRef<Integer> indexs) { //分时均线计算 if(TrueDate(0)!=TrueDate(1)) //TrueDate-求指定bar的真正交易日期, 这行是找到每天的第一个K线,21:00 是每个交易日的第一个K线 { baramount=(close+open+high+low)*0.25*Vol; //因为期货没有成交额函数,只能用高开低收的平均值,再乘成交量vol,计算每根K线的成交额 barvol=vol;//成交量 RD_dayavg=baramount / barvol; //第一根K线的分时均价=成交额÷成交量 }else //上半部分只是计算第一个K线,下面是计算当日交易的其他K线,用累加的方式 { baramount = baramount[1]+(close+open+high+low)*0.25*vol; //比如 //现在是21:02,第二个K线,(close+open+high+low)*0.25*vol计算出第二个K线的成交额,然后累加上一个成交额baramount[1], //得到两个K线总的成交额baramount //现在是21:02,第三个K线,(close+open+high+low)*0.25*vol计算出第三个K线的成交额,然后累加前面计算的总成交额baramount[1], //得到三个K线总的成交额baramount barvol = barvol[1]+vol; //成交量也是同理 } dayavg = baramount / barvol; //累计的成交额÷累积的成交量,得到分时均线dayavg PlotAuto("dayavg",dayavg, dayavg,yellow,Enum_Line,Enum_Solid,Enum_2Pix); //画出分时均线dayavg,黄线yellow,加粗Enum_2Pix ma1 = Averagefc(close,20); //计算短均线,Averagefc求平均值,作用和通达信的ma函数一样 通达信的写法是ma1:ma(close,20); ma2 = Averagefc(close,60); //计算长均线,写法稍有区别,很简单的 PlotNumeric("ma1",ma1,ma1,red); //PlotNumeric函数专门画线,画ma1均线,红色, PlotNumeric("ma2",ma2,ma2,green); //画ma2均线,绿色 time2=IntPart(Time*10000); //K线时间,比如说21:05,time的数值是0.210500,所以乘10000 Commentary("time2:" + Text(IntPart(Time*10000))); //在K线图看时间 //--多信号------------------------------------------------------------- BK_xinhao = CrossOver(ma1,ma2) and close>dayavg; //ma1金叉ma2,而且,收盘价在分时均线之上,开多 SP_xinhao = Crossunder(ma1,ma2); //只要是死叉平多,不用管收盘价是不是在分时均线之上 //--空信号------------------------------------------------------------- SK_xinhao = Crossunder(ma1,ma2) and close<dayavg; //ma1死叉ma2,而且,收盘价在分时均线之下,开空 BP_xinhao = CrossOver(ma1,ma2); //只要死叉就平空 //--建仓----------------------------------------------------------------------- if (MarketPosition==0 and BK_xinhao[1]) { Buy(qty, open); } if (MarketPosition==0 and SK_xinhao[1]) { SellShort(qty, open); } if (MarketPosition>0 and SP_xinhao[1]) { Sell(0, open); } if (MarketPosition<0 and BP_xinhao[1]) { BuyToCover(0, open); } if(time2==1459) //尾盘最后一分钟,清仓 { if (MarketPosition>0) { Sell(0, open); } if (MarketPosition<0) { BuyToCover(0, open); } } }
分类:
TB交易开拓者
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [翻译] 为什么 Tracebit 用 C# 开发
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· 刚刚!百度搜索“换脑”引爆AI圈,正式接入DeepSeek R1满血版