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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 重复开仓的问题

   

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


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

主题:重复开仓的问题

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


加好友 发短信
等级:论坛游侠 帖子:152 积分:0 威望:0 精华:0 注册:2015/3/2 13:11:05
  发帖心情 Post By:2015/3/6 14:39:18    Post IP:110.84.52.125[只看该作者]

请大家不要指责我不会调试,这样无助于问题解决。能又有一个大侠跳出来一起讨论,我非常高兴。

 

其实我所有的调试信息都已经输出了,为了简单起见,把调试部分代码删掉贴上去了。包括islastbar也是做成开关的,都试过了,还是不行。

 

这个是放在前面的,每次买后都会输出后面那两句话。msgout之所以不加islastbar,是因为金字塔告诉DEBUGFILE默认就有islastbar,我特意不加,看看历史会输出什么消息,做一下对比。

我还是希望能针对我的问题能给个有用的建议。包括前面两个问题:信号闪烁,全局变量数组问题,和第三个有时候开不出来单(比如上面那段小代码,现在也没有开出单,盘中调整参数后,应当会重新执行,也没有开出来,但有时又能开出来),谢谢!

 

开多平空条件:=开仓时间 AND ISLASTBAR;
开空平多条件:=开仓时间 AND ISLASTBAR;
IF Mydebug=1 THEN BEGIN
开多平空条件:=开仓时间;
开空平多条件:=开仓时间;

END

每次买后都会输出

  IF Is_debug=1 THEN  MSGOUT(TRUE,'序列位置:'&numtostr(BARPOS,0)&',历史开多数:'&numtostr(tmpppp,0)&',成交价:'&numtostr(ENTERPRICE,0)&',持仓:'&numtostr(HOLDING,0)&',浮动盈亏:'&numtostr(OPENPROFIT,0)&',总买单数:'&numtostr(B_NUM,0)&',资产:'&numtostr(ASSET,0)&',实时:'&numtostr(ISLASTBAR,0));
    IF Is_log=1 THEN DEBUGFILE('C:\myTEST.TXT','序列位置:'&numtostr(BARPOS,0)&',历史开多数:'&numtostr(tmpppp,0)&',成交价:'&numtostr(ENTERPRICE,0)&',持仓:'&numtostr(HOLDING,0)&',浮动盈亏:'&numtostr(OPENPROFIT,0)&',总买单数:'&numtostr(B_NUM,0)&',资产:%.0f'&',实时:'&numtostr(ISLASTBAR,0),asset); 


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


加好友 发短信
等级:论坛游侠 帖子:152 积分:0 威望:0 精华:0 注册:2015/3/2 13:11:05
  发帖心情 Post By:2015/3/6 14:48:58    Post IP:110.84.52.125[只看该作者]

造成信号闪烁的原因就是条件从成立变成不成立,也就是你原来成功下单之后,做禁止下单的变量,也会变成下单之前的状态,变成了可以开仓的状态。这才是到了后面的k线会接连开仓的原因

可是他实际的确是在后面的K线中的同一个价位开出多个单子啊,如果同一个价位开了一单,那变量应当不会被恢复成之前的状态吧,但等很长时间价格又回落后又重复开单了,这个是从金字塔的中看到的。

所以该怎么判断信号闪烁,请指点,其实就是这句:

 IF 开空平多条件 AND LOW>=Buy_point[I_tmp] AND B_flag[I_tmp]<=0 AND B_NUM<MAX_hold and ABS(holding)<MAX_hold  THEN BEGIN

我早上改成了这句也不行:

 My_buycon:=开空平多条件 AND LOW>=Buy_point[I_tmp] AND B_flag[I_tmp]<=0 AND B_NUM<MAX_hold and ABS(holding)<MAX_hold;

 IF My_buycon  THEN BEGIN

 

FOR I_tmp=1 TO Num_p0 DO BEGIN


 IF 开空平多条件 AND LOW>=Buy_point[I_tmp] AND B_flag[I_tmp]<=0 AND B_NUM<MAX_hold and ABS(holding)<MAX_hold  THEN BEGIN
  //IF 开空平多条件 AND LOW>=Buy_point[I_tmp] AND B_flag[I_tmp]<=0 AND B_NUM<MAX_hold and ABS(holding)<MAX_hold AND ABS(holding)<=B_NUM THEN BEGIN
  b_tmpp:=Buy_SS;
 //开单量不能超过最大MAX_hold
 IF b_tmpp+ABS(holding)>MAX_hold THEN b_tmpp:=ABS(MAX_hold-ABS(holding));
 
   IF b_tmpp+B_NUM>MAX_hold THEN b_tmpp:=ABS(MAX_hold-B_NUM);//买单量不能超过最大值
 
   S_tmp:=HOLDING;
 
 //开空
    IF b_tmpp>0 AND b_tmpp<ABS(MAX_hold) THEN BEGIN 
      //开空:buyshort(1,b_tmpp,LIMITR,OPEN);//MARKET);//limitr,X周期低点);
      开空:buyshort(1,b_tmpp,MARKET);//LIMITR,OPEN);//MARKET);//limitr,X周期低点);
      B_NUM:=B_NUM+1;     
  // END
     //IF HOLDING<>S_tmp THEN BEGIN
      B_price[I_tmp]:=ENTERPRICE;
      B_flag[I_tmp]:=1;
      //输出调试信息
    IF Is_debug=1 THEN  MSGOUT(TRUE,'序列位置:'&numtostr(BARPOS,0)&',开空数:'&numtostr(b_tmpp,0)&',成交价:'&numtostr(ENTERPRICE,0)&',持仓:'&numtostr(HOLDING,0)&',浮动盈亏:'&numtostr(OPENPROFIT,0)&',总买单数:'&numtostr(B_NUM,0)&',资产:'&numtostr(ASSET,0)&',实时:'&numtostr(ISLASTBAR,0)&',触发价格:'&numtostr(Buy_point[I_tmp],0)&',标志位:'&numtostr(B_flag[I_tmp],0));
    IF Is_log=1 THEN DEBUGFILE('C:\myTEST.TXT','序列位置:'&numtostr(BARPOS,0)&',开空数:'&numtostr(b_tmpp,0)&',成交价:'&numtostr(ENTERPRICE,0)&',持仓:'&numtostr(HOLDING,0)&',浮动盈亏:'&numtostr(OPENPROFIT,0)&',总买单数:'&numtostr(B_NUM,0)&',资产:'&numtostr(ASSET,0)&',实时:'&numtostr(ISLASTBAR,0)&',触发价格:'&numtostr(Buy_point[I_tmp],0)&',标志位:'&numtostr(B_flag[I_tmp],0),0);
     END
 
         IF ABS(HOLDING)>=MAX_hold THEN BEGIN
        MSGOUT(TRUE,'警告:持仓达到上限,停止开空!');//NOAXIS,COLORGRAY;警告:"持仓达到上限,停止开空!";
        SENDPHONEMSG('警告:持仓达到上限,停止开空!',1);
      END

 END
