【编写技巧】:‘虚拟成交量’指标改写 (文华财经)

投资者咨询:【编写技巧】:‘虚拟成交量’指标改写 (文华财经)
来源:文华财经  日期:2018-8-13 15:00
 通达信虚拟成交量指标的原代码:

TOTAL:=IF(PERIOD=1,5,IF(PERIOD=2,15,IF(PERIOD=3,30,IF(PERIOD=4,60,IF(PERIOD=5,TOTALFZNUM,1)))));

MTIME:=MOD(FROMOPEN,TOTAL);

CTIME:=IF(MTIME<0.5,TOTAL,MTIME);

VVOL:IF((CURRBARSCOUNT=1 AND DYNAINFO(8)>1),VOL*(TOTAL+3)/(CTIME+3),DRAWNULL),NODRAW;

STICKLINE((CURRBARSCOUNT=1 AND DYNAINFO(8)>1),VVOL,0,-1,-1),COLOR00C0C0;

VOLUME:VOL,VOLSTICK;

 

――――――――


该指标中FROMOPEN函数无法直接改写,需要根据加载的合约,针对修改。


主要分成几种情况:


1.股票、股指合约


2.有夜盘23点收盘:螺纹 热卷 燃油 沥青 橡胶


3.有夜盘凌晨1点收盘: 铜 铝 锌 铅 镍 锡


4.有夜盘凌晨2点半收盘: 金 银 原油


5.有夜盘23点30收盘:剩下的所有有夜盘的合约


6.无夜盘商品期货合约


7.中金所 五债 十债


PS:该指标需要在盘中5分钟、15分钟、30分钟、1小时周期加载

                   
技术人员回复
日期:2018-8-13 15:00

 1.股票、股指合约

 

CURRBARSCOUNT:=DATACOUNT-BARPOS;

N:=BARSLAST(DATE<>REF(DATE,1))+1;

Q:MOD(TIME,100),NODRAW;

VV:=SUM(V,N);

FROMOPEN:=IF(HOUR<12,60*(HOUR-9)-30+Q,120+60*(HOUR-13)+Q)+1;

TOTAL:IF(PERIOD=3,5,IF(PERIOD=5,15,IF(PERIOD=6,30,IF(PERIOD=7,60,IF(PERIOD=8,240,IF(PERIOD=4,10,1)))))),NODRAW;

MTIME:MOD(FROMOPEN,TOTAL),NODRAW;

CTIME:IF(MTIME<0.5,TOTAL,MTIME),NODRAW;

A:=TIME>=930&&TIME<=1130||TIME>=1300&&TIME<=1500;

VVOL:IF((CURRBARSCOUNT=0 AND VV>1),VOL/100*(TOTAL+3)/(CTIME+3),NULL),NODRAW;

STICKLINE((CURRBARSCOUNT=0 && A ),VVOL,0,COLOR00C0C0,1);

VOLUME:VOL/100,VOLSTICK;

                   
技术人员回复
日期:2018-8-13 15:01
 2.有夜盘23点收盘:螺纹 热卷 燃油 沥青 橡胶

CURRBARSCOUNT:=DATACOUNT-BARPOS;
N:=BARSLAST(DATE<>REF(DATE,1))+1;
VV:=SUM(V,N);
Q:MOD(TIME,100),NODRAW;
FROMOPEN:IF(HOUR>=21,60*(HOUR-21)+Q,IF(TIME<=1015,120+60*(HOUR-9)+Q,
IF(TIME>=1030&&TIME<=1130,195+60*(HOUR-10)-30+Q,255+60*(HOUR-13)-30+Q)))+1,NODRAW;
TOTAL:IF(PERIOD=3,5,IF(PERIOD=5,15,IF(PERIOD=6,30,IF(PERIOD=7,60,IF(PERIOD=8,240,IF(PERIOD=4,10,NULL)))))),NODRAW;
MTIME:MOD(FROMOPEN,TOTAL),NODRAW;
CTIME:=IF(MTIME<0.5,TOTAL,MTIME),NODRAW;
A:=TIME>=900&&TIME<=1015||TIME>=1015&&TIME<=1130||TIME>=1330&&TIME<=1500||TIME>=2100&&TIME<=2300;
VVOL:IF((CURRBARSCOUNT=0 ),VOL*(TOTAL+3)/(CTIME+3),NULL),NODRAW;
STICKLINE((CURRBARSCOUNT=0 &&A),VVOL,0,COLOR00C0C0,1);
VOLUME:VOL,VOLSTICK; 
   


                   
技术人员回复
日期:2018-8-13 15:03
3.有夜盘凌晨1点收盘: 铜 铝 锌 铅 镍 锡

