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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 后台如何控制一天内只开仓一次

   

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


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

主题:后台如何控制一天内只开仓一次

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


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
后台如何控制一天内只开仓一次  发帖心情 Post By:2017/11/28 14:15:10    Post IP:180.169.30.6[只看该作者]

具体的代码如下:
 
variable:A=0;
TA01:=AMOUNT/VOL;
TA02:=VOL/HHV(VOL,30);
TA03:=(C-REF(C,1))/REF(C,1);
TA04:=(C-O)/O;
TA05:=IF(H-C>(C-O)/3,1,0);
TA06:=IF(TA02>0.6 AND TA04>0 AND TA05=1,1,0);
TA07:=VOL/REF(VOL,1);
TA08:=IF(REF(TA06,1)=1,1,0);
TA09:=IF(REF(TA04,1)<0 AND REF(TA03,2)>0.088,1,0);
TA10:=IF(REF(TA03,1)>0.09,1,0);
TA11:=IF(REF(TA06,1)=1,(REF(H,1)-REF(C,1))/REF(C,1),0);
TA12:=BARSLAST(TA06=1);//第1个点
TA13:=(TA12+1);
TA14:=REF(TA06,TA13);
TA15:=IF(TA14=1,TA13,TA12+REF(TA12,TA13)+1);//第2个点
TA16:=IF(TA06=1,TA15,TA12);
TA17:=IF(TA16<8,REF(VOL,TA16),0);
TA18:=IF(TA16<8,REF(C,TA16),0);
TA19:=IF(TA16<8,TA16,0);
TA20:=IF((REF(H,1)>REF(H,2) OR H=HHV(H,3)),1,0);

D:=IF(TA08=1 AND C>O AND TA03<0.09 AND TA20=1 AND CURRENTDATE=DATE,TA07,0);
E1:=IF(TA08=1 AND CURRENTDATE=DATE,TA08,0);
E2:=IF(TA08=1 AND C>O AND TA03>=0.09 AND TA20=1 AND CURRENTDATE=DATE,TA07*1.45,D);
DM:=STKLABEL;

//仓位及资金管理

//AA01:=STKINDI('','市场状态.TDC',0,6);
AA01:=Y4;

TB00:=TINSORT('预警板块','预警指标.E2' ,1);
TB01:=TCASH;//可用资金
TB02:=TASSET;//帐户市值
TB03:=TB02*(100-Y1)/100;
TB04:=TB03/Y2;
TB05:=INTPART(TB04/C);
TB06:=INTPART(Y2*0.8);
TB07:=IF(AA01>0.65 AND TB01>TB04,1,IF(AA01<=0.65 AND AA01>=0.15 AND TB01>TB03/2,1,IF(AA01<0.15 AND TB01>TB04*TB06,1,0)));

//开仓和平仓
TC01:=IF(E2>0,1,0);
TC02:=BARSLAST(TC01=1);
TC03:=HHVBARS(H,30);
TC04:=MIN(TC02,TC03);
TC05:=IF(C<O,1,0);
TC06:=SUM(TC05,TC04+2);
TC07:=TAVGENTERPRICEEX2('','',0 );
TC08:=(C-TC07)/TC07;
TC09:=REF(L,TC02);
TC10:=INTPART(TBUYHOLDINGEX('','',0 )/2);
//
TBUY(TB00<Y2 AND TA03<0.07 AND TB07=1 AND TB01>2*TB04 AND TBUYHOLDING(1)<TB05,TB05,MKT);
//
IF TB01>TB04 AND TB01<2*TB04 THEN BEGIN
TBUY(TB00=1 AND TA03<0.07 AND TB07=1 AND TBUYHOLDING(1)<TB05,TB05,MKT);
SLEEP(3000);
END
//
////////////
IF Y3=0 AND TBUYHOLDINGEX('','',0)>0 AND TC08>0.01 AND TB01<TB04 THEN BEGIN
TSELL(1,TBUYHOLDINGEX('','',0 ),MKT);
SLEEP(3000);
END
//
IF Y3=1 AND TBUYHOLDINGEX('','',2)>0 THEN BEGIN
TSELL(1,TBUYHOLDINGEX('','',0 ),MKT);
SLEEP(3000);
END
//
IF Y3=2 AND TC08<0 AND TBUYHOLDINGEX('','',2)>0 THEN BEGIN
TSELL(1,TBUYHOLDINGEX('','',0 ),MKT);
END
///////////////////////////////////
IF TC06>1 AND TBUYHOLDINGEX('','',0 )>0 THEN BEGIN
TSELL(1,TBUYHOLDINGEX('','',0 ),MKT);
END
//
IF TC02=1 AND TBUYHOLDINGEX('','',0 )>0 AND C<TC09 THEN BEGIN
TSELL(1,TBUYHOLDINGEX('','',0 ),MKT);
END
//////////////////////////////////
//止盈
IF TC08>0.04 AND A=0 AND TBUYHOLDINGEX('','',0 )>0 THEN BEGIN
TSELL(1,TC10,MKT);
A:=1;
SLEEP(5000);
END
//止损
IF TC08<-0.03 AND TC08>-0.05 AND TBUYHOLDINGEX('','',0 )>0 THEN BEGIN
TSELL(1,TC10,MKT);
SLEEP(3000);
END
IF TC08<-0.09 AND TBUYHOLDINGEX('','',0 )>0 THEN BEGIN
TSELL(1,TBUYHOLDINGEX( '','',0),MKT);
END

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2017/11/28 15:06:00    Post IP:180.169.30.6[只看该作者]

