求老师修改
我写了一个心理线指标PSY用于过滤,这个指标源码是:PSY:COUNT(CLOSE>REF(CLOSE,1),N)/N*100;PSYMA:MA(PSY,M);大意是:输出PSY:统计N日中满足收盘价>1日前的收盘价的天数/N*100输出PSYMA:PSY的M日简单移动平均,我的诉求也简单,这个指标有两条线,日心理线和日移动平均线,就是要求当日心理线值小于等于50时才开仓,大于50不开仓,我写的后面的部分语法有错误,TB不通过,求老师修改,感谢至极!!!!Params Numeric N(12); // PSY计算周期(12日) (psy) Numeric M(6); // PSYMA均线周期(6日)(psy)Vars Numeric PSY(0); //PSY Numeric PSYMA(0); //PSY Bool CanTrade(false); //PSY // 策略主函数OnBar(ArrayRef<Integer> indices){ // === 指标计算 === NumericSeries PSY = CountIf(Close > Close[1], N) / N * 100; NumericSeries PSYMA = Average(PSY, M); // === 交易条件 === BoolSeries CanTrade = (PSY <= 40) && (PSY > PSY[1]); // 动量过滤 // === 交易执行 === If (CanTrade[0] && MarketPosition == 0) { Buy(Lots, Open); Commentary("PSY=" + Text(PSY[0]) + " PSYMA=" + Text(PSYMA[0])); }} // 策略主函数 OnBar(ArrayRef<Integer> index) Begin // === 指标计算 === PSY = CountIf(Close > Close[1], N) / N * 100; PSYMA = Average(PSY, M); // === 交易条件 === CanTrade = (PSY <= 40) And (PSY > PSY[1]); // 增加动量过滤 // === 交易执行 === If (CanTrade And MarketPosition == 0) Then Begin Buy(Lots, Open); Commentary("PSY=" + Text(PSY) + " PSYMA=" + Text(PSYMA)); End;End;