以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 后台如何控制一天内只开仓一次 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=159940) |
|
-- 作者:banzhuan -- 发布时间:2017/11/28 14:15:10 -- 后台如何控制一天内只开仓一次 具体的代码如下:
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 -- 发布时间:2017/11/28 15:06:00 -- 可以用全局变量对下单进行控制。 样例代码如下:
GLOBALVARIABLE:n=0; if 开多条件 and 持仓判断 and n=0 then begin tbuy.....; n:=1; end if time=closetime(0) then n:=0;//收盘的时候重置下全局变量
依照这个对你的代码进行修改就可以了。 |
|
-- 作者:FF -- 发布时间:2017/11/28 18:02:36 -- 不是当天只开一次仓。而是帐户上已有的股票不再买入。 对前几日买入的股票如何能无条件卖出? |
|
-- 作者:wenarm -- 发布时间:2017/11/28 23:52:50 -- 开仓条件中使用TBUYHOLDINGEX(\'\',\'\',2)=0作为判断依据,其函数返回账户的持仓数量。只有其品种仓位为0时,才能开仓 平仓条件中可以使用,TBUYHOLDINGEX(\'\',\'\',0)是当前股票可用持仓数量,在你需要平仓的条件下,进行相应的平仓指令的执行即可。
[此贴子已经被作者于2017/11/28 23:53:10编辑过]
|
|
-- 作者:FF -- 发布时间:2017/11/29 9:04:04 -- IF TBUYHOLDINGEX(\'\',\'\',0)>0 THEN BEGIN TSELL(1,TBUYHOLDINGEX(\'\',\'\',0 ),MKT); END 这是不是就能无条件地卖出昨天所买入的股票? |
|
-- 作者:FF -- 发布时间:2017/11/29 9:08:10 -- TBUYHOLDING(1)和TBUYHOLDINGEX(\'\',\'\',2)区别是啥? |
|
-- 作者:FireScript -- 发布时间:2017/11/29 9:15:29 -- 以下是引用FF在2017/11/29 9:08:10的发言:
TBUYHOLDING(1)和TBUYHOLDINGEX(\'\',\'\',2)区别是啥? 这2个在股票上才有差距,期货上值一样的。1表示可用持仓,2表示全部持仓。可有持仓+今持=全部持仓。 [此贴子已经被作者于2017/11/29 9:16:55编辑过]
|
|
-- 作者:FF -- 发布时间:2017/11/29 9:31:28 -- 对前几日买入的股票如何能无条件卖出?
|
|
-- 作者:FireScript -- 发布时间:2017/11/29 9:54:50 -- tsell的第二个参数写0 就是全平的意思。 |
|
-- 作者:FF -- 发布时间:2017/11/29 10:01:21 -- 可是不平是啥原因? |