Q:MOD(TIME,100),NODRAW;

CURRBARSCOUNT:=DATACOUNT-BARPOS;

N:=BARSLAST(DATE<>REF(DATE,1))+1;

VV:=SUM(V,N);

FROMOPEN:IF(HOUR>=21,60*(HOUR-21)+Q,IF(TIME<800,180+MINUTE+60*HOUR,

IF(TIME<=1015&&TIME>=900,240+60*(HOUR-9)+Q,

IF(TIME>=1030&&TIME<=1130,315+60*(HOUR-10)-30+Q,495+60*(HOUR-13)-30+Q))))+1,NODRAW;

TOTAL:IF(PERIOD=3,5,IF(PERIOD=5,15,IF(PERIOD=6,30,IF(PERIOD=7,60,IF(PERIOD=8,240,IF(PERIOD=4,10,NULL)))))),NODRAW;

MTIME:MOD(FROMOPEN,TOTAL),NODRAW;

CTIME:=IF(MTIME<0.5,TOTAL,MTIME),NODRAW;

VVOL:IF((CURRBARSCOUNT=0 ),VOL*(TOTAL+3)/(CTIME+3),NULL),NODRAW;

A:=TIME>=900&&TIME<=1015||TIME>=1015&&TIME<=1130||TIME>=1330&&TIME<=1500||TIME>=2100||TIME<=100;

STICKLINE((CURRBARSCOUNT=0 &&A ),VVOL,0,COLOR00C0C0,1);

VOLUME:VOL,VOLSTICK; 

   
技术人员回复
日期:2018-8-13 15:04
4.有夜盘凌晨2点半收盘: 金 银 原油

CURRBARSCOUNT:=DATACOUNT-BARPOS;

N:=BARSLAST(DATE<>REF(DATE,1))+1;

VV:=SUM(V,N);

Q:MOD(TIME,100),NODRAW;

FROMOPEN:IF(HOUR>=21,60*(HOUR-21)+Q,IF(TIME<800,180+Q+60*HOUR,

IF(TIME<=1015&&TIME>=900,240+60*(HOUR-9)+Q,

IF(TIME>=1030&&TIME<=1130,315+60*(HOUR-10)-30+Q,495+60*(HOUR-13)-30+Q))))+1,NODRAW;

TOTAL:IF(PERIOD=3,5,IF(PERIOD=5,15,IF(PERIOD=6,30,IF(PERIOD=7,60,IF(PERIOD=8,240,IF(PERIOD=4,10,NULL)))))),NODRAW;

MTIME:MOD(FROMOPEN,TOTAL),NODRAW;

CTIME:=IF(MTIME<0.5,TOTAL,MTIME),NODRAW;

VVOL:IF((CURRBARSCOUNT=0 ),VOL*(TOTAL+3)/(CTIME+3),NULL),NODRAW;

A:=TIME>=900&&TIME<=1015||TIME>=1015&&TIME<=1130||TIME>=1330&&TIME<=1500||TIME>=2100||TIME<=230;

STICKLINE((CURRBARSCOUNT=0 &&A ),VVOL,0,COLOR00C0C0,1);

VOLUME:VOL,VOLSTICK; 

             
技术人员回复
日期:2018-8-13 15:04
5.有夜盘23点30收盘:剩下的所有有夜盘的合约

CURRBARSCOUNT:=DATACOUNT-BARPOS;

N:=BARSLAST(DATE<>REF(DATE,1))+1;

VV:=SUM(V,N);

Q:MOD(TIME,100),NODRAW;

