开拓者期货期权程序化系统交易论坛
标题:
波动突破系统,遇到问题,请教大侠们
[打印本页]
作者:
skykisser
时间:
2012-7-25 23:08:58
标题:
波动突破系统,遇到问题,请教大侠们
本帖最后由 skykisser 于 2012-7-25 23:10 编辑
自己写了一个跨周期调用ATR的波动突破系统,遇到两个问题。1,信号消失,不知道哪里写的不对了。2,我的入市信号是,无论市场上涨还是下跌相对于前一天收盘价0.7倍的最近5天的ATR,入市。但是信号出来仔细看了看并不是这样,我用的 highline=CloseD[1]+ATREntryset*ATREntryValue; Lowline=CloseD[1]-ATREntryset*ATREntryvalue;不知道这样写对不对。
代码如下:
//------------------------------------------------------------------------
// 简称: ATR突破
// 名称:
// 类别: 公式应用
// 类型: 用户应用
// 输出:
//------------------------------------------------------------------------
Params
Numeric length1(5);
Numeric Length2(20);
Numeric Length3(50);
Numeric ATREntrySet(0.7);
Numeric ATRExitSet(3);
Numeric offset(3);
Numeric TimeFrame(1440);
Numeric BarsBack(1);
Vars
Numeric Myentryprice;
Numeric ATRFilterValue;
Numeric ATREntryValue;
Numeric ATRExitValue;
NumericSeries MtATR;
Numeric oATRFilter;
Numeric oATREntry;
Numeric oATRExit;
NumericSeries highline;
NumericSeries Lowline;
Numeric i_offset;
Begin
i_offset = offset*MinMove*PriceScale;
MtATR(TimeFrame,BarsBack,Length3,oATRFilter);
MtATR(TimeFrame,BarsBack,Length1,oATREntry);
MtATR(TimeFrame,BarsBack,Length2,oATRExit);
ATRFilterValue=oATRFilter;
ATREntryValue=oATREntry;
ATRExitValue=oATRExit;
highline=CloseD[1]+ATREntryset*ATREntryValue;
Lowline=CloseD[1]-ATREntryset*ATREntryvalue;
PlotNumeric("Highline",Highline);
PlotNumeric("Lowline",Lowline);
If (MarketPosition == 0 && (ATREntryValue>0.6*ATRFilterValue))
{
If(Open>highline)
{Buy(1, Open+i_offset);
Myentryprice = Open;
}
If(Open<Lowline)
{Sellshort(1, Open-i_offset);
Myentryprice = Open;
}
}
If (MarketPosition == 1)
{
{
If(Open<myentryprice-0.5*ATRExitValue)
Sell (1, Open+i_offset);
}
If (MarketPosition == -1)
{
If(Open>myentryprice+0.5*ATRExitValue)
BuyToCover(1,Open-i_offset);
}
}
End
作者:
飞跃
时间:
2012-7-26 05:34:56
慎用 CloseD这之类的函数,还是自己编写程序取前一交易日的收盘价,写完后再试试看还有没有问题,呵呵
作者:
趋势跟踪
时间:
2012-7-26 06:37:50
CloseD应该使用圆括号,不能用方括号:例如CloseD(1)表示得到昨日收盘价。
欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/)
Powered by Discuz! X2