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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 图表程序的执行问题

   

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


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

主题:图表程序的执行问题

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


加好友 发短信
等级:新手上路 帖子:17 积分:0 威望:0 精华:0 注册:2015/4/23 17:19:09
图表程序的执行问题  发帖心情 Post By:2016/5/26 16:44:09    Post IP:117.28.251.169[只看该作者]

图片点击可在新窗口打开查看自编了个图表程序:DMA-TRIX-等待-空(详细代码附后)

                         当DMA死叉时,若TRIX已死叉,开空
              
                                               否则等TRIX死叉时开空,如果等待过程中DMA形成金叉,则退出
 
                        当TRIX金叉时,平空

现在的图表程序默认达到开空条件后,就执行开空,然后就等平空条件出现。现在的问题是,在碰到开空条件时,人为干预不开,再次达到开空条件就没有信号了(此时对应前面没有开空的平空还没有达到),看下面的图片应该会比较清楚(不知为什么不能插入自己电脑的图片,也无法复制图片),只好用表格代替了

  1    2 3   4  
数字代表K线

在K线1达到开空条件,对应的平空条件在K线4,现在人为干预在1不开空,K线3也达到开空条件,现在该如何使3也发出信号。

程序代码如下

VARIABLE: FLAG1=0;

//DMA二线
DDD:=(MA(CLOSE,S)-MA(CLOSE,P));
AMA:=MA(DDD,M);

//TRIX(N1,M1)线
TR3:= EMA(EMA(EMA(CLOSE,N1),N1),N1);
TRIX3 : (TR3-REF(TR3,1))/REF(TR3,1)*100,LINETHICK0;
TRML3 :  MA(TRIX3,M1),LINETHICK0;

DMA金叉 := CROSS(DDD,AMA);
DMA死叉 := CROSS(AMA,DDD);

TRIX3金叉 := CROSS(TRIX3,TRML3);
TRIX3死叉 := CROSS(TRML3,TRIX3);


IF DMA死叉=1 THEN
BEGIN
IF TRIX3<TRML3 THEN
开空1:BUYSHORT(HOLDING=0,NUM,MARKET);
IF TRIX3>TRML3 THEN
FLAG1 :=1;
END;
IF FLAG1=1 THEN
BEGIN 
      IF DMA金叉=0 THEN
      BEGIN
          IF TRIX3死叉=1  THEN
          BEGIN
         开空2:BUYSHORT(HOLDING=0,NUM,MARKET);
         FLAG1:=0;
           END;
       END;
       ELSE
          FLAG1:=0;
END;
IF TRIX3金叉=1 THEN
平空: SELLSHORT(HOLDING<0,NUM,MARKET); 

图片点击可在新窗口打开查看

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/5/26 16:52:56    Post IP:180.169.30.6[只看该作者]

把开空语句里面的holding=0去掉


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:17 积分:0 威望:0 精华:0 注册:2015/4/23 17:19:09
  发帖心情 Post By:2016/5/27 9:29:53    Post IP:117.28.251.169[只看该作者]

那换成什么变量?直接删除编译通不过。谢谢。

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


加好友 发短信
等级:新手上路 帖子:17 积分:0 威望:0 精华:0 注册:2015/4/23 17:19:09
  发帖心情 Post By:2016/5/27 9:40:43    Post IP:117.28.251.169[只看该作者]

开空1:BUYSHORT(HOLDING=0,NUM,MARKET);

换成:

开空1:BUYSHORT(TRIX3<TRML3,NUM,MARKET);

开空2:BUYSHORT(HOLDING=0,NUM,MARKET);

换成:

开空2:BUYSHORT(TRIX3死叉=1,NUM,MARKET);

即把前面的条件再写一遍,这样可以吗?

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/5/27 9:56:17    Post IP:180.169.30.6[只看该作者]

也可以,或者只写数字1

buyshort(1,1,market);

这样的

[此贴子已经被作者于2016-5-27 9:56:34编辑过]


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部