金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3343|回复: 4

【示范策略】跨周期引用编写示范

[复制链接]

70

主题

190

帖子

275

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-18
曾用名:
发表于 2021-6-11 15:27 | 显示全部楼层 |阅读模式
跨周期引用在日常的策略编写中是经常需要使用的,可以在本策略运行的周期上,引用到另外一个周期上的指标值,来作为本策略的开平仓条件。下面分别对大周期引用小周期和小周期引用大周期的指标编写进行示范。

被引用指标公式MA指标,代码如下:
[PEL] 复制代码
INPUT:N1(5,1,100,1),N2(10,1,100,1),N3(20,1,100,1),N4(30,1,100,1);   //定义参数N1,N2,N3,N4
MA5:MA(C,N1);
MA10:MA(C,N2);
MA20:MA(C,N3);
MA30:MA(C,N4);
A:C>MA5 AND MA5>MA10 AND MA10>MA20 AND MA20>MA30;   //均线多头排列
B:C<MA5 AND MA5<MA10 AND MA10<MA20 AND MA20<MA30;   //均线空头排列


一、大周期引用小周期范例(例如策略运行周期为30分钟,引用5分钟周期上的指标值):
[PEL] 复制代码
//交易策略策略,运行周期为30分钟线

INPUT:N1(5,1,100,1),N2(10,1,100,1),N3(20,1,100,1),N4(30,1,100,1);   //定义参数N1,N2,N3,N4
INPUT:SS(1,1,100,1);                                     //定义下单手数,默认为1手
MA5:MA(C,N1);      
MA10:MA(C,N2);
MA20:MA(C,N3);
MA30:MA(C,N4);     //定义当前周期的4根均线

A:C>MA5 AND MA5>MA10 AND MA10>MA20 AND MA20>MA30;   //定义当前周期均线多头排列
B:C<MA5 AND MA5<MA10 AND MA10<MA20 AND MA20<MA30;   //定义当前周期均线空头排列

A5:STKINDI('','MA指标.A',0,2,0);      //引用5分钟周期的均线多头排列
B5:STKINDI('','MA指标.B',0,2,0);      //引用5分钟周期的均线空头排列

CONPKKD:A AND A5;                  
CONPDKK:B AND B5;                     //5分钟和30分钟这2个周期上的均线共振

IF CONPKKD THEN BEGIN                 //2个周期上的均线对头排列,则平空开多
    SELLSHORT(HOLDING<0,HOLDING,MARKET);
    BUY(HOLDING=0,SS,MARKET);
END

IF CONPDKK THEN BEGIN                //2个周期上的均线空头排列,则平多开空
    SELL(HOLDING>0,HOLDING,MARKET);
    BUYSHORT(HOLDING=0,SS,MARKET);
END


二、小周期引用大周期范例(例如策略运行周期为5分钟,引用30分钟周期上的指标值):

注意:在小周期引用大周期时,由于小周期K线结束时,大周期K线还没有结束,如果直接引用往往会造成历史K线上的信号发生变化,从而引起信号闪烁,所以在引用时建议往前偏移一根,保证引用的值是相对固定的。


[PEL] 复制代码
//交易策略,运行周期为5分钟线

INPUT:N1(5,1,100,1),N2(10,1,100,1),N3(20,1,100,1),N4(30,1,100,1);  //定义参数N1,N2,N3,N4
INPUT:SS(1,1,100,1);                                   //定义下单手数,默认为1手
MA5:MA(C,N1);      
MA10:MA(C,N2);
MA20:MA(C,N3);
MA30:MA(C,N4);     //定义当前周期的4根均线

A:C>MA5 AND MA5>MA10 AND MA10>MA20 AND MA20>MA30;   //定义当前周期均线多头排列
B:C<MA5 AND MA5<MA10 AND MA10<MA20 AND MA20<MA30;   //定义当前周期均线空头排列
A5:STKINDI('','MA指标.A',0,4,-1);      //引用上一根30分钟周期的均线多头排列
B5:STKINDI('','MA指标.B',0,4,-1);      //引用上一根30分钟周期的均线空头排列
CONPKKD:A AND A5;                  
CONPDKK:B AND B5;                  //5分钟和30分钟这2个周期上的均线共振

IF CONPKKD THEN BEGIN                 //2个周期上的均线多头排列,则平空开多
   SELLSHORT(HOLDING<0,HOLDING,MARKET);
   BUY(HOLDING=0,SS,MARKET);
 END

