金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1766|回复: 8

代码优化 谢谢

[复制链接]

3

主题

22

帖子

22

积分

Rank: 1

等级: 新手上路

注册:
2024-3-26
曾用名:
发表于 2024-4-10 11:03 | 显示全部楼层 |阅读模式
input:p(4,1,20,2),step(2,1,5,1),maxp(20,5,80,8),ss(1,1,300,1);
variable:recent_turn:=0;
turn:sarturn(p,step,maxp);

if turn=1 then recent_turn:=1;
if turn=-1 then recent_turn:=-1;
macd:"macd.macd1"(26,12,9);//调用macd的数值

手数:=ss;
//交易条件

开多平空条件:=recent_turn>0 and  macd>0;//开多平空条件
开空平多条件:=recent_turn<0 and macd<0;//开空平多条件

//交易系统
平空:sellshort(开多平空条件,holding,market);
平多:sell(开空平多条件,holding,market);
开多:buy(开多平空条件 and holding=0,手数,market);
开空:buyshort(开空平多条件 and holding=0,手数,market);

当前持仓:holding,colorgray,linethick0;
当前资产:asset,noaxis,colorgray;

需要优化的执行条件是:
开多平空条件:SAR指标多先MACD指标大于0后的下一柱线或MACD指标大于0后的下一柱线先SAR指标多后,执行开多平空
开空平多条件:SAR指标空先MACD指标小于0后的下一柱线或MACD指标小于0后的下一柱线先SAR指标空后,执行开空平多

回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-4-10 11:07 | 显示全部楼层
a:SAR(10,STEP,MAXP),CIRCLEDOT;


if ref(a,1)>0 and ref(macd,1)<0 and macd>0 then
begin
        sellshort(1,1,marketr);
        buy(1,1,marketr);
END

if ref(a,1)<0 and ref(macd,1)>0 and macd<0 then
begin
        sell(1,1,marketr);
        buyshort(1,1,marketr);
END
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-4-10 11:07 | 显示全部楼层
a:SAR(10,STEP,MAXP),CIRCLEDOT;


if ref(a,1)>0 and ref(macd,1)<0 and macd>0 then
begin
        sellshort(1,1,marketr);
        buy(1,1,marketr);
END

if ref(a,1)<0 and ref(macd,1)>0 and macd<0 then
begin
        sell(1,1,marketr);
        buyshort(1,1,marketr);
END
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

3

主题

22

帖子

22

积分

Rank: 1

等级: 新手上路

注册:
2024-3-26
曾用名:
 楼主| 发表于 2024-4-10 11:18 | 显示全部楼层
您好,您可以帮我融入到那个原始代码里吗?谢谢
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-4-10 11:19 | 显示全部楼层
直接拷到你代码后面就行了
建议用户基本代码要能看懂点,这种拷贝黏贴啥的应该要能理解
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

3

主题

22

帖子

22

积分

Rank: 1

等级: 新手上路

注册:
2024-3-26
曾用名:
 楼主| 发表于 2024-4-10 11:45 | 显示全部楼层
我复制到原代码后面,执行了一下,结果是错误的。可能是我融入时的问题,请您帮忙融合一下。谢谢
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-4-10 12:54 | 显示全部楼层
这个条件就是上一跟ksar大于0,并且macd也是小于0,现在的macd大于0.
不太明白您具体需求

a:SAR(10,STEP,MAXP),CIRCLEDOT;


if ref(a,1)>0 and ref(macd,1)<0 and macd>0 then
begin
        sellshort(1,1,marketr);
        buy(1,1,marketr);
END
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

10

主题

41

帖子

51

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
发表于 2024-4-14 15:32 | 显示全部楼层
技术008 发表于 2024-4-10 11:07
a:SAR(10,STEP,MAXP),CIRCLEDOT;

版主你好,a的值不会小于0,if条件似乎用不上。
另外step与maxp的取值范围是多少?谢谢。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-4-15 09:11 | 显示全部楼层

input:p(4,1,20,2),step(2,1,5,1),maxp(20,5,80,8),ss(1,1,300,1);

参数定义里 已经说明了最大最小范围
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-29 22:42 , Processed in 0.116287 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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