老师好!
我写了一个心理线指标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不通过,求老师修改,感谢至极!!!!
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]));
}
}
还有一个办法,用简语言
AI对简语言掌握程度高,而且简语言自己看看也能懂个七七八八
下载TBQ3简语言版本,把AI给你的代码你读起来没有太大问题,就弄进去测试
出现bug继续问AI
ai写的还是得找ai处理啊
是我一个朋友,他也不太懂,求老师给改下
肯定是ai,类似的这种写法,已经有很多人问过了。
看你上一个帖子写的格式大概率是DS写的。
老师讲过,最好不要用ai去做自己完全不懂的事情,因为无法辨别输出是否符合需求。
语法都是错的。要分析你的实际需求,再去改啥也不是的代码,跟重新写没啥区别。
要么直接把逻辑写完整投稿,要么有收费代编。
老师,麻烦您改一下,有机会去南山当面感谢,其他方式的感谢也可以,方便的话加一下,我住罗湖这边
你的这个朋友是叫deepseek还是叫豆包还是叫kimi啊....
我在上海办公,不在南山。
事先申明,我没有收过感谢,不存在py交易啊
我只能把代码改成能通过编译的形式,就是语法起码正确了。
但是原版的这个代码,我说实话看不懂ai在写什么,而且缺失了具体需求,我要补全也不知道怎么去补全,有一些如果不定义就没办法通过语法的地方我按照自己的认知去补全定义了。但是最终这个策略代码效果是不是符合你的要求,我不能保证。
这就好比你现在拿着一本中文书,你找了个“翻译”让他帮你翻译成英语,你想卖给外国人。这个“翻译”弄完以后,你拿给外国人,外国人说“这是什么东西,根本看不懂”。
然后你跑到学校里拿着这本外国人看不懂的东西问英语老师,怎么把它改成外国人能看懂的?
你不觉得这里面有点奇怪吗?你不是应该把中文原版拿给老师,老师才知道哪里翻译错了,应该怎么翻译吗?拿之前翻译出来的垃圾来改有什么意义呢?
问题可能不仅仅是不会写代码这么简单了。
能做的就这么多了,如果后面还有更多的修改或者添加功能的需求,请移步策略代写服务或者投稿服务。目前代写工作任务繁重,很多人都已经下单排队等着了。
Params
Numeric n(10);
Numeric m(20);
Numeric lots(1);
Vars
series<Numeric> PSY(0); //PSY
series<Numeric> PSYMA(0); //PSY
series<Bool> _CanTrade(false); //PSY
Events
OnBar(ArrayRef<Integer> indices)
{
// === 指标计算 ===
PSY = CountIf(Close > Close[1], N) / N * 100;
PSYMA = Average(PSY, M);
// === 交易条件 ===
_CanTrade = (PSY <= 40) && (PSY > PSY[1]); // 动量过滤
// === 交易执行 ===
If (_CanTrade[0] && MarketPosition == 0)
{
Buy(Lots, Open);
Commentary("PSY=" + Text(PSY[0]) + " PSYMA=" + Text(PSYMA[0]));
}
}
Numeric PSY(0); //PSY
Numeric PSYMA(0); //PSY
Bool CanTrade(false); //PSY