有大神看看为什么总提示缺少分号吗
MACDValue > 0 And AvgMACD > 0 And CountIf(s,BARSLAST(MACDValue < 0 And AvgMACD < 0)) = 1 And s And L > ma1 And at;MACDValue < 0 And AvgMACD < 0 And CountIf(s,BARSLAST(MACDValue > 0 And AvgMACD > 0)) = 1 And s And L > ma1 And at;
MACDValue > 0 And AvgMACD > 0 And CountIf(s,BARSLAST(MACDValue < 0 And AvgMACD < 0)) = 1 And s And L > ma1 And rt;
MACDValue < 0 And AvgMACD < 0 And CountIf(s,BARSLAST(MACDValue > 0 And AvgMACD > 0)) = 1 And s And L > ma1 And rt;
判断式是的等于符号是 == dt1 = Close > MA3;
dt2 = MA1 > MA1 *Min;
dt3 = MA2 > MA2 *Min;
dt = dt1 And dt2 And dt3;
kt1 = Close < MA3;
kt2 = MA1 < MA1 *Min;
kt3 = MA2 < MA2 *Min;
kt = kt1 And kt2 And kt3;
我想用均线设立一下多空头的的指标,但是说不是变量不能回溯,什么意思?我的思路是MA1比前一个MA1大,MA2比前一个MA2大,且最新价在MA3上方定义为多头,MA是均线,要怎么写? baimazhuijishou 发表于 2019-2-27 10:46 static/image/common/back.gif
dt1 = Close > MA3;
dt2 = MA1 > MA1 *Min;
dt3 = MA2 > MA2 *Min;
将MA1,MA2,MA3等变量声明为numericsereies类型的。 MINPRICE 老师文华这个取合约最少变动价位,TB是哪个函数 baimazhuijishou 发表于 2019-2-27 11:48 static/image/common/back.gif
MINPRICE 老师文华这个取合约最少变动价位,TB是哪个函数
minmove*pricescale bk1 = MACDValue > 0 And AvgMACD > 0 And CountIf(s,NthCon(MACDValue < 0 And AvgMACD < 0)) == 1 And s And L > MA4 And dt;
bk2 = MACDValue < 0 And AvgMACD < 0 And CountIf(j,NthCon(MACDValue > 0 And AvgMACD > 0)) == 1 And j And L > MA4 And dt;
我这个公式意思是macd快慢线上穿0轴后第一次死叉就出信号,为什么加载后没信号显示 baimazhuijishou 发表于 2019-2-27 13:28 static/image/common/back.gif
bk1 = MACDValue > 0 And AvgMACD > 0 And CountIf(s,NthCon(MACDValue < 0 And AvgMACD < 0)) == 1 And s ...
条件里有很多判断式,任一判断式不成立,自然就 不会有信号。
另countif的用法不对,一个是需要放到条件外进行赋值运算,二个是该函数的第二个参数应该是周期长度的数值,且不能将nthcon的运算当参数,也是需要放到条件外计算才可代入。三个是nthcon的用法也不会,请先看一下帮助文档里的函数说明。
能改个正确人公式我参考哪里出问题吗?现在就是对公式函数不熟悉,没有一个思路去学,不懂怎么运用,如果有个正确的做参考,在研究就比较容易明白函数的含义,谢谢
Params
Numeric Lots(1);
Numeric FastLength(12);
Numeric SlowLength(26);
Numeric MACDLength(9);
Vars
BoolSeries BuyEntry(False);
BoolSeries SellEntry(False);
BoolSeries BuyExit(False);
BoolSeries SellExit(False);
Numeric MinPoint; // 一个最小变动单位,也就是一跳
NumericSeries AvgMACD;
NumericSeries MACD;
Numeric MACDDiff;
Begin
MinPoint = MinMove*PriceScale;
//过滤集合竞价
If(BarType==1 && BarStatus==2 && (Time==0.210000||Time==0.090000) && High==Low) return; //分钟周期过滤集合竞价
If(BarType!=1 && !CallAuctionFilter()) return; //其他周期的过滤集合竞价
//MA
//MACD
MACD= XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;
AvgMACD = XAverage(MACD,MACDLength);
MACDDiff = MACD - AvgMACD;
PlotNumeric("MACD",MACD);
PlotNumeric("MACDAvg",AvgMACD);
//开平仓条件
SellEntry = MACD>= MACDDiff and AvgMACD >= MACDDiff ; //开空
BuyEntry = MACD <= MACDDiff and AvgMACD <= MACDDiff ; //开多
SellExit = CrossOver(MACD,AvgMACD); //平空
BuyExit = CrossUnder(MACD,AvgMACD); //平多
//程序主体
If(MarketPosition<> 1 and BuyEntry and CrossOver(MACD,AvgMACD) )
{
Buy(Lots,Open);
Commentary("开多");
}
If(MarketPosition<>-1 and SellEntry and CrossUnder( MACD,AvgMACD) )
{
SellShort(Lots,Open);
Commentary("开空");
}
If(MarketPosition==-1 && BarsSinceLastEntry>=1 )
{
If( SellExit )
{
BuyToCover(0,Open);
Commentary("平空");
}
}
If(MarketPosition==1 && BarsSinceLastEntry>=1 )
{
If( BuyExit)
{
Sell(0,Open);
Commentary("平多");
}
}
End
页:
[1]
2