欢迎来到天天文库
浏览记录
ID:37246982
大小:416.00 KB
页数:44页
时间:2019-05-20
《交易网校2012.1.5课程:交易开拓者公式编写基础(二)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、交易开拓者公式编写基础(二)蔡云华深圳开拓者科技有限公司1内容概要公式编写应注意的问题及解决办法止损止盈、跟踪止盈代码的编写TB用户函数的编写常用指标交易系统的实现2信号消失问题及解决办法产生的原因:使用BUY/Sell指令进行自动交易;交易(开仓或平仓)判断条件中使用了变化的数据后果:导致历史回测结果失真;导致后续交易指令出现问题;解决办法:用确定不变的数据来做为判断条件;用能保持结果不变的数据来做为判断条件;信号消失后,在代码中将最符合实际交易结果的信号补上(解决某些函数在历史测试无效
2、的问题)用确定不变的数据做判断比如:用前一根K线做判断举例:Condition=Close>MA;If(condition[1]){Buy(1,Open);}或者if(Close[1]>MA[1]){Buy(1,Open);}用能保持结果不变的数据做判断比如:用High、Low、Open等做判断突破代码:If(High>High[1]){buy(1,Max(Open,High[1]));}止损代码:if(Low3、中的收盘平仓的例子:If((Date[-1]!=InvalidInteger&&Date!=Date[-1])4、5、(Date[-1]==InvalidInteger&&Date=0.1459){Sell(0,Close);BuyToCover(0,Close);}连续建仓的控制全局交易设置---连续建仓的设置通过6、持仓函数Marketposition在代码中控制例7_1(限制连续建仓)Sample7_1:ParamsNumericLength1(10);NumericLength2(20);NumericLots(1);VarsNumericSeriesMA1;NumericSeriesMA2;BeginMA1=AverageFC(Close,Length1);MA2=AverageFC(Close,Length2);PlotNumeric("MA1",MA1);PlotNumeric("MA2",MA2);If(Market7、Position<>1andMA1[1]>MA2[1]){Buy(Lots,Open);}If(MarketPosition<>-1andMA1[1]1andMA1[18、]>MA2[1]){Buy(Lots,Open);}elseif(marketposition==1andMA1[1]>MA2[1]andhigh>High[1]){Buy(Lots,Max(Open,High[1]));}If(MarketPosition<>-1andMA1[1]9、;}突破时考虑滑点突破类系统必须考虑两种问题:跳空高开的情况突破的价格滑点考虑滑点后的代码(做多部分)ParamsNumericOffset(2);……elseif(marketposition==1andMA1[1]>MA2[1]andhigh>High[1]){Buy(Lots,Max(Open,High[1]+Offset*MinMove*PriceScale));}注释语句--CommentaryTB的信息输出,除了可以通过FileAppend输出到文件外,也可以将信息输出显示到图表上;Comme10、ntary的用法:在超级图表的当前BAR添加一行注释信息;参数:StringstrTip;//提示的信息CurrentContract函数止损止盈的编写以多单的止盈和止损为例固定跳数的止盈或止损的写法:if(MarketPosition==1){TargetPrice=EntryPrice+TakeProfit*MinMove*Price
3、中的收盘平仓的例子:If((Date[-1]!=InvalidInteger&&Date!=Date[-1])
4、
5、(Date[-1]==InvalidInteger&&Date=0.1459){Sell(0,Close);BuyToCover(0,Close);}连续建仓的控制全局交易设置---连续建仓的设置通过
6、持仓函数Marketposition在代码中控制例7_1(限制连续建仓)Sample7_1:ParamsNumericLength1(10);NumericLength2(20);NumericLots(1);VarsNumericSeriesMA1;NumericSeriesMA2;BeginMA1=AverageFC(Close,Length1);MA2=AverageFC(Close,Length2);PlotNumeric("MA1",MA1);PlotNumeric("MA2",MA2);If(Market
7、Position<>1andMA1[1]>MA2[1]){Buy(Lots,Open);}If(MarketPosition<>-1andMA1[1]1andMA1[1
8、]>MA2[1]){Buy(Lots,Open);}elseif(marketposition==1andMA1[1]>MA2[1]andhigh>High[1]){Buy(Lots,Max(Open,High[1]));}If(MarketPosition<>-1andMA1[1]9、;}突破时考虑滑点突破类系统必须考虑两种问题:跳空高开的情况突破的价格滑点考虑滑点后的代码(做多部分)ParamsNumericOffset(2);……elseif(marketposition==1andMA1[1]>MA2[1]andhigh>High[1]){Buy(Lots,Max(Open,High[1]+Offset*MinMove*PriceScale));}注释语句--CommentaryTB的信息输出,除了可以通过FileAppend输出到文件外,也可以将信息输出显示到图表上;Comme10、ntary的用法:在超级图表的当前BAR添加一行注释信息;参数:StringstrTip;//提示的信息CurrentContract函数止损止盈的编写以多单的止盈和止损为例固定跳数的止盈或止损的写法:if(MarketPosition==1){TargetPrice=EntryPrice+TakeProfit*MinMove*Price
9、;}突破时考虑滑点突破类系统必须考虑两种问题:跳空高开的情况突破的价格滑点考虑滑点后的代码(做多部分)ParamsNumericOffset(2);……elseif(marketposition==1andMA1[1]>MA2[1]andhigh>High[1]){Buy(Lots,Max(Open,High[1]+Offset*MinMove*PriceScale));}注释语句--CommentaryTB的信息输出,除了可以通过FileAppend输出到文件外,也可以将信息输出显示到图表上;Comme
10、ntary的用法:在超级图表的当前BAR添加一行注释信息;参数:StringstrTip;//提示的信息CurrentContract函数止损止盈的编写以多单的止盈和止损为例固定跳数的止盈或止损的写法:if(MarketPosition==1){TargetPrice=EntryPrice+TakeProfit*MinMove*Price
此文档下载收益归作者所有