欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请问多头排列的写法

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2804人关注过本帖树形打印复制链接

主题:请问多头排列的写法

帅哥哟,离线,有人找我吗?
leonard2887
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:47 积分:0 威望:0 精华:0 注册:2020/3/3 20:24:07
请问多头排列的写法  发帖心情 Post By:2021/4/13 13:49:34    Post IP:222.128.40.56[只看该作者]

 老师您好,请问均线多头排列该怎么表达,是ma5>ma10>ma20吗?还是其他的表现形式,谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/4/13 13:50:08    Post IP:58.246.57.26[只看该作者]

 ma5>ma10 and ma10>ma20

一般都是这种写法的。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
leonard2887
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:47 积分:0 威望:0 精华:0 注册:2020/3/3 20:24:07
  发帖心情 Post By:2021/4/13 15:01:32    Post IP:222.128.40.56[只看该作者]

 假设我想让人小周期和大周期都是多头排列的时候,且MACD大0开仓,这个该怎么表述,可能是我语法的问题,机器不认,谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/4/13 15:12:44    Post IP:58.246.57.26[只看该作者]

那就要跨周期跨指标了。
多头排列写法不变,代码还是前面的。单独放到一个指标里。比如指标为A。然后你再跨周期调用就行了。
指标A的代码:
ma5:ma(c,5);
ma10:ma(c,10);
ma20:ma(c,20);
dtpl:ma5>ma10 and ma10>ma20;

如果不跨品种的话。调用写法很容易。

input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6);
DIFF :EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  :EMA(DIFF,M);
MACD1 :2*(DIFF-DEA), COLORSTICK;


cd0: ma5>ma10 and ma10>ma20;//当前周期多头排列。均线你自行完善下定义。
cd1:“A.dtpl#MIN10”; 引用10分钟周期的指标A的dtpl. 
cd2:MACD1>0;


指标调用的函数说明:

引用操作符
例如:
"INDIE.VAR"(P1,P2) 引用INDI指标的VAR输出,计算参数为P1,P2。
数据类型有TICK、MIN1、MIN3、MIN5、MIN10、MIN15、MIN30、MIN60、DAY、WEEK、MONTH、YEAR、MULTIDAY、MULTIMIN、MULTISEC、MULTIHOUR、QUARTER、SEMIYEAR、SOLARTERM
"MACD.DIFF#WEEK"(26,10,5) 引用周线数据的MACD公式指标线DIFF输出
"MACD.DIFF"表示引用MACD指标的DIFF指标线输出并且使用公式的默认参数。
"000001$CLOSE" 引用品种000001的收盘价
"SZ000001$CLOSE#WEEK" 引用SZ市场的品种000001周线收盘价
"VOL##DAY"引用日线数据的前一周期的VOL指标
引用数据时,需要实现确认被引用品种周期数据齐全,再首次使用或者在不确定时,请手工进行数据补充工作
"DLLNAME@FNCNAME"(P1,P2) 引用DLLNAME.DLL的FNCNAME函数,计算参数为P1,P2
用户函数模式:#用户函数.指标线(参数)#
例如:#test01.B1(20,45)#,表示调用test01指标的B1输出线,参数为20和45,使用用户函数模式比扩周期引用更加节省内存,提高运行效率.




命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
leonard2887
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:47 积分:0 威望:0 精华:0 注册:2020/3/3 20:24:07
谢谢  发帖心情 Post By:2021/4/13 15:28:10    Post IP:222.128.40.56[只看该作者]

 谢谢您,我先试下,辛苦您了

 回到顶部
帅哥哟,离线,有人找我吗?
leonard2887
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:47 积分:0 威望:0 精华:0 注册:2020/3/3 20:24:07
  发帖心情 Post By:2021/4/13 17:09:20    Post IP:222.128.40.56[只看该作者]

 您好,公式不做空,麻烦您帮我看下,谢谢:
INPUT:ZS(20,5,30,5);
INPUT:ZY(20,5,100,5);
INPUT:HT(20,5,50,5);
INPUT:KXSL(20,0,100,5);//K线数量
INPUT:SS(1,1,10000,1);////手数

MA20:=eMA(C,20);
MA60:=EMA(C,60);
ma120:=ema(c,120);

DIFF := EMA(CLOSE,14) - EMA(CLOSE,26);
DEA  := EMA(DIFF,9);
MACD1:=2*(DIFF-DEA);

///周期共振
MA20D:=STKINDI('','JLLHDAY.MA3',0,6,-1),COLORWHITE;

MA60D:=STKINDI('','JLLHDAY.MA4',0,6,-1);

MA120D:=STKINDI('','JLLHDAY.MA5',0,6,-1);

DTPL:= MA20D>MA60D AND MA60D>MA120D;;//多头排列
KTPL:= MA20D<MA60D AND MA60D<MA120D;//空头排列

dtpl1:=ma20>ma60 and ma60>ma120;
ktpl2:=ma20<ma60 and ma60<ma120;

DRAWICON(DTPL,RCC,031);
DRAWICON(KTPL,RCC,02);

