- 精华
- 0
- 在线时间
- 30 小时
- UID
- 62557
- 积分
- 124
- 帖子
- 27
- 阅读权限
- 40
- 注册时间
- 2011-8-31
- 最后登录
- 2017-1-10
- 精华
- 0
- UID
- 62557
- 积分
- 124
- 帖子
- 27
- 主题
- 8
- 阅读权限
- 40
- 注册时间
- 2011-8-31
- 最后登录
- 2017-1-10
|
改成Commentary也一样啊
Params
Numeric Length1(10); //短期均线的周期
Numeric Length2(20); //长期均线的周期
Numeric ATRLength(100); //ATR周期,用于计算开仓数量和止损位置。
Vars
NumericSeries MA1; //短期均线当前的值
NumericSeries MA2; //长期均线当前的值
NumericSeries PreEntryPrice(0); //止损后,记录止损前的开仓价。
NumericSeries PreEntryPrice2(0);
NumericSeries DebugNumber;
Numeric OpenShares(0);
Begin
MA1 = AverageFC(Close,Length1);
MA2 = AverageFC(Close,Length2);
PlotNumeric("MA1",MA1);
PlotNumeric("MA2",MA2);
PlotNumeric("PreEntryPrice",PreEntryPrice);
//PlotNumeric("currentbar",currentbar);
Commentary("currentbar="+Text(currentbar));
DebugNumber = 0;
if(CurrentBar == (Max(Max(Length1,Length2),ATRLength))-2)
//If(currentbar == 0)
{
PreEntryPrice = 0;
}
if((MA1!=InvalidNumeric) && (MA2!=InvalidNumeric))
{
if(MarketPosition == 0) // 目前还没有持仓,检查是否有交叉开仓,是否有之前止损的续开。
{
DebugNumber = 6;
if(CrossOver(MA1,MA2))
{
DebugNumber = 1;
OpenShares = OpenShare(1,ATRLength,1);
Buy(OpenShares,Close);
PreEntryPrice = EntryPrice;
}
else if(CrossOver(MA2,MA1))
{
DebugNumber = 2;
OpenShares = OpenShare(1,ATRLength,1);
SellShort(OpenShares,Close);
PreEntryPrice = EntryPrice;
}
else if((MA1>MA2) && (Close>PreEntryPrice) && (PreEntryPrice!=0)) // 多头市场并收盘价大于止损前开仓的价格
{
DebugNumber = 3;
OpenShares = OpenShare(1,ATRLength,1);
Buy(OpenShares,Close);
PreEntryPrice = EntryPrice;
}
else If((MA1<MA2) && (Close<PreEntryPrice) && (PreEntryPrice!=0)) // 空头市场并收盘价小于止损前开仓的价格
{
DebugNumber = 4;
OpenShares = OpenShare(1,ATRLength,1);
SellShort(OpenShares,Close);
PreEntryPrice = EntryPrice;
}
}
else if(MarketPosition == 1) // 目前持有多单,检查是否要止损,是否要反手
{
DebugNumber = 7;
if(CrossOver(MA2,MA1))
{
OpenShares = OpenShare(1,ATRLength,1);
SellShort(OpenShares,Close);
PreEntryPrice = EntryPrice;
}
else
{
Commentary("ATRATR="+Text(Average(TrueRange,ATRLength)));
StopLoss(EntryPrice,Average(TrueRange,ATRLength));
}
}
else if(MarketPosition == -1) // 目前持有空单,检查是否要止损,是否要反手
{
DebugNumber = 8;
if(CrossOver(MA1,MA2))
{
OpenShares = OpenShare(1,ATRLength,1);
Buy(OpenShares,Close);
PreEntryPrice = EntryPrice;
}
else
{
Commentary("ATRATR="+Text(Average(TrueRange,ATRLength)));
StopLoss(EntryPrice,Average(TrueRange,ATRLength));
}
}
Commentary("PreEntryPrice="+Text(PreEntryPrice));
Commentary("MarketPosition="+Text(MarketPosition));
Commentary("DebugNumber="+Text(DebugNumber));
Commentary("OpenShares="+Text(OpenShares));
Commentary("ATR="+Text(Average(TrueRange,ATRLength)));
}
End |
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
|