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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 模拟帐号无法开仓问题

   

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


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

主题:模拟帐号无法开仓问题

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


加好友 发短信
等级:论坛游侠 帖子:152 积分:0 威望:0 精华:0 注册:2015/3/2 13:11:05
模拟帐号无法开仓问题  发帖心情 Post By:2015/3/3 14:37:06    Post IP:59.57.153.64[只看该作者]

启动以后,我输入的参数满足条件,也开了仓了,但模拟帐号中没有开单记录,消息框也有输出开仓,不过文件写入也有问题,没有输出开仓,很奇怪。

请帮忙看一下。

INPUT:Buy_START(9330,1,15000,1),Buy_STEP(30,1,500,1),Buy_END(9390,1,15000,1),Buy_SS(1,1,6,1);

INPUT:MAX_hold(10,1,30,1);
INPUT:NMIN(2,1,100,1);//;,X(20,1,100,1),SS(1,1,10000,1);

 

VARIABLE:Num_p0=(Buy_END-Buy_START)/Buy_STEP+1;
VARIABLE:SNum_p0=(Sell_END-Sell_START)/Sell_STEP+1;
VARIABLE:I_tmp=0,S_tmp=0,S_tmp1=0;
VARIABLE:Buy_point[Num_p0]=0;//买点
VARIABLE:B_NUM=0;//买的总量的标记
VARIABLE:Is_debug=1,Is_log=1;


开仓时间:=TIME>085300 AND TIME<150000-NMIN*100;//开仓时间:=TIME>OPENTIME(1)-200 AND TIME<150000-NMIN*100;
平仓时间:=TIME>=150000-NMIN*100;
Ttmp:=TIME;
Ttmp1:=150000-NMIN*100;
{NMIN为参数,CLOSETIME(0)-NMIN*100表示 收盘时间-提前N分钟 N由NMIN控制}
开多平空条件:=开仓时间;
开空平多条件:=开仓时间;

FOR I_tmp=1 TO Num_p0 DO BEGIN
 IF Buy_point[I_tmp]<=0 THEN
Buy_point[I_tmp]:=Buy_START+(I_tmp-1)*Buy_STEP;

END;

FOR I_tmp=1 TO Num_p0 DO BEGIN

 IF B_flag[I_tmp]<=0 AND B_NUM<MAX_hold and ABS(holding)<MAX_hold THEN BEGIN


 IF 开空平多条件 AND OPEN>=Buy_point[I_tmp]  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,MARKET);//LIMITR,OPEN);//MARKET);//limitr,X周期低点);
      B_NUM:=B_NUM+1;
         IF Is_debug=1 THEN  MSGOUT(TRUE,'持仓补仓数:'&numtostr(tmpppp,0)&',成交价:'&numtostr(ENTERPRICE,0)&',持仓:'&numtostr(HOLDING,0)&',浮动盈亏:'&numtostr(OPENPROFIT,0)&',总买单数:'&numtostr(B_NUM,0)&',资产:'&numtostr(ASSET,0));
    IF Is_log=1 THEN DEBUGFILE('C:\myTEST.TXT','持仓补仓数:'&numtostr(tmpppp,0)&',成交价:'&numtostr(ENTERPRICE,0)&',持仓:'&numtostr(HOLDING,0)&',浮动盈亏:'&numtostr(OPENPROFIT,0)&',总买单数:'&numtostr(B_NUM,0)&',资产:%.0f',asset); 

   END

END


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


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

模拟环境下测试没有问题,实盘中用模拟帐号不知为什么开不了仓?

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


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

开仓不开仓和消息框没关系,你要看图表交易界面,那里有触发,才说明是开仓



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

客户服务部

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

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

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


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

在今天的实盘中,我这个初始参数是在开空的区间,消息框输出也开仓了,但不知为何开不了仓?

我的buyshort的条件是1,只要价格满足我的条件就触发买。消息框能输出也说明buyshort执行了,但为何模拟帐号开不了仓。

图表的触发是什么原理,可否解释一下?


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


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

你太想当然,没触发就是开仓条件不成立,你好好的看看开仓条件的结果,而不是用你的消息输出来判断


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

客户服务部

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

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

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


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

老师,我实在不明白,如果buyshort不执行,那怎么会到MSGOUT这句话呢?

这句话是我用来调试看有没有执行buyshort的。

您说的开仓条件是指前面的if里面的条件,还是别的触发条件?