IF CONPDKK THEN BEGIN                //2个周期上的均线空头排列,则平多开空
   SELL(HOLDING>0,HOLDING,MARKET);
   BUYSHORT(HOLDING=0,SS,MARKET);
END



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

使用道具 举报

6

主题

14

帖子

14

积分

Rank: 1

等级: 新手上路

注册:
2021-7-5
曾用名:
发表于 2021-7-5 19:57 | 显示全部楼层
为什么运行没有结果?还有代码中'MA指标.A',这句话怎么理解?请问可以这样引用函数的嘛?
回复

使用道具 举报

3

主题

9

帖子

19

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
发表于 2021-7-21 17:39 来自手机 | 显示全部楼层
请问#号不是也可以跨周期吗 是不推荐使用吗?
回复

使用道具 举报

2

主题

5

帖子

5

积分

Rank: 1

等级: 新手上路

注册:
2021-8-23
曾用名:
发表于 2021-8-23 08:10 | 显示全部楼层
小周期引用大周期-----怎么样才能减少电脑的压力---因为几十个模型作为一个组合电脑的压力确实大

//交易策略,运行周期为5分钟线

INPUT:N1(5,1,100,1),N2(10,1,100,1),N3(20,1,100,1),N4(30,1,100,1);  //定义参数N1,N2,N3,N4
INPUT:SS(1,1,100,1);                                   //定义下单手数,默认为1手
MA5:MA(C,N1);      
MA10:MA(C,N2);
MA20:MA(C,N3);
MA30:MA(C,N4);     //定义当前周期的4根均线

A:C>MA5 AND MA5>MA10 AND MA10>MA20 AND MA20>MA30;   //定义当前周期均线多头排列
B:C<MA5 AND MA5<MA10 AND MA10<MA20 AND MA20<MA30;   //定义当前周期均线空头排列
A5:STKINDI('','MA指标.A',0,4,-1);      //引用上一根30分钟周期的均线多头排列
B5:STKINDI('','MA指标.B',0,4,-1);      //引用上一根30分钟周期的均线空头排列
CONPKKD:A AND A5;                  
CONPDKK:B AND B5;                  //5分钟和30分钟这2个周期上的均线共振

IF CONPKKD THEN BEGIN                 //2个周期上的均线多头排列,则平空开多
   SELLSHORT(HOLDING<0,HOLDING,MARKET);
   BUY(HOLDING=0,SS,MARKET);
END

IF CONPDKK THEN BEGIN                //2个周期上的均线空头排列,则平多开空
   SELL(HOLDING>0,HOLDING,MARKET);
   BUYSHORT(HOLDING=0,SS,MARKET);
END
回复

使用道具 举报

1

主题

2

帖子

2

积分

Rank: 1

等级: 新手上路

注册:
2024-2-22
曾用名:
发表于 2024-2-22 11:15 | 显示全部楼层
这个跨周期,复制到交易系统后,没信号,怎样才能用?

补充内容 (2024-2-25 22:43):
//交易策略,运行周期为5分钟线

INPUT:N1(5,1,100,1),N2(10,1,100,1),N3(20,1,100,1),N4(30,1,100,1);  //定义参数N1,N2,N3,N4
INPUT:SS(1,1,100,1);                                   //定义下单手数,默认为1手
MA5:MA(C,N1);      
MA10:MA(C,N2);
MA20:MA(C,N3);
MA30:MA(C,N4);     //定义当前周期的4根均线

A:C>MA5 AND MA5>MA10 AND MA10>MA20 AND MA20>MA30;   //定义当前周期均线多头排列
B:C<MA5 AND MA5<MA10 AND MA10<MA20 AND MA20<MA30;   //定义当前周期均线空头排列
A5:STKINDI('','MA指标.A',0,4,-1);      //引用上一根30分钟周期的均线多头排列
B5:STKINDI('','MA指标.B',0,4,-1);      //引用上一根30分钟周期的均线空头排列
CONPKKD:A AND A5;                  
CONPDKK:B AND B5;                  //5分钟和30分钟这2个周期上的均线共振

IF CONPKKD THEN BEGIN                 //2个周期上的均线多头排列,则平空开多
   SELLSHORT(HOLDING<0,HOLDING,MARKET);
   BUY(HOLDING=0,SS,MARKET);
END

IF CONPDKK THEN BEGIN                //2个周期上的均线空头排列,则平多开空
   SELL(HOLDING>0,HOLDING,MARKET);
   BUYSHORT(HOLDING=0,SS,MARKET);
END
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-19 12:16 , Processed in 0.369481 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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