可以用全局变量对下单进行控制。

样例代码如下:

 

GLOBALVARIABLE:n=0;

if 开多条件 and 持仓判断  and n=0 then begin

    tbuy.....;

    n:=1;

end

if time=closetime(0) then n:=0;//收盘的时候重置下全局变量

 

依照这个对你的代码进行修改就可以了。



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FF
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:77 积分:0 威望:0 精华:0 注册:2017/10/15 22:53:33
  发帖心情 Post By:2017/11/28 18:02:36    Post IP:183.185.241.65[只看该作者]

不是当天只开一次仓。而是帐户上已有的股票不再买入。
对前几日买入的股票如何能无条件卖出?


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


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2017/11/28 23:52:50    Post IP:101.86.93.215[只看该作者]

开仓条件中使用TBUYHOLDINGEX('','',2)=0作为判断依据,其函数返回账户的持仓数量。只有其品种仓位为0时,才能开仓
平仓条件中可以使用,TBUYHOLDINGEX('','',0)是当前股票可用持仓数量,在你需要平仓的条件下,进行相应的平仓指令的执行即可。
[此贴子已经被作者于2017/11/28 23:53:10编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
FF
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:77 积分:0 威望:0 精华:0 注册:2017/10/15 22:53:33
  发帖心情 Post By:2017/11/29 9:04:04    Post IP:171.117.139.25[只看该作者]

IF TBUYHOLDINGEX('','',0)>0 THEN BEGIN
TSELL(1,TBUYHOLDINGEX('','',0 ),MKT);
END

这是不是就能无条件地卖出昨天所买入的股票?


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


加好友 发短信
等级:新手上路 帖子:77 积分:0 威望:0 精华:0 注册:2017/10/15 22:53:33
  发帖心情 Post By:2017/11/29 9:08:10    Post IP:171.117.139.25[只看该作者]

TBUYHOLDING(1)和TBUYHOLDINGEX('','',2)区别是啥?

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2017/11/29 9:15:29    Post IP:180.169.30.6[只看该作者]

以下是引用FF在2017/11/29 9:08:10的发言:
TBUYHOLDING(1)和TBUYHOLDINGEX('','',2)区别是啥?

这2个在股票上才有差距,期货上值一样的。1表示可用持仓,2表示全部持仓。可有持仓+今持=全部持仓。

[此贴子已经被作者于2017/11/29 9:16:55编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FF
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:77 积分:0 威望:0 精华:0 注册:2017/10/15 22:53:33
  发帖心情 Post By:2017/11/29 9:31:28    Post IP:171.117.139.25[只看该作者]

对前几日买入的股票如何能无条件卖出?
IF TBUYHOLDINGEX('','',0)>0 THEN BEGIN
TSELL(1,TBUYHOLDINGEX('','',0 ),MKT);
END

这是不是就能无条件地卖出昨天所买入的股票?

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2017/11/29 9:54:50    Post IP:180.169.30.6[只看该作者]

tsell的第二个参数写0 就是全平的意思。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FF
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:77 积分:0 威望:0 精华:0 注册:2017/10/15 22:53:33
  发帖心情 Post By:2017/11/29 10:01:21    Post IP:171.117.139.25[只看该作者]

可是不平是啥原因?


 回到顶部
总数 24 1 2 3 下一页