金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
12
返回列表 发新帖
楼主: 100019690

老师帮我实现一个统计思路可以吗

[复制链接]

17

主题

148

帖子

148

积分

Rank: 2

等级: 标准版

注册:
2021-12-10
曾用名:
 楼主| 发表于 2025-10-28 11:38 | 显示全部楼层
我自己摸索一下吧,打电话怕被老师骂,因为我是按照老师的方法来改了时间,然后手动数了一下金叉的次数,感觉对不上,所以就有疑问,我在检查一下看看哪里是我理解错了出问题
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-10-28 12:04 | 显示全部楼层
date+19000000<20201001


右边写错了,右边是小于

date+19000000>20200101 and  date+19000000<20201001   日期就是这样限定就行了,上面写成大于号了
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-10-28 12:07 | 显示全部楼层

INPUT:S(12,5,40,4);        // MACD短周期
INPUT:P(26,20,100,8);      // MACD长周期
INPUT:M(9,2,60,6);         // MACD信号周期
// ========== MACD计算 ==========
DIFF : EMA(CLOSE,S) - EMA(CLOSE,P),NOAXIS;
DEA  : EMA(DIFF,M),NOAXIS;
MACD := 2*(DIFF-DEA);
// ========== 交叉信号 ==========
GOLD_CROSS : CROSS(DIFF,DEA);  // 金叉
DEAD_CROSS : CROSS(DEA,DIFF);  // 死叉
variable:jc_price=0,opsitive_n=0,negitive_n=0,hh=0;;

if GOLD_CROSS and date+19000000>20200101 and  date+19000000<20201001 then
begin
        jc_price:=close;
END

if DEAD_CROSS and date+19000000>20200101 and  date+19000000<20201001 and jc_price>0 then
begin
        if (close-jc_price)/jc_price>hh then hh:=(close-jc_price)/jc_price;
        if close>jc_price then opsitive_n:=opsitive_n+1;
        if close<=jc_price then negitive_n:=negitive_n+1;
END


fa:opsitive_n/(opsitive_n+negitive_n);
c1:opsitive_n;
c2:negitive_n;
hh1:hh;

然后你去看c1和c2的值,每次死叉看他更新情况
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

148

帖子

148

积分

Rank: 2

等级: 标准版

注册:
2021-12-10
曾用名:
 楼主| 发表于 2025-10-30 10:31 | 显示全部楼层
