 
等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
|
//代码如下:
// VARIABLE: Trading:=0;
GLOBALVARIABLE: TradeTicks:=0;
AccStatus :=TACCOUNT(53);//1-交易账户有效状态
EXPLAIN(1, 'AccStatus = '&NUMTOSTREX(AccStatus,0,1),COLORWHITE);
//持仓和委托状态测试
hID := TACCOUNT(1);
EXPLAIN(1, 'hID = '&hID,COLORWHITE);
avHolding := THOLDING;
DEBUGFILE('D:\debugFile.txt','avHolding = %.0f',avHolding);
acHolding := THOLDING2;
DEBUGFILE('D:\debugFile.txt','acHolding = %.0f',acHolding);
EXPLAIN(1, 'avHolding = '&NUMTOSTREX(avHolding,0,1),COLORWHITE);
EXPLAIN(1, 'acHolding = '&NUMTOSTREX(acHolding,0,1),COLORWHITE);
HOLDCOUNT:=THOLDCOUNT(hID);
EXPLAIN(1, 'HOLDCOUNT = '&NUMTOSTREX(HOLDCOUNT,0,1), COLORWHITE);
TBHolding:=0;
TSHolding:=0;
FOR I = 1 TO HOLDCOUNT DO
BEGIN
//获取第I个序号的账户持仓品种代码
HoldLabel[I]:= THOLDINDEXLABEL(I,'');
// EXPLAIN(1, 'HoldLabel = '&HoldLabel[I],COLORWHITE);
//多仓数量 // TMyHold[1]:=-10;//+Buy,-Sell
TBHolding := TBHolding+TBUYHOLDINGEX('' ,HoldLabel[I],2);
//空仓数量
TSHolding := TSHolding+TSELLHOLDINGEX('' ,HoldLabel[I],2);
END
EXPLAIN(1, 'TBHolding = '&NUMTOSTREX(TBHolding,0,1),COLORWHITE);
DEBUGFILE('D:\debugFile.txt','TBHolding = %.0f',TBHolding);
EXPLAIN(1, 'TSHolding = '&NUMTOSTREX(TSHolding,0,1),COLORWHITE);
DEBUGFILE('D:\debugFile.txt','TSHolding = %.0f',TSHolding);
isPrvRemain := TISPRVREMAIN(0);
DEBUGFILE('D:\debugFile.txt','isPrvRemain = %.0f',isPrvRemain);
EXPLAIN(1,'isPrvRemain = '&NUMTOSTREX(isPrvRemain,0,1),COLORYELLOW);
isRemain := TISREMAIN(0);
DEBUGFILE('D:\debugFile.txt','isRemain = %.0f',isRemain);
EXPLAIN(1,'isRemain = '&NUMTOSTREX(isRemain,0,1),COLORYELLOW);
isRemainEX := TISREMAINEX(0,hID,'');
DEBUGFILE('D:\debugFile.txt','isRemainEX = %.0f',isRemainEX);
EXPLAIN(1,'isRemainEX = '&NUMTOSTREX(isRemainEX,0,1),COLORYELLOW);
RemainQTY := TREMAINQTY(0,hID,'');
DEBUGFILE('D:\debugFile.txt','RemainQTY = %.0f',RemainQTY);
EXPLAIN(1,'RemainQTY = '&NUMTOSTREX(RemainQTY,0,1),COLORYELLOW);
orderQueueSta := TORDERQUEUESTA(1);
DEBUGFILE('D:\debugFile.txt','orderQueueSta = %.0f',orderQueueSta);
EXPLAIN(1,'orderQueueSta = '&NUMTOSTREX(orderQueueSta,0,1),COLORYELLOW);
submit:=TSUBMIT(0);
DEBUGFILE('D:\debugFile.txt','submit = %.0f',submit);
EXPLAIN(1, 'submit = '&NUMTOSTREX(submit,0,1),COLORWHITE);
submitEX:=TSUBMITEX(0,hID,'');
DEBUGFILE('D:\debugFile.txt','submitEX = %.0f',submitEX);
EXPLAIN(1, 'submitEX = '&NUMTOSTREX(submitEX,0,1),COLORWHITE);
//end持仓和委托状态测试
EXPLAIN(1, '==============================', COLORMAGENTA);
EXPLAIN(1, 'TradeTicks = '&NUMTOSTREX(TradeTicks,0,1), COLORGRAY);
// Trading:=1;
IF 1 THEN
BEGIN
IF 1 THEN
BEGIN
EXPLAIN(1, '模拟交易加仓过程,\n主力合约逐步开空。', COLORMAGENTA);
// SPEAK(1,'模拟交易加仓过程,主力合约逐步开空。');
//自动交易操作
SP_B1P:= DYNAINFO2(28, 'QQ10007463');//表示取得SP买一价
EXPLAIN(1, 'SP_B1P = '&NUMTOSTREX(SP_B1P,4,1), COLORYELLOW);
SC_B1P:= DYNAINFO2(28, 'QQ10007458');//表示取得SC买一价
EXPLAIN(1, 'SC_B1P = '&NUMTOSTREX(SC_B1P,4,1), COLORYELLOW);
DEBUGFILE('D:\debugFile.txt','开空 TSHolding = %.0f',TSHolding);
TBUYSHORT(1,10,LMT,SP_B1P,0,hID,'QQ10007463');//BuyShortPut
TBUYSHORT(1,10,LMT,SC_B1P+0.0005,0,hID,'QQ10007458');//BuyShortCal
END
ELSE
BEGIN
EXPLAIN(1, '模拟交易减仓过程,\n主力合约逐步平空。', COLORCYAN);
// SPEAK(1,'模拟交易减仓过程,主力合约逐步平空。');
//自动交易操作
SP_S1P:= DYNAINFO2(34, 'QQ10007462');//表示取得SP卖一价
EXPLAIN(1, 'SP_S1P = '&NUMTOSTREX(SP_S1P,4,1), COLORYELLOW);
SC_S1P:= DYNAINFO2(34, 'QQ10007458');//表示取得SC卖一价
EXPLAIN(1, 'SC_S1P = '&NUMTOSTREX(SC_S1P,4,1), COLORYELLOW);
DEBUGFILE('D:\debugFile.txt','平空 TSHolding = %.0f',TSHolding);
TSELLSHORT(NOT(TSHolding<200),1,LMT,SP_S1P,0,hID,'QQ10007462');//SellShortPut
TSELLSHORT(NOT(TSHolding<200),1,LMT,SC_S1P-0.0005,0,hID,'QQ10007458');//SellShortCal
END
TradeTicks:=10;
END
ELSE
BEGIN
TradeTicks:=TradeTicks-1;
IF TradeTicks=5 THEN
BEGIN
TCANCELEX(1,0,'','');
EXPLAIN(1, 'Cancel All', COLORMAGENTA);
DEBUGFILE('D:\debugFile.txt','撤单 TradeTicks = %.0f',TradeTicks);
// SPEAK(1,'模拟交易未成交委托全部撤单。');
END
END
EXPLAIN(1, 'TradeTicks = '&NUMTOSTREX(TradeTicks,0,1), COLORMAGENTA);
// SLEEP(10);//!!!注意:SLEEP是针对整个金字塔的,慎用!!!
|
|