以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  这个语句是否正确?  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=100317)

--  作者:NatalieGuan
--  发布时间:2016/7/7 14:01:08
--  这个语句是否正确?

tbuy(1,1,lmt,stkindi(HY2,\'Formula3.bprice\',0,0)+0.2,0,AccountID,HY2); 
tSell(TISPRVREMAIN(1)=0,1,mkt,0,0,AccountID,HY1);

若HY2开多的委托单交易成功,则平掉HY1

--  作者:yukizzc
--  发布时间:2016/7/7 14:04:52
--  

这样不行的,你如果米有tuby时候,上一笔委托也是成功的,那么直接就执行tsell了

你或者取判断hy2是否有持仓,如果有持仓了,那么就执行tsell


--  作者:NatalieGuan
--  发布时间:2016/7/7 14:10:10
--  
那么我如何表示持仓比上一次执行多了一手?
类似于
NextBuyHold:tbuyholdingex(AccountID,HY2,1);
a:=NextBuyHold;
If a<NextBuyHold then begin
tsell
end

--  作者:yukizzc
--  发布时间:2016/7/7 14:36:48
--  

if  tholding>EXTGBDATA( \'num\') then

 

利用全局变量记录num来和tholding走判断


--  作者:NatalieGuan
--  发布时间:2016/7/8 9:51:13
--  
可是代码效果不如预期

相关行如下:
NextBuyHold:tbuyholdingex(AccountID,HY2,1);
EXTGBDATASET(\'Num\',NEXTBUYHOLD);
tbuy(1,1,lmt,stkindi(HY2,\'Formula3.bprice\',0,0)+0.2,0,AccountID,HY2);
tSell(NEXTBUYHOLD>EXTGBDATA(\'Num\'),1,mkt,0,0,AccountID,HY1);
TCANCELEX(NEXTBUYHOLD=EXTGBDATA(\'Num\'),1,AccountID,HY2);
这样的情况下,运行时会不停地开仓和撤单(但是最终成交的数量大于0),不会平仓

--  作者:yukizzc
--  发布时间:2016/7/8 10:08:19
--  

EXTGBDATASET(\'Num\',NEXTBUYHOLD);

这句话只能执行一次,你再用一个全局变量去控制执行一次


--  作者:NatalieGuan
--  发布时间:2016/7/8 10:12:49
--  
不好意思,我好像没看懂你的意思?
--  作者:yukizzc
--  发布时间:2016/7/8 10:15:27
--  

021-20339087

电话联系下我


--  作者:NatalieGuan
--  发布时间:2016/7/8 10:44:22
--  
 NextBuyHold:tbuyholdingex(AccountID,HY2,1);

if... 
  tbuy(1,1,lmt,stkindi(HY2,\'Formula3.bprice\',0,0)+0.2,0,AccountID,HY2); 
  EXTGBDATASET(\'Num\',0);
  tSell(EXTGBDATA(\'Num\')=0 and TISPRVREMAIN(1)=0,1,mkt,0,0,AccountID,HY1);
  TCANCELEX(EXTGBDATA(\'Num\')=0 and TISPRVREMAIN(1),1,AccountID,HY2);
end

这样的运行结果是若HY1持仓为10手,则这10手很快就平仓,但是HY2开仓成功的数量很少,远没有10手

--  作者:NatalieGuan
--  发布时间:2016/7/8 10:50:19
--  
需求是若HY2开多成功1手则平仓1手HY1,若未成功则撤单