技术008 发表于 2025-10-28 12:07
INPUT:S(12,5,40,4);        // MACD短周期
INPUT:P(26,20,100,8);      // MACD长周期
INPUT:M(9,2,60 ...



上述就是按照老师的代码输出的结果,源代码如下,我只是修改了时间限制


INPUT:S(12,5,40,4);        // MACD短周期
INPUT:P(26,20,100,8);      // MACD长周期
INPUT:M(9,2,60,6);         // MACD信号周期
// ========== MACD计算 ==========
DIFF := EMA(CLOSE,S) - EMA(CLOSE,P),NOAXIS;
DEA  := EMA(DIFF,M),NOAXIS;
MACD := 2*(DIFF-DEA);
// ========== 交叉信号 ==========
GOLD_CROSS := CROSS(DIFF,DEA);  // 金叉
DEAD_CROSS := CROSS(DEA,DIFF);  // 死叉
variable:jc_price=0,opsitive_n=0,negitive_n=0,hh=0;;

if GOLD_CROSS and date+19000000>20250101 and  date+19000000<20251031 then
begin
        jc_price:=close;
END

if DEAD_CROSS and date+19000000>20250101 and  date+19000000<20251031 and jc_price>0 then
begin
        if (close-jc_price)/jc_price>hh then hh:=(close-jc_price)/jc_price;
        if close>jc_price then opsitive_n:=opsitive_n+1;
        if close<=jc_price then negitive_n:=negitive_n+1;
END


fa:opsitive_n/(opsitive_n+negitive_n);
c1:opsitive_n;
c2:negitive_n;
hh1:hh;

// 然后你去看c1和c2的值,每次死叉看他更新情况

要不这样吧,我想请教一下老师这边,
1、能不能统计 某个时间段,如 2025年1月1日,到2025年9月1日,金叉的总数目?代码是怎么表述的
2、能不能求每一次金叉的最后涨跌幅?代码怎么表述的以及每次金叉涨跌幅大于1%所占金叉总数的的百分比是多少?代码怎么表述的

麻烦老师了,我弄蛮久没理清出来

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-10-30 10:33 | 显示全部楼层
variable:nnn=0;

if GOLD_CROSS and date+19000000>20250101 and  date+19000000<20251031 then
begin
        jc_price:=close;
nnn:=nnn+1;

END
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-10-30 10:35 | 显示全部楼层
if DEAD_CROSS and date+19000000>20250101 and  date+19000000<20251031 and jc_price>0 then
begin
        if (close-jc_price)/jc_price>hh then hh:=(close-jc_price)/jc_price;
        if close>jc_price then opsitive_n:=opsitive_n+1;
        if close<=jc_price then negitive_n:=negitive_n+1;
END

这里的        if close>jc_price then opsitive_n:=opsitive_n+1;
        if close<=jc_price then negitive_n:=negitive_n+1;   后面两个就是统计涨还是跌的,你要加幅度就后面自己乘以一个百分比就行了

        if close>jc_price*1.1 then opsitive_n:=opsitive_n+1;
        if close<=jc_price*0.9 then negitive_n:=negitive_n+1;    类似这样就是满足条件才去统计
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

148

帖子

148

积分

Rank: 2

等级: 标准版

注册:
2021-12-10
曾用名:
 楼主| 发表于 2025-10-30 23:06 | 显示全部楼层
技术008 发表于 2025-10-30 10:35
if DEAD_CROSS and date+19000000>20250101 and  date+190000000 then
begin
        if (close-jc_price ...

老师,建议你输出一下结果看看,然后再回复我可以么?

建议老师先加载到图表,然后输出 FA : nnn ;  FB : opsitive_n ;  FC : negitive_n ; 看一下结果是不是我们需要的,原本我还以为是自己金字塔版本问题,重装了一遍,后面发现也是不行

我这问题不算难,细心点就行,我自己摸索出统计总数的方式,但是有个不好的地方就是,放大的时候不能显示完所有的总数,缩小K线图,才会出来全部的,有没有办法规避这个问题,就是不管缩小或者放大,统计的总数不变,

金叉次数 : sum( if( cross( diff,dea ),date+19000000 > 20250101 and date+19000000 < 20251031,0 ),0 );

上面是我的代码,能不能帮我看看有没有办法规避缺陷
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-10-31 09:07 | 显示全部楼层
本帖最后由 技术008 于 2025-10-31 09:14 编辑

放大的时候不能显示完所有的总数,缩小K线图,才会出来全部的,有没有办法规避这个问题,就是不管缩小或者放大,统计的总数不变,


你要先放大把k线来出来然后计算出来,然后缩小是不会没有的。我这里输出k数量,先放大显示几千,然后缩小后数量是不变的
你一开始如果数据量不够那是计算不出来来的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

148

帖子

148

积分

Rank: 2

等级: 标准版

注册:
2021-12-10
曾用名:
 楼主| 发表于 2025-10-31 19:25 | 显示全部楼层
老师,发现你好不严谨啊,居然照抄AI来糊弄我,你再这样搞下去,老板不炒你鱿鱼的话,论坛的回复质量也会越来越差了
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-11-2 23:55 | 显示全部楼层
哪里糊弄请问,如果前面是有错误就是糊弄,那么意味着你要求回复一点不能出错,那么这个强人所难,抱歉能力有限

如果你i说写的不对,你有说出哪里不对吗
你后面的金叉次数 : sum( if( cross( diff,dea ),date+19000000 > 20250101 and date+19000000 < 20251031,0 ),0 );  这个所谓金叉次数和你一楼要统计涨跌数量完全不是有给概念

本身程序都是自己最了解,写出来东西要别人写,别人有的理解没对这个不正常吗?

说到ai,如果ai就是糊弄,那么当前社会都是糊弄了
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-3 16:35 , Processed in 0.094967 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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