FROMOPEN:IF(HOUR>=21,60*(HOUR-21)+Q,

IF(TIME<=1015,150+60*(HOUR-9)+Q,IF(TIME>=1030&&TIME<=1130,

225+60*(HOUR-10)-30+Q,285+60*(HOUR-13)-30+Q)))+1,NODRAW;

TOTAL:IF(PERIOD=3,5,IF(PERIOD=5,15,IF(PERIOD=6,30,IF(PERIOD=7,60,IF(PERIOD=8,240,IF(PERIOD=4,10,NULL)))))),NODRAW;

MTIME:MOD(FROMOPEN,TOTAL),NODRAW;

CTIME:=IF(MTIME<0.5,TOTAL,MTIME),NODRAW;

VVOL:IF((CURRBARSCOUNT=0 ),VOL*(TOTAL+3)/(CTIME+3),NULL),NODRAW;

A:=TIME>=900&&TIME<=1015||TIME>=1015&&TIME<=1130||TIME>=1330&&TIME<=1500||TIME>=2100&&TIME<=2330;

STICKLINE((CURRBARSCOUNT=0 &&A ),VVOL,0,COLOR00C0C0,1);

VOLUME:VOL,VOLSTICK; 

           
技术人员回复
日期:2018-8-13 15:06
 6.无夜盘商品期货合约

Q:MOD(TIME,100),NODRAW;

CURRBARSCOUNT:=DATACOUNT-BARPOS;

N:=BARSLAST(DATE<>REF(DATE,1))+1;

VV:=SUM(V,N);

FROMOPEN:IF(TIME<=1015,60*(HOUR-9)+Q,IF(TIME>=1030&&TIME<=1130,

75+60*(HOUR-10)-30+Q,135+60*(HOUR-13)-30+Q))+1,NODRAW;

TOTAL:IF(PERIOD=3,5,IF(PERIOD=5,15,IF(PERIOD=6,30,IF(PERIOD=7,60,IF(PERIOD=8,240,IF(PERIOD=4,10,NULL)))))),NODRAW;

MTIME:MOD(FROMOPEN,TOTAL),NODRAW;

CTIME:IF(MTIME<0.5,TOTAL,MTIME),NODRAW;

VVOL:IF((CURRBARSCOUNT=0 ),VOL*(TOTAL+3)/(CTIME+3),NULL),NODRAW;

A:=TIME>=900&&TIME<=1015||TIME>=1015&&TIME<=1130||TIME>=1330&&TIME<=1500;

STICKLINE((CURRBARSCOUNT=0 &&A ),VVOL,0,COLOR00C0C0,1);

VOLUME:VOL,VOLSTICK; 

           
技术人员回复
日期:2018-8-13 15:07
7.中金所 五债 十债

Q:MOD(TIME,100),NODRAW;

CURRBARSCOUNT:=DATACOUNT-BARPOS;

N:=BARSLAST(DATE<>REF(DATE,1))+1;

VV:=SUM(V,N);

FROMOPEN:IF(TIME<=1200,60*(HOUR-9)+Q-15,135+60*(HOUR-13)+Q)+1,NODRAW;

TOTAL:IF(PERIOD=3,5,IF(PERIOD=5,15,IF(PERIOD=6,30,IF(PERIOD=7,60,IF(PERIOD=8,240,IF(PERIOD=4,10,NULL)))))),NODRAW;

MTIME:MOD(FROMOPEN,TOTAL),NODRAW;

CTIME:=IF(MTIME<0.5,TOTAL,MTIME),NODRAW;

VVOL:IF((CURRBARSCOUNT=0 ),VOL*(TOTAL+3)/(CTIME+3),NULL),NODRAW;

A:=TIME>=915&&TIME<=1130||TIME>=1300&&TIME<=1515;

STICKLINE((CURRBARSCOUNT=0 &&A),VVOL,0,COLOR00C0C0,1);

VOLUME:VOL,VOLSTICK; 

   
技术人员回复
日期:2018-8-13 15:26
 请不要在此跟帖!
技术人员回复
日期:2019-8-12 7:11
  请不要在此跟帖!