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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → tenterprice函数问题

   

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


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

主题:tenterprice函数问题

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


加好友 发短信
等级:论坛游侠 帖子:194 积分:0 威望:0 精华:0 注册:2020/2/11 13:06:09
tenterprice函数问题  发帖心情 Post By:2020/3/9 13:09:00    Post IP:180.169.30.6[显示全部帖子]

请帮忙 看一下,下面的代码会进入无限循环吗?当开了第二单以后再也获取不得B2了,B1也是第一单的开仓价。

CHONG@;    
if TBUYHOLDINGEX('','',1)>0 and TBUYHOLDINGEX('','',1)>ss then begin
b1:=tenterprice;
while b1=0 do
    b1:=tenterprice; 
if b1>0 then
     
while not(ABS(b1-b2)>2 ) do begin
b1:=tenterprice;
if b1=b2 then
   GOTO CHONG;
    end
   
if b1>b2 then begin
   b2:=b1;     
   ss:=ss+1;
   end
  
end    
    DEBUGFILE('D:\35.TXT',' b1:=%.2f',b1);
   DEBUGFILE('D:\35.TXT',' b2:=%.2f',b2);
   DEBUGFILE('D:\35.TXT',' f:=%.2f',f);
   DEBUGFILE('D:\35.TXT',' ss:=%.2f',ss);    


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


加好友 发短信
等级:论坛游侠 帖子:194 积分:0 威望:0 精华:0 注册:2020/2/11 13:06:09
  发帖心情 Post By:2020/3/9 13:29:52    Post IP:144.123.5.122[显示全部帖子]

我的目的是获取最新的开仓价,之前跑的过程中发现开仓价获取时间不固定,所以想这么写,就是如果没获取到最新的开仓价我就不执行下边的代码。
如果需要达到这个目的怎么写


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


加好友 发短信
等级:论坛游侠 帖子:194 积分:0 威望:0 精华:0 注册:2020/2/11 13:06:09
  发帖心情 Post By:2020/3/9 21:32:45    Post IP:144.123.5.122[显示全部帖子]

意思是获取不到TENTERPRICE,就比如上面的代码,如果能获取到TENTERPRCIE就不会无限循环了不是

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


加好友 发短信
等级:论坛游侠 帖子:194 积分:0 威望:0 精华:0 注册:2020/2/11 13:06:09
  发帖心情 Post By:2020/3/10 8:32:30    Post IP:144.123.5.122[显示全部帖子]

我就是DEBUGFILE才发现这个问题的,所以才这么搞的,不然也不会这么写,直接TENTERPRICE。还可能会和什么有关,模拟服务器不支持?

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


加好友 发短信
等级:论坛游侠 帖子:194 积分:0 威望:0 精华:0 注册:2020/2/11 13:06:09
  发帖心情 Post By:2020/3/10 12:16:53    Post IP:144.123.5.122[显示全部帖子]

就是TENTERPRICE取 不到值

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


加好友 发短信
等级:论坛游侠 帖子:194 积分:0 威望:0 精华:0 注册:2020/2/11 13:06:09
  发帖心情 Post By:2020/3/11 9:46:22    Post IP:144.123.5.122[显示全部帖子]

我下面这样写不行是吧,会因为不能及时获取开仓价导致判断出错
jia:=20;
sun:=20;
ying:=200;

if TBUYHOLDINGEX('','',1)=0 THEN
   tbuy(1,1,mkt);
   
if TBUYHOLDINGEX('','',1)>0 then begin
   if C>tenterprice+jia*mindiff then
       tbuy(1,1,mkt);
       
   if C<tenterprice-sun*mindiff then
       tsell(1,0,mkt);
       
   if C>tenterprice+ying*mindiff then
       tsell(1,0,mkt);        
end
  

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


加好友 发短信
等级:论坛游侠 帖子:194 积分:0 威望:0 精华:0 注册:2020/2/11 13:06:09
  发帖心情 Post By:2020/3/11 14:45:50    Post IP:144.123.5.122[显示全部帖子]

这段代码实际运行中是有问题的,加载以后,开了第一单,然后当满足C>tenterprice+jia*mindiff加开了一单,同一时间又执行了C<tenterprice-sun*mindiff平仓一单,同一时间又执行了
C>tenterprice+ying*mindifF又平了一单,除了第一单以外,后面的三个条件在同一时间触发了,做过各种控制都不行,DEBUGFILE的结果是获取的TENTERPRICE为0,有时候可以获取到TENTERPRICE但这个TENTERPRICE是上一单的开仓价。

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


加好友 发短信
等级:论坛游侠 帖子:194 积分:0 威望:0 精华:0 注册:2020/2/11 13:06:09
  发帖心情 Post By:2020/3/11 15:10:04    Post IP:144.123.5.122[显示全部帖子]

用的市价。
就是遇到这个问题才用各种控制,不然也不用这么麻烦。
麻烦了。

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


加好友 发短信
等级:论坛游侠 帖子:194 积分:0 威望:0 精华:0 注册:2020/2/11 13:06:09
  发帖心情 Post By:2020/3/12 13:22:28    Post IP:144.123.5.122[显示全部帖子]

SLEEP的方法试过了,有时候可以,有时候不行,监控TENTERPRICE和DEBUGFILE最迟的一次十多秒才获取到TENTERPRICE,所以这个SLEEP时间长了不行短了不行,我才想用WHILE等获取到TENTERPRICE才继续向下执行的方法,实际 过程中WHILE也不行,按逻辑来讲当可以获取到TENTERPRICE的时候这个循环应该就跳出来了,为什么跳不出来

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


加好友 发短信
等级:论坛游侠 帖子:194 积分:0 威望:0 精华:0 注册:2020/2/11 13:06:09
  发帖心情 Post By:2020/3/12 15:28:01    Post IP:144.123.5.122[显示全部帖子]

好的,我试试

 回到顶部
总数 11 1 2 下一页