金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 298|回复: 12

手数不能被参数化怎么办

[复制链接]

16

主题

31

帖子

31

积分

Rank: 1

等级: 新手上路

注册:
2021-6-2
曾用名:
发表于 2025-7-25 16:55 | 显示全部楼层 |阅读模式
我有一个策略,然后不同的品种都想用这个策略(只是参数不同),我想用不同的参数来控制不同的品种的交易。但现在有个问题,手数好像不能被参数化,这个有什么解决方法吗?
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2025-7-25 17:03 | 显示全部楼层
那只能在你得代码中根据品种代码来判或者根据别得规则来判断,给不同的品种设置不同的手数,例如:
if stklabel='AG00' then
   SS:=1;
   
if stklabel='AL00' then
   ss:=2;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

16

主题

31

帖子

31

积分

Rank: 1

等级: 新手上路

注册:
2021-6-2
曾用名:
 楼主| 发表于 2025-7-25 17:35 | 显示全部楼层
技术010 发表于 2025-7-25 17:03
那只能在你得代码中根据品种代码来判或者根据别得规则来判断,给不同的品种设置不同的手数,例如:
if stk ...

我如果要描述ag合约,可以用stklabel like 'AG%'吗?我不会直接交易主力合约的,因为主力合约在换合约的时候有很大跳空
回复

使用道具 举报

16

主题

31

帖子

31

积分

Rank: 1

等级: 新手上路

注册:
2021-6-2
曾用名:
 楼主| 发表于 2025-7-27 17:51 | 显示全部楼层
可以这么写吗?但编程下来的结果好像是没有命中,这是为什么呀

IF STRLEFT(stklabel, 2)="AG" THEN   //白银
BEGIN  
    多单手数:=2;   //2
        空单手数:=6;   //6
END
       
IF STRLEFT(stklabel, 2)="SC" THEN    //原油
BEGIN  
    多单手数:=1;   //1
        空单手数:=1;   //1
END
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2025-7-28 08:53 | 显示全部楼层
stklabel返回的是品种的代码,是带有年份或月份的啊。不是品种的字母,如果你要和AG、SC这种进行字符串判断,那要单独对stklabel进行字符串处理的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

16

主题

31

帖子

31

积分

Rank: 1

等级: 新手上路

注册:
2021-6-2
曾用名:
 楼主| 发表于 2025-8-1 16:57 | 显示全部楼层

stklabel显示出来的是什么形式啊,能举一个例子吗?
还有这种字符串处理,在金字塔软件里我怎么调试啊?如果要输出字符串来做调试,怎么输出比较合适啊
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2025-8-1 17:00 | 显示全部楼层
品种代码格式参考这里的:
截图202508011659228685.png

你要提取品种代码:
[PEL] 复制代码
STR:=STRTRIMRIGHT( STKLABEL, '0123456789');
 
//双年份合约,豆一和白糖虽然取消双年份,但是金字塔为保证老用户策略的正常操作,所以保持不变。因此依旧需要区分。
if STRCMP(STR,'AY')=0 or  STRCMP(STR,'BUY')=0 OR  STRCMP(STR,'SRY')=0 THEN BEGIN
 STR:=STRREPLACE(STR , 'Y','X' );
END
 
 
//区分处理原油和其他品种的连续代码
STR00:=IF(STRCMP(STR,'SC')=0,STRCAT(STR , '0000'),STRCAT( STR, '00'));
EXPLAIN( 1, STR00 );

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

使用道具 举报

16

主题

31

帖子

31

积分

Rank: 1

等级: 新手上路

注册:
2021-6-2
曾用名:
 楼主| 发表于 2025-8-11 13:17 | 显示全部楼层
explain  
EXPLAIN(COND,TEXT,[COLOR]),在COND条件满足时在电脑解盘窗口中输出解盘文字,COLOR(可选参数)文字颜色,可以用'\n'空一行。

请教下这个“电脑解盘窗口”在哪里啊
回复

使用道具 举报

0

主题

82

帖子

92

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-8-11 13:45 | 显示全部楼层
如图所示
截图202508111345336083.png
回复

使用道具 举报

16

主题

31

帖子

31

积分

Rank: 1

等级: 新手上路

注册:
2021-6-2
曾用名:
 楼主| 发表于 2025-8-11 15:58 | 显示全部楼层
我写了如下一个脚本,点“策略调试”,可以看到开多平多的单子,但是“电脑解盘”的窗口中一个字都没有,这是为什么啊?

/////////////////////////////////////////
多单手数:=1;

STR:=STRTRIMRIGHT( STKLABEL, '0123456789');
EXPLAIN( 1, STR );


//交易系统
IF (TIME>=093000 and holding = 0)   THEN

BEGIN
        空仓开多:BUY(1  ,多单手数,limitr,open);

END


clear_time :=  time > 145000 and time < 150100;
IF clear_time THEN BEGIN
收盘平多:SELL(holding>0,多单手数,THISCLOSE);

END

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-12 11:39 , Processed in 0.128635 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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