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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 为什么上面的执行了,下面这条却不执行?

   

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


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

主题:为什么上面的执行了,下面这条却不执行?

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


加好友 发短信
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2017/9/6 21:45:50
  发帖心情 Post By:2020/3/30 10:43:14    Post IP:112.96.103.95[显示全部帖子]

没有显示开多信号,虚拟持仓是多仓,就是不明白为什么总是不执行开多操作。

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


加好友 发短信
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2017/9/6 21:45:50
  发帖心情 Post By:2020/3/30 11:22:59    Post IP:112.96.103.95[显示全部帖子]

如果是资金不够,那也应该是在交易记录那里提示才对啊,现在是根本就没有下达交易指令,但是如果我打开了持仓同步则会马上开仓,不打开持仓同步就没有任何反应。

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


加好友 发短信
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2017/9/6 21:45:50
  发帖心情 Post By:2020/3/30 14:09:58    Post IP:112.96.103.95[显示全部帖子]

实在不明白为什么金字塔要弄这么复杂,弄什么虚拟资金虚拟持仓,该怎么执行就怎么执行啊,弄这么多干嘛?

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


加好友 发短信
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2017/9/6 21:45:50
  发帖心情 Post By:2020/3/30 21:33:03    Post IP:61.242.40.199[显示全部帖子]

以下是我简化后的代码:
WARNING_DISABLE:4;
WARNING_DISABLE:9;
VARIABLE:BuySell='00';
BuySell:=GETINIFILESTRING('C:\SystemSet.ini','Gen','BuySell');
if BuySell='' then BuySell:='00';
SS0:=1;
HoldFlag:if(TBUYHOLDING(1)<>0,1,if(TSELLHOLDING(1)<>0,-1,0)),NODRAW,NOAXIS;//这个在没登录的时候都是0
if ISLASTBAR then begin
if (BuySell='B1' or BuySell='B2' or BuySell='B3') then begin 
MSGOUT(ISLASTBAR,'Place1' & ',Holding:' & numtostr(Holding,0));
if HoldFlag=0 then begin 
MSGOUT(ISLASTBAR,'Place2' & ',Holding:' & numtostr(Holding,0));
if HoldFlag<0 then begin 
MSGOUT(ISLASTBAR,'Place2.1' & ',Holding:' & numtostr(Holding,0));
SELLSHORT(1,0,MARKET);//做多前先平空
end
HoldFlag:=if(TBUYHOLDING(1)<>0,1,if(TSELLHOLDING(1)<>0,-1,0));
if HoldFlag=0 then begin
MSGOUT(ISLASTBAR,'Place2.2' & ',Holding:' & numtostr(Holding,0));
    BUY(1,SS0,MARKET);
    HoldFlag:=if(TBUYHOLDING(1)<>0,1,if(TSELLHOLDING(1)<>0,-1,0));//这个在没登录的时候都是0
    end
end
else if HoldFlag>0 then begin
MSGOUT(ISLASTBAR,'Place2.3' & ',Holding:' & numtostr(Holding,0));
end
end
end
也就是说,我的想法是从C:\SystemSet.ini文件中读取BuySell变量的值来判断交易动作,现在我文件中BuySell变量的值为B2,运行都是正常的,输出如下:
2020/03/23 09:00:24  Place1,Holding:0
2020/03/23 09:00:24  Place2,Holding:0
2020/03/23 09:00:24  Place2.2,Holding:0
我现在的疑问是为什么到BUY(1,SS0,MARKET)这一步的时候没有任何反应?

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


加好友 发短信
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2017/9/6 21:45:50
  发帖心情 Post By:2020/3/31 12:14:16    Post IP:112.96.103.95[显示全部帖子]

1.最后一根K线的问题会导致下面这两句只执行上面这一句,下面那句不执行吗?
MSGOUT(ISLASTBAR,'Place2.2' & ',Holding:' & numtostr(Holding,0));
BUY(1,SS0,MARKET);

2.我测试的时候看到用后台函数能够得到正确的数据,为什么会导致信号闪烁呢?在什么情况下会信号闪烁?另外我只有标准版,没有专业版,所以用不了后台交易程序

3.你说这个逻辑错误不是错误来的,只是备用,里面的操作对我的程序不会有任何影响

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


加好友 发短信
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2017/9/6 21:45:50
  发帖心情 Post By:2020/3/31 14:21:37    Post IP:112.96.103.95[显示全部帖子]

我现在已经把运行模式改成固定间隔时间运行了,而且已经把所有后台函数都屏蔽掉了,还是一样不开仓

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


加好友 发短信
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2017/9/6 21:45:50
  发帖心情 Post By:2020/3/31 14:53:27    Post IP:112.96.103.95[显示全部帖子]

WARNING_DISABLE:4;
WARNING_DISABLE:9;
VARIABLE:BuySell='00';
BuySell:=GETINIFILESTRING('C:\SystemSet.ini','Gen','BuySell');
if BuySell='' then BuySell:='00';
SS0:=1;
HoldFlag:0,NODRAW,NOAXIS;//这个在没登录的时候都是0
if ISLASTBAR then begin
if (BuySell='B1' or BuySell='B2' or BuySell='B3') then begin 
MSGOUT(ISLASTBAR,'Place1' & ',Holding:' & numtostr(Holding,0));
if HoldFlag=0 then begin 
MSGOUT(ISLASTBAR,'Place2' & ',Holding:' & numtostr(Holding,0));
if HoldFlag<0 then begin 
MSGOUT(ISLASTBAR,'Place2.1' & ',Holding:' & numtostr(Holding,0));
SELLSHORT(1,0,MARKET);//做多前先平空
end
if HoldFlag=0 then begin
MSGOUT(ISLASTBAR,'Place2.2' & ',Holding:' & numtostr(Holding,0));
BUY(1,SS0,MARKET);
end
end
else if HoldFlag>0 then begin
MSGOUT(ISLASTBAR,'Place2.3' & ',Holding:' & numtostr(Holding,0));
end
end
end

 回到顶部