我写了一个心理线指标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;
讲老实话,这应该不是你写的,这是某个ai写的吧
一看这一塌糊涂的语法就知道了
完全看不懂这ai在干什么...
求老师修改下,感谢,感谢
ai写的让ai改吧
看都看不懂怎么改
如果需要代写服务可以看置顶的收费服务