新手求指点marketposttion的问题 [开拓者 TB]
- 咨询内容:
Params
Numeric teLength(16); // 离市周期 Trailing Exit Length,在15分钟上用16表达为4小时K线的最低或最高价
Numeric FastLength(12);
Numeric SlowLength(26);
Numeric MACDLength(9);
Vars
NumericSeries MACDValue;
NumericSeries AvgMACD;
Numeric MACDDiff;
Numeric ExitHighestPrice; // 离市时判断需要的N周期最高价
Numeric ExitLowestPrice; // 离市时判断需要的N周期最低价
BoolSeries Condition1;
BoolSeries Condition2;
NumericSeries duo;
NumericSeries kong;
NumericSeries yid;
NumericSeries yik;
Begin
MACDValue = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;
AvgMACD = XAverage(MACDValue,MACDLength);
MACDDiff = MACDValue - AvgMACD;
PlotNumeric("MACD",MACDValue);
PlotNumeric("MACDAvg",AvgMACD);
If (MACDDiff >= 0)
PlotNumeric("MACDDiff",MACDDiff,0,Red);
Else
PlotNumeric("MACDDiff",MACDDiff,0,Green);
PlotNumeric("零线",0);
Condition1 = CrossOver(MACDValue,AvgMACD); //金叉买进
Condition2 = CrossUnder(MACDValue,AvgMACD); //死叉卖出
ExitLowestPrice = LowestFC(Low[1],teLength);
ExitHighestPrice = HighestFC(High[1],teLength);
If(MarketPosition!=0)
{
If(Condition1[1] && AvgMACD[1]<0 ) // 0线以下金叉开多
{
Buy(1,Open);
duo=ExitLowestPrice-50;
yid=(open-duo)*2+Open;
}Else If(Condition2[1] && AvgMACD[1]>0 ) //0线以上死叉开空
{
SellShort(1,Open);
kong=ExitHighestPrice+50;
yik=Open-(kong-Open)*2;
}
}
If(MarketPosition==1)
{
If(Open>=yid)
{
Sell(0,Open);
}Else
{
If(open<=duo)
{
Sell(0,Open);
}
}
}
If(MarketPosition==-1)
{
If(open<=yik)
{
BuyToCover(0,Open);
}Else
{
If(open>=kong)
{
BuyToCover(0,open);
}
}
}
End
这一段代码中,为什么 有marketposition!=0这个条件,它就不开仓,去掉marketposition!=0就可以正常开仓。 - TB技术人员:
marketposition==0说明是没有信号持仓的情况下。
marketposition!=0 是指已经有信号持仓的情况下。
加上marketposition!=0的条件是指已经有信号持仓后再去执行相应的指令。。
整个公式后面的指令也是判断==1或==-1时,即加仓的指令。。
那图表上加载一个公式时,一定是从0信号开始的。。在信号持仓为0时是不满足你的任一开仓指令的。
自然,就一个信号也没有了。
在公式里这个位置加上这个marketposition!=0的判断明显是不合理的。 - TB客服: 谢谢,版主老大,说明文件上没写这个。我改成==0了,没问题了!
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容