金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 223|回复: 11

文华里的跨合约引用策略代码,请转化为金字塔的策略代码

[复制链接]

6

主题

16

帖子

16

积分

Rank: 1

等级: 新手上路

注册:
2024-11-4
曾用名:
发表于 2024-11-5 11:12 | 显示全部楼层 |阅读模式
文华里的跨合约引用策略代码,请转化为金字塔的策略代码。
为跨合约引用新建的公式ABB如下:
A:CROSS(C,REF(HHV(H,DAYBARPOS),1));
VV:VOL;
P:CLOSE;
PH:REF(HHV(H,DAYBARPOS),1);

策略代码如下:
#CALL[999852,ABB] AS K

KVV:K.VV;
KA:K.A;
KP:K.P;
KPH:K.PH;

A2:KP>KPH*(1+N1/10000) OR KP>REF(KPH,1)*(1+N1/10000);

B:KVV>REF(MA(KVV,N2),1)*(1-N3/100);

T:OPENMINUTE>N4&&CLOSEMINUTE>N5;

KA&&A2&&B&&T,BK;

ST:BARSBK>N6&&C<BKPRICE*(1-N7/1000);
ST,SP;

S1:C<BKPRICE*(1-N8/1000);
S1,SP;

S2:BKHIGH>BKPRICE*(1+N9/1000);
S2&&C<BKPRICE*(1+N10/1000),SP;

S3:BKHIGH>BKPRICE*(1+N11/1000);
S3&&C<BKHIGH*(1-N12/1000),SP;
S4:BKHIGH>BKPRICE*(1+N13/1000);
S4&&C<BKHIGH*(1-N14/1000),SP;

E1:N15*(1-2/1000)<KP&&KP<N15*(1+2/1000);
E2:C<BKHIGH*(1-2/1000);
E:E1&&E2;
E,SP;

AUTOFILTER;




补充内容 (2024-11-5 11:15):
当时为了方便参数优化,所以设计的新建公式尽量简单,把变量N都尽量写在了主策略里,金字塔为了方便参数优化应该也是一样的逻辑和办法吧?
回复

使用道具 举报

31

主题

7737

帖子

7747

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-11-5 11:15 | 显示全部楼层
请描述下策略需求,这边对文华很多函数有的也不是非常了解的,光看代码无法直接转换

或者有哪些地方您不了解金字塔怎么编写的,可以提一下
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

16

帖子

16

积分

Rank: 1

等级: 新手上路

注册:
2024-11-4
曾用名:
 楼主| 发表于 2024-11-5 14:17 | 显示全部楼层
加载IM期货合约1分钟周期,开仓信号引用中证1000指数价格和成交量数据,
A1:中证1000指数价格突破日内高点G;
A2:破前高G的当根或最迟下根k线价格比G涨幅超过一定幅度N1;
B:破前高的当根k线成交量大于前N2个k线的成交量平均*(1-N3/100);
T:开盘后时间大于N4分钟和距收盘剩余时间大于N5分钟;

A1&&A2&&B&&T,则开仓IM期货;只在持仓为零时开仓

ST:开仓N6分钟后,期货价格低于开仓价*(1-N7/1000);

ST发生,则SP卖出平仓;

S1:期货价格小于开仓价*(1-N8/1000);

S1,SP;

S2:开仓后期货的最高价大于开仓价*(1+N9/1000);

S2&&期货价格<开仓价*(1+N10/1000),SP;

S3:开仓后期货的最高价>开仓价*(1+N11/1000);

S3&&期货价格<开仓后期货的最高价*(1-N12/1000),SP;

S4:开仓后期货的最高价>开仓价*(1+N13/1000);

S4&&期货价格<开仓后期货的最高价*(1-N14/1000),SP;

E1:期货价格的H>N15*(1-2/1000)&&C<N15*(1+2/1000)或前根k线的H>N15*(1-2/1000)&&前根k线的C<N15*(1+2/1000);

E2:期货价格<开仓后期货的最高价*(1-2/1000);

E:E1&&E2;

E,SP;

只在持仓为1时卖出平仓。

所有的参数N应该是尽量写在策略代码里,这样方便参数优化。
回复

使用道具 举报

31

主题

7737