开空:buyshort(1,b_tmpp,MARKET);//LIMITR,OPEN);//MARKET);//limitr,X周期低点);
      B_NUM:=B_NUM+1;
         IF Is_debug=1 THEN  MSGOUT(TRUE,'持仓补仓数:'&numtostr(tmpppp,0)&',成交价:'&numtostr(ENTERPRICE,0)&',持仓:'&numtostr(HOLDING,0)&',浮动盈亏:'&numtostr(OPENPROFIT,0)&',总买单数:'&numtostr(B_NUM,0)&',资产:'&numtostr(ASSET,0));


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


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

调试思路:在你认为应该出交易信号的k线图上,把下单条件输出一遍,看看下单条件是否满足

[此贴子已经被作者于2015/3/3 15:01:53编辑过]


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

客户服务部

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

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

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


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

你给我的公式无法编译,给你调试思路,是最有效的结果


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

客户服务部

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

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

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


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

不好意思,这个是我没贴全的问题?这个可以编译了,帮忙看一下。谢谢

INPUT:Buy_START(9330,1,15000,1),Buy_STEP(30,1,500,1),Buy_END(9390,1,15000,1),Buy_SS(1,1,6,1);

INPUT:MAX_hold(10,1,30,1);
INPUT:NMIN(2,1,100,1);//;,X(20,1,100,1),SS(1,1,10000,1);

VARIABLE:Num_p0=(Buy_END-Buy_START)/Buy_STEP+1;
VARIABLE:B_flag[Num_p0]=00;//?òμ?±ê??
VARIABLE:Num_p0=(Buy_END-Buy_START)/Buy_STEP+1;
//VARIABLE:SNum_p0=(Sell_END-Sell_START)/Sell_STEP+1;
VARIABLE:I_tmp=0,S_tmp=0,S_tmp1=0;
VARIABLE:Buy_point[Num_p0]=0;//?òμ?
VARIABLE:B_NUM=0;//?òμ?×üá?μ?±ê??
VARIABLE:Is_debug=1,Is_log=1;


?a2?ê±??:=TIME>085300 AND TIME<150000-NMIN*100;//?a2?ê±??:=TIME>OPENTIME(1)-200 AND TIME<150000-NMIN*100;
??2?ê±??:=TIME>=150000-NMIN*100;
Ttmp:=TIME;
Ttmp1:=150000-NMIN*100;
{NMIN?a2?êy£?CLOSETIME(0)-NMIN*100±íê? ê??ìê±??-ìá?°N·??ó NóéNMIN????}
?a?à????ì??t:=?a2?ê±??;
?a?????àì??t:=?a2?ê±??;

FOR I_tmp=1 TO Num_p0 DO BEGIN
 IF Buy_point[I_tmp]<=0 THEN
Buy_point[I_tmp]:=Buy_START+(I_tmp-1)*Buy_STEP;

END;

FOR I_tmp=1 TO Num_p0 DO BEGIN

 IF B_flag[I_tmp]<=0 AND B_NUM<MAX_hold and ABS(holding)<MAX_hold THEN BEGIN


 IF ?a?????àì??t AND OPEN>=Buy_point[I_tmp]  THEN BEGIN
 
  b_tmpp:=Buy_SS;
 //?aμ¥á?2??ü3?1y×?′ó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;
 
 //?a??
    IF b_tmpp>0 AND b_tmpp<ABS(MAX_hold) THEN BEGIN 
          ?a??:buyshort(1,b_tmpp,MARKET);//LIMITR,OPEN);//MARKET);//limitr,X?ü?úμíμ?);
      B_NUM:=B_NUM+1;
         IF Is_debug=1 THEN  MSGOUT(TRUE,'3?2?212?êy:'&numtostr(b_tmpp,0)&',3é????:'&numtostr(ENTERPRICE,0)&',3?2?:'&numtostr(HOLDING,0)&',???ˉóˉ?÷:'&numtostr(OPENPROFIT,0)&',×ü?òμ¥êy:'&numtostr(B_NUM,0)&',×ê2ú:'&numtostr(ASSET,0));
    IF Is_log=1 THEN DEBUGFILE('C:\myTEST.TXT','3?2?212?êy:'&numtostr(b_tmpp,0)&',3é????:'&numtostr(ENTERPRICE,0)&',3?2?:'&numtostr(HOLDING,0)&',???ˉóˉ?÷:'&numtostr(OPENPROFIT,0)&',×ü?òμ¥êy:'&numtostr(B_NUM,0)&',×ê2ú:%.0f',asset); 

   END
end
end
END


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


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

不知为何中文都成乱码了


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