入场价:=REF(CLOSE,ENTERBARS+1);
BKHIGH:=HHV(HIGH,ENTERBARS+1);
SKLOW:=LLV(LOW,ENTERBARS+1);

BBB:= c>DTPL1 and  DTPL and cross(diff,dea) and diff>0 and dea>0;
SSS:= c<ktpl2 and  KTPL and cross(dea,diff) and diff<0 and dea<0;

//开多条件
IF BBB AND HOLDING=0   THEN
BEGIN
SELLSHORT(1,SS,MARKET);
BUY(HOLDING=0,SS,MARKET); ////开仓             
END

IF L<入场价-OPEN*ZS/1000    AND HOLDING>0 AND ENTERBARS>0   THEN  多止损:SELL(1,SS,MARKET);
IF h>入场价+OPEN*ZY/1000    AND HOLDING>0 AND ENTERBARS>0   THEN  多止盈:SELL(1,SS,MARKET);
IF C<BKHIGH-OPEN*HT/1000    AND HOLDING>0 AND ENTERBARS>0  THEN  多回头1:SELL(1,SS,MARKET);

//开空条件
IF  SSS  AND HOLDING=0   THEN
BEGIN
SELL(1,SS,MARKET);
BUYSHORT(HOLDING=0,SS,MARKET); ////开仓             
END

IF h>入场价+OPEN*ZS/1000     AND HOLDING<0 AND ENTERBARS>0  THEN   空止损:SELLSHORT(1,SS,MARKET);
IF l<入场价-OPEN*ZY/1000     AND HOLDING<0 AND ENTERBARS>0  THEN   空止盈:SELLSHORT(1,SS,MARKET);
IF C>SKLOW+OPEN*HT/1000     AND HOLDING<0 AND ENTERBARS>0   THEN   空回头1:SELLSHORT(1,SS,MARKET);

ENB:ENTERBARS,COLORWHITE,NODRAW;

IF ENB>=KXSL && BBB=0 && HOLDING>0 AND ENTERBARS>0    /////平仓条件
THEN 时间: SELL(1,SS,MARKET); /////平仓

SNB:ENTERBARS,COLORWHITE,NODRAW;

IF SNB>=KXSL && SSS=0 && HOLDING<0 AND ENTERBARS>0    /////平仓条件
THEN 时间1:sellshort(1,SS,MARKET); /////平仓










 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/4/13 17:12:54    Post IP:58.246.57.26[只看该作者]

 是要去掉开空头的部分?


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
leonard2887
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:47 积分:0 威望:0 精华:0 注册:2020/3/3 20:24:07
  发帖心情 Post By:2021/4/13 17:18:44    Post IP:222.128.40.56[只看该作者]

 我想保留开空的部分,写好后,机器只做多,不做空

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/4/13 17:22:26    Post IP:58.246.57.26[只看该作者]

 那你直接把空头部分注释掉就行了。需要用的时候再去掉注释就行了。


//开多条件
IF BBB AND HOLDING=0   THEN
BEGIN
//SELLSHORT(1,SS,MARKET);
BUY(HOLDING=0,SS,MARKET); ////开仓             
END

IF L<入场价-OPEN*ZS/1000    AND HOLDING>0 AND ENTERBARS>0   THEN  多止损:SELL(1,SS,MARKET);
IF h>入场价+OPEN*ZY/1000    AND HOLDING>0 AND ENTERBARS>0   THEN  多止盈:SELL(1,SS,MARKET);
IF C<BKHIGH-OPEN*HT/1000    AND HOLDING>0 AND ENTERBARS>0  THEN  多回头1:SELL(1,SS,MARKET);

//开空条件
IF  SSS  AND HOLDING=0   THEN
BEGIN
SELL(1,SS,MARKET);
//BUYSHORT(HOLDING=0,SS,MARKET); ////开仓             
END

//IF h>入场价+OPEN*ZS/1000     AND HOLDING<0 AND ENTERBARS>0  THEN   空止损:SELLSHORT(1,SS,MARKET);
//IF l<入场价-OPEN*ZY/1000     AND HOLDING<0 AND ENTERBARS>0  THEN   空止盈:SELLSHORT(1,SS,MARKET);
//IF C>SKLOW+OPEN*HT/1000     AND HOLDING<0 AND ENTERBARS>0   THEN   空回头1:SELLSHORT(1,SS,MARKET);

ENB:ENTERBARS,COLORWHITE,NODRAW;

IF ENB>=KXSL && BBB=0 && HOLDING>0 AND ENTERBARS>0    /////平仓条件
THEN 时间: SELL(1,SS,MARKET); /////平仓

//SNB:ENTERBARS,COLORWHITE,NODRAW;
//
//IF SNB>=KXSL && SSS=0 && HOLDING<0 AND ENTERBARS>0    /////平仓条件
//THEN 时间1:sellshort(1,SS,MARKET); /////平仓
//




命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/4/13 17:25:36    Post IP:58.246.57.26[只看该作者]

 如果是实际交易中时候 ,也可以在设置里过滤空头信号。但是图表上还是正常显示空头信号。


图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

这里可以选择需要执行的信号。




命数如织,当如磐石。
 回到顶部
总数 19 1 2 下一页