帖子

7747

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-11-5 14:27 | 显示全部楼层
新建一个公式A里面代码
N1:=10;
N2:=10;
N3:=10;

a1:high=hhv(high,todaybar);
a2:ref(a1,1) and close/ref(close,1)>N1/100;
b:a1 and vol>ma(vol,N2)*(1-N3/100);
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

31

主题

7737

帖子

7747

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-11-5 14:27 | 显示全部楼层
然后策略公式去引用上面A得指标,这里给出开仓和平仓得一个范例,其他一些平仓得建议用户学习后自行完成

input:N6(1,1,10,1),N7(1,1,10,1),N9(1,1,10,1);
cond1:stkindi('sz399852','A.a',0,1,0) and stkindi('sz399852','A.a2',0,1,0) and stkindi('sz399852','A.b',0,1,0);
cond2:time>100000 and time<144500;
if holding=0 and cond1 and cond2 then
begin
        sellshort(1,holding,marketr);
        buy(1,1,marketr);
END


if enterbars>N6 and close<AVGENTERPRICE*(1-N7/100) then
begin
        sell(1,holding,marketr);
END
//回落
if close<hhv(close,enterbars)*(1+N9/100) then
begin
        sell(1,holding,marketr);
END
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

16

帖子

16

积分

Rank: 1

等级: 新手上路

注册:
2024-11-4
曾用名:
 楼主| 发表于 2024-11-5 18:59 | 显示全部楼层
技术008 发表于 2024-11-5 14:27
然后策略公式去引用上面A得指标,这里给出开仓和平仓得一个范例,其他一些平仓得建议用户学习后自行完成

...

请问buy(1,1,marketr)里第一个1和sell(1,holding,marketr)里holding代表什么?
开仓代码除了用if、then,可以用buy(holding=0 and cond1 and cond2,1,marketr)代替吗?
若想用超价进行价格委托及未成交自动追价,应该如何体现在代码或设置上?
回复

使用道具 举报

6

主题

16

帖子

16

积分

Rank: 1

等级: 新手上路

注册:
2024-11-4
曾用名:
 楼主| 发表于 2024-11-5 21:15 | 显示全部楼层
新建公式AA
A1:c>ref(hhv(high,todaybar),1);

PH:REF(HHV(H,todaybar),1);

策略代码:
Y1:STKINDI('000852','AA.A1',0,1,0);
Y2:callstock('000852',vtCLOSE,1)>STKINDI('000852','AA.ph',0,1,0)*(1+3/10000);

kvv:callstock('000852',vtvol,1);
B:kvv>REF(MA(kvv,10),1)*(1-16/100);

T:TODAYBAR>=25&&TODAYBAR<=230;

以上代码符合我描述的条件吗
回复

使用道具 举报

31

主题

7737

帖子

7747

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-11-6 08:58 | 显示全部楼层
holding就是图表理论持仓的概念,放在buy里面也可以的,这个只是写法不同就像1+1+1+1和1*4,效果一样只是写法不同


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

使用道具 举报

31

主题

7737

帖子

7747

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-11-6 09:01 | 显示全部楼层
//这个y1表示aa指标下的a1这个指标值,y2表示收盘价小于aa的ph值
Y1:STKINDI('000852','AA.A1',0,1,0);
Y2:callstock('000852',vtCLOSE,1)>STKINDI('000852','AA.ph',0,1,0)*(1+3/10000);

//这里就是引用成交量
kvv:callstock('000852',vtvol,1);
B:kvv>REF(MA(kvv,10),1)*(1-16/100);

//这些如果你不确定情况可以自己去输出看,很多时候代码写完在图上看引用结果对不对就能了解比如
aaaa:callstock('000852',vtvol,1);
bbbb:REF(MA(kvv,10),1);
//上面就是把量和前一个的10日均值计算出来,在图上看下对不对自己要
对于很多组合条件的策略都是要这样输出对比的看
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

16

帖子

16

积分

Rank: 1

等级: 新手上路

注册:
2024-11-4
曾用名:
 楼主| 发表于 2024-11-6 09:19 | 显示全部楼层
holding能表达当有持仓时才会sell全部持仓吗?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 06:02 , Processed in 0.179454 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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