END


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2015/3/6 14:53:30    Post IP:58.246.57.26[只看该作者]

这个就是信号闪烁。

就算你开仓了,变量也赋值了,但是一闪烁,全没了。开仓信号没有了,变量也变回开仓前的状态,一切就和没开过仓一样,这个就是闪烁

[此贴子已经被作者于2015/3/6 14:53:50编辑过]


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

客户服务部

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

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

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


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

而且你的日志里面也显示的很清楚了,不是同一根k线上反复开,而是不同的k线上开。而且看你给的k线图是上没有信号的,所以信号闪烁是结合了这两点得出的

而你怀疑的你赋值变量之后系统仍旧开仓,怀疑是我们软件问题的,所应该表现出来的形式应该是:k线图上有很多个开仓信号,而且变量值已经赋值到不能开仓的状态,然后仍然有开仓信号,这样才是条件不满足但是仍然重复开仓



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

客户服务部

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

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

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


加好友 发短信
等级:论坛游侠 帖子:152 积分:0 威望:0 精华:0 注册:2015/3/2 13:11:05
  发帖心情 Post By:2015/3/6 15:04:56    Post IP:110.84.52.125[只看该作者]

信号闪烁怎么解决,请给个解决办法好吗?已经说了很多次了,这样说来说去,一天又要过去了,怎么写才能解决你说的问题,代码应当也不复杂。

 

还有你早上说我数组有问题,是不是我也要在代码中用替代办法来解决:

你对金字塔的数组完全理解错了,尤其是在逐k线模式下,更加错了

buypiont[1]指的是k线第一根

buypoint[2]指的是k线第二根

位置是固定的,当行情运行到两根k线之后,你的值就赋值不进去数组


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


加好友 发短信
等级:论坛游侠 帖子:152 积分:0 威望:0 精华:0 注册:2015/3/2 13:11:05
  发帖心情 Post By:2015/3/6 15:07:58    Post IP:110.84.52.125[只看该作者]

还有下面这段代码,我测试塑料1505,价格9000多,OPEN>0应当总是成立吧,也是开不出来啊,偶尔也能开出来,不知道你们金字塔是什么规律。

VARIABLE:aa=0;
buycon:=OPEN>0 and aa<2;
if buycon THEN BEGIN
buyshort(1,1,MARKET);
//if aa>2 then aa:=1;
aa:=aa+1;
msgout(TRUE,'买一手');
end


持仓:holding,linethick0;
资产:asset,noaxis;
资金:cash(0),linethick0;


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2015/3/6 15:33:35    Post IP:58.246.57.26[只看该作者]

那么你有没有看到信号?你是不是没找到信号在哪里?

这段代码实际的信号是k线开头最开始两根k线才有的。

能理解图表公式的运行机制吗?

你的代码要是能开仓,那么就只有一种情况:当前k线图总k线小于等两根


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


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

客户服务部

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

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

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2015/3/6 15:36:25    Post IP:58.246.57.26[只看该作者]

还有你在图表使用msgout的时候,可以加上islastbar这个条件吗?msgout输出值有历史k线上的而不仅仅是当前的

我都猜出来你说的偶尔开仓不是真正的开仓,触发下单的那种开仓。而是通过调试出来的信息从而判断有开仓



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

客户服务部

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

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

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


加好友 发短信
等级:论坛游侠 帖子:152 积分:0 威望:0 精华:0 注册:2015/3/2 13:11:05
  发帖心情 Post By:2015/3/6 15:42:16    Post IP:117.136.11.86[只看该作者]

我理解您说的,后面加上即可,不过对结果不影响。不过在开仓条件中加islastbar,好像会不断触发。不过,如何解决盘中重启公式又能重新买入呢?

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


加好友 发短信
等级:论坛游侠 帖子:152 积分:0 威望:0 精华:0 注册:2015/3/2 13:11:05
  发帖心情 Post By:2015/3/6 15:49:20    Post IP:117.136.11.82[只看该作者]

我说的开仓是指程序话交易界面上的开仓记录,msgout只是参考,不会当作真的开仓。 另外,前面的问题还望给个解决办法。调试技巧,包括金金字塔的日志,msgout,debugfile我已都用上,应当可以判断历史与实际开单。

 回到顶部
总数 90 上一页 1 2 3 4 5 6 7 8 9 下一页