金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3924|回复: 16

请改写为金字塔语言

[复制链接]

2

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2023-9-5
曾用名:
发表于 2023-9-5 13:08 | 显示全部楼层 |阅读模式
K:=300000/(C*MARGIN*UNIT+FEE);//开仓资金为固定金额30万
R10 AND R12 AND R14 AND R16 AND R32 AND R34 AND R36  AND R45  AND PANZHENG=0,BK(K);
R41 AND R22,SP(BKVOL);
(R30<-35 AND JMA20<18)  ,SP(BKVOL);
EXIST(REF(C/REF(C,1)<0.965,1) ,3)  AND R30<0  ,SP(BKVOL);
EXIST(R40,8) AND  C<=(BKHIGH-BKHIGH*0.02)  ,SP(BKVOL);
MULTSIG_MIN(0,0,4);//每分钟计算一次信号
这是文华的模型指令部分,请改写为金字塔模式,开平仓换为金字塔指令,谢谢!


回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-9-6 13:33 | 显示全部楼层
[PEL] 复制代码
下单资金量:=300000;
MarginRatio:=TACCOUNT(41);//期货多头保证金比率. 这个要把合约信息设置里面的费率设置正确,否则函数取到的值可能是不对的。
bzj:=Close*Multiplier*MarginRatio;//一手保证金占用
ss1:=Intpart(下单资金量/(bzj));//根据资金ZJ计算的开仓手数
//ss1可能会有计算出为0 的情况,而恰好为手数参数为0在函数中是满仓开的含义。因此再次处理下,当ss1为0情况下默认按下一手处理。
k:if(ss1>0,ss1,1);

kd:r10 and r12 and r14 and r16 and r32 and r34 and r36  and r45;
buy(kd and holding=0,k,market);

pd1:r41 and r22;
平多1:sell(pd,holding,market);


pd2:(r30<-35 and jma20<18);
平多2:sell(pd2,holding,market);

pd3:exist(ref(c/ref(c,1)<0.965,1) ,3)  and r30<0;
平多3:sell(pd3,holding,market);

bkhigh:=hhv(h,ENTERBARS+1);
pd4:exist(r40,8) and  c<=(bkhigh-bkhigh*0.02);
平多4:sell(pd4,holding,market);


其中有诸多未定义的变量,请自行完善变量的定义。另外 “PANZHENG” 没有对应的函数,也无法知晓该函数原本的算法,所以直接删除了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

2

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2023-9-5
曾用名:
 楼主| 发表于 2023-9-6 15:30 | 显示全部楼层
如果把加载标的换成股票,也是这个写法吗?
回复

使用道具 举报

2

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2023-9-5
曾用名:
 楼主| 发表于 2023-9-6 15:32 | 显示全部楼层
如果不能用于股票,请帮我写下k值,改进用于股票回测交易,也就是每次下次的资金量固定30万
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-9-6 15:45 | 显示全部楼层
股票得话是这样:

FEE:GEGCHARGE('',C,1,0);
K: ROUND(300000/(C*100+FEE));
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

2

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2023-9-5
曾用名:
 楼主| 发表于 2023-9-6 16:03 | 显示全部楼层
其他的开平仓条件不变那,那个平仓条件分为4段,感觉太复杂,不能合成一段吗
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-9-6 16:17 | 显示全部楼层
可以合并。只是这样分开好处是可以看到是哪个条件触发的平仓。

这样合并下:
pd1:r41 and r22;
pd2:(r30<-35 and jma20<18);
pd3:exist(ref(c/ref(c,1)<0.965,1) ,3)  and r30<0;
bkhigh:=hhv(h,ENTERBARS+1);
pd4:exist(r40,8) and  c<=(bkhigh-bkhigh*0.02);

pd:pd1 or pd2 or pd3 or pd4;
平多:sell(pd,holding,market);
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

2

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2023-9-5
曾用名:
 楼主| 发表于 2023-9-6 16:47 | 显示全部楼层
IF HOLDING>0 THEN
BEGIN
我以前写的加了这个语句,是不需要加吗?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-9-6 16:48 | 显示全部楼层
就一条情况下 可以不用嵌套在if语句下。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

2

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2023-9-5
曾用名:
 楼主| 发表于 2023-9-6 17:01 | 显示全部楼层
还需要加一句,每分钟计算一次信号,回测和交易都是这种模式。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-30 00:50 , Processed in 0.150982 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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