金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 4078|回复: 5

如何求出在参数变化范围内的次数的最大值,同时得到在次数最大值时的这组参数?

[复制链接]

3

主题

9

帖子

9

积分

Rank: 1

等级: 新手上路

注册:
2022-7-15
曾用名:
发表于 2022-7-15 07:35 来自手机 | 显示全部楼层 |阅读模式
如何求出在参数变化范围内的次数的最大值,同时得到在次数最大值时的这组参数?
以下是求出2021以来i日线金叉j日线的次数。
参数i(5 to 100),参数j(10 to 500)
N:=2021;
T:=Barsast(year=N-1);
cs:=count(cross(ma(c,i),ma(c,j)),T);{2021年以来i日线金叉j日线的次数}
对于一只股票的日K线,参数i(5 to 100),参数j(10 to 500)每组不同参数,可能对应不同的金叉次数,如何求出在参数变化范围内的次数的最大值,同时得到在次数最大值时的这组参数
回复

使用道具 举报

3

主题

9

帖子

9

积分

Rank: 1

等级: 新手上路

注册:
2022-7-15
曾用名:
 楼主| 发表于 2022-7-15 08:30 | 显示全部楼层
//金叉最优
N:=2021;
T:=Barslast(year=N-1);
for i=5 to 10 do
Begin
    for j=10 to 20 do
    Begin       
      cs:=count(cross(ma(c,i),ma(c,j)),T);
        END;  
end;

cs1:=cs[1];ph:=1;
for i=1 to datacount do
   begin
     if cs1<cs[i] then
         begin
      cs1:=cs[i];phi:=i;phj:=j;
     end;
   End;
   
次数排序:=sort(cs1,1,1,datacount);
次数:cs1;
次数maxi参数:phi;
次数maxj参数:phj;

zb次数:COUNT(CROSS(MA(C,次数maxi参数),MA(C,次数maxj参数)),T),linethick0;

自己编写的,不对,烦请老师版主调试。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-7-15 10:34 | 显示全部楼层
这个实现不了 .PEL的灵活度 的处理不了这种复杂度的问题。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

3

主题

9

帖子

9

积分

Rank: 1

等级: 新手上路

注册:
2022-7-15
曾用名:
 楼主| 发表于 2022-7-15 13:31 | 显示全部楼层
欢乐马79394 发表于 2022-7-15 08:30
//金叉最优
N:=2021;
T:=Barslast(year=N-1);

如图:


补充内容 (2022-7-15 13:34):
最优参数(507,21)10次金叉,中感觉不对?

补充内容 (2022-7-15 13:35):
第一个参数是5 to 10,第二个参数是10 to 20
无标题.jpg
回复

使用道具 举报

3

主题

9

帖子

9

积分

Rank: 1

等级: 新手上路

注册:
2022-7-15
曾用名:
 楼主| 发表于 2022-7-15 13:44 | 显示全部楼层

怎么超出范围了?
无标题2.jpg
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-7-15 15:25 | 显示全部楼层
[PEL] 复制代码
x:0;//对应I
y:0;//对应J
sm:0;//最大金叉数



for i=6 to 6 do
begin
for j=10 to 11 do
begin       
cs:=count(cross(ma(c,i),ma(c,j)),0);
if cs>sm then 
begin 
sm:=cs;
x:=i;
y:=j;        
end 

end;  
end;

//校验代码部分

majc1:cross(ma(c,6),ma(c,11));
majc2:cross(ma(c,6),ma(c,10));

//只要sm是sm1,sm2最大值就行了
sm1:sum(majc1,0);
sm2:sum(majc2,0);




一定要序列模式下。否则不行。另外 我这里 就2次循环,不会卡,你本地要是循环次数比较多,大概率会很卡。甚至崩溃。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-3 13:40 , Processed in 0.163657 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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