金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 34|回复: 5

关于后台程序化信号处理的问题

[复制链接]

26

主题

114

帖子

114

积分

Rank: 4

等级: 专业版

注册:
2025-11-7
曾用名:
发表于 2025-11-25 19:37 | 显示全部楼层 |阅读模式
这两天跑后台程序化发现一个问题:
代码结构如下:
11月14日,触发了信号A;触发后,信号一直亮
代码买入部分的逻辑是,信号A=1,且持仓为0时,买入。

如果代码一直跑着,账户有持仓,买入后信号一直=1,也不会再买。
但是这支股票今天才进入股票池,我是没持仓的。
今天进入股票池后,昨天信号量,会在入池后第一时间买入,导致追高。与预期行为不符合

请问老师该怎么样避免这种情况
是应该再买入代码后,写重置信号的代码么?将信号A:=0;
回复

使用道具 举报

2

主题

5787

帖子

5787

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2025-11-26 08:59 | 显示全部楼层
如果是常规的技术分析指标条件。其实只要把条件改成 cross(a,0) 表示当前是首次满足时候。

回复

使用道具 举报

26

主题

114

帖子

114

积分

Rank: 4

等级: 专业版

注册:
2025-11-7
曾用名:
 楼主| 发表于 2025-11-26 11:23 | 显示全部楼层
每天开盘,把信号重置,用这个代码可以么
或者每天收盘,重置也行
N:=BARSLAST(DATE<>REF(DATE,1));
DRAWTEXT(N=1,open,'开盘',COLORRGB(255,255,255));
IF N=1 Then BEGIN
        开多信号:=0;
        开多原因:='';
END
回复

使用道具 举报

2

主题

5787

帖子

5787

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2025-11-26 13:22 | 显示全部楼层
你这个重置的是是你的全局变量吧。但是你的信号是怎么赋值给这个全局变量的?如果你 又给这个全局变量赋值了 不还是控制不了。  如果是技术指标条件就用前面我说的那个方式就行了。
回复

使用道具 举报

26

主题

114

帖子

114

积分

Rank: 4

等级: 专业版

注册:
2025-11-7
曾用名:
 楼主| 发表于 2025-11-26 13:45 | 显示全部楼层
不是全局变量,都是序列变量,赋值逻辑示例如下:

条件A:=Ref(Low,1)<Ref(5日均价上,1) and High>Ref(5日均价上,1);
条件B:=Ref(Low,1)<Ref(5日均价,1) and High>Ref(5日均价,1);
条件C:=Ref(Low,1)<Ref(5日均价下,1) and High>Ref(5日均价下,1);

If 条件A  and 条件B and 条件C Then BEGIN
        开多信号:=10;
        开多原因:='开多备注';
END

因为不是简单的cross,而是技术组合,所以没法写成cross。
这种有没有好的建议呢
回复

使用道具 举报

2

主题

5787

帖子

5787

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2025-11-26 14:13 | 显示全部楼层
你这个不就是相当于“条件A  and 条件B and 条件C ” 这个条件的嘛。那在cross中第一个参数 直接用这个条件 就可以了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-11-27 12:45 , Processed in 0.112547 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表