定義的全局變量只能取值1或0,但DEBUGFILE顯示值成了-1,請(qǐng)問什么原因務(wù)請(qǐng)回復(fù)! [金字塔]
- 咨詢內(nèi)容:
在后臺(tái)程式化(固定時(shí)間間隔,5秒輪詢一次)公式語句中定義了兩個(gè)變量:
GLOBALVARIABLE:IFPKKD=1;
GLOBALVARIABLE:IFPDKK=1;并設(shè)定,交易指令發(fā)生以后,上面對(duì)應(yīng)的變量取值為0。也就是說,上面兩個(gè)全局變量按道理取值只能是1或0,但是DEBUGFILE輸出的日志記錄顯示這兩個(gè)變量是-1(實(shí)際情況是有時(shí)候?yàn)?或0,大部情況是-1),請(qǐng)問這是為什么?務(wù)請(qǐng)金字塔相關(guān)人員有個(gè)準(zhǔn)確回復(fù)!
下面是全部公式語句:
//RUNMODE:0;
INPUT:offset(2,1,40,1);
INPUT:initialasset(10000000,1000000,100000000,1000000);
GLOBALVARIABLE:AccountID='807697'; //指定交易賬戶ACCOUNTONLINE:=TACCOUNT2(3,'807697')>0;
IF ACCOUNTONLINE=0 THEN DEBUGFILE('D:\HLPYIF_OFFLINE.TXT','807697不在線.0f',0);
IF ACCOUNTONLINE=0 THEN EXIT; //當(dāng)帳戶不在線時(shí)停止執(zhí)行后面語句TRADETIME:=(DYNAINFO(207)>091502) AND (DYNAINFO(207)<151458); //限定交易時(shí)間內(nèi)交易
IF TRADETIME<>1 THEN EXIT;//GLOBALVARIABLE:IFBUYHOLDHY=1;
//GLOBALVARIABLE:IFSELLHOLDHY=1;
GLOBALVARIABLE:IFPKKD=1;
GLOBALVARIABLE:IFPDKK=1;MULTIPIF:=300;
LOTSIF:=INTPART(initialasset/CALLSTOCK('IF00',vtCLOSE,5,-1)/MULTIPIF/9);
//IF (DYNAINFO(207)>=091500 AND DYNAINFO(207)<091600) OR (DYNAINFO(207)>=101500 AND DYNAINFO(207)<101600) OR (DYNAINFO(207)>=111500 AND DYNAINFO(207)<111600) OR (DYNAINFO(207)>=131500 AND DYNAINFO(207)<131600) OR (DYNAINFO(207)>=141500 AND DYNAINFO(207)<141600) THEN EXIT;
//錯(cuò)開換月時(shí)間//IF交易指令
HPPOINTIF:=HHV(CALLSTOCK('IF00',vtHIGH,5,-offset),6);//高點(diǎn)
LPPOINTIF:=LLV(CALLSTOCK('IF00',vtLOW,5,-offset),6);//低點(diǎn)
PrebuyholdIF:=TBUYHOLDINGEX(AccountID,'IF00',1);//持有當(dāng)前連續(xù)合約的多倉數(shù)
PresellholdIF:=TSELLHOLDINGEX(AccountID,'IF00',1); //持有當(dāng)前連續(xù)合約的空倉數(shù)
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF外HPPOINTIF=%.2f',HPPOINTIF);
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF外LPPOINTIF=%.2f',LPPOINTIF);
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF外IFPKKD=%.0f',IFPKKD);
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF外IFPDKK=%.0f',IFPDKK);
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF外CALLSTOCKIF00VTHIGH=%.2f',CALLSTOCK('IF00',vtHIGH,5,0));
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF外CALLSTOCKIF00VTLOW=%.2f',CALLSTOCK('IF00',vtLOW,5,0));
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF外DYNAINFO(207)%.5f',DYNAINFO(207));//IF交易觸發(fā)條件
HBIF:=CALLSTOCK('IF00',vtHIGH,5,0)>HPPOINTIF;
LBIF:=CALLSTOCK('IF00',vtLOW,5,0)<LPPOINTIF;
//IF開始交易
IF HBIF AND IFPKKD=1 THEN //平空開多
BEGIN
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF內(nèi)CALLSTOCKIF00VTHIGH=%.2f',CALLSTOCK('IF00',vtHIGH,5,0));
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF內(nèi)HPPOINTIF=%.2f',HPPOINTIF);
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF內(nèi)LPPOINTIF=%.2f',LPPOINTIF);
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF內(nèi)IFPKKD=%.0f',IFPKKD);
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF內(nèi)IFPDKK=%.0f',IFPDKK);
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF內(nèi)DYNAINFO(207)%.5f',DYNAINFO(207));
SENDMAIL(1,'yangdian@simpleasset.com;ztb2@hotmail.com;anniesun@hotmail.com','聯(lián)想臺(tái)式機(jī)金字塔公式HLPYIF公式語句定義的IF交易指令預(yù)警郵件','預(yù)警時(shí)間:'&NUMTOSTR(DYNAINFO(207),0)&' 品種:IF'&' 交易動(dòng)作:平空開多'&' 預(yù)警價(jià)格:'&NUMTOSTR(CALLSTOCK('IF00',vtHIGH,5,0),2));
IFPKKD:=0;//已發(fā)指令記錄,防固定輪詢追單
IF PresellholdIF>0 THEN
TSELLSHORT(1,PresellholdIF,MKT,0,0,AccountID,'IF00'); //平空,平空手?jǐn)?shù)取此前持有的空單手?jǐn)?shù)
IF PrebuyholdIF=0 THEN
TBUY(1,LOTSIF,MKT,0,0,AccountID,'IF00');//開多,開多手?jǐn)?shù)根據(jù)最新價(jià)格計(jì)算
END
IF LBIF AND IFPDKK=1 THEN //平多開空,第二個(gè)條件防固定輪詢追單
BEGIN
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF內(nèi)CALLSTOCKIF00VTLOW=%.2f',CALLSTOCK('IF00',vtLOW,5,0));
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF內(nèi)HPPOINTIF=%.2f',HPPOINTIF);
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF內(nèi)LPPOINTIF=%.2f',LPPOINTIF);
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF內(nèi)IFPKKD=%.0f',IFPKKD);
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF內(nèi)IFPDKK=%.0f',IFPDKK);
DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF內(nèi)DYNAINFO(207)%.5f',DYNAINFO(207));
SENDMAIL(1,'yangdian@simpleasset.com;ztb2@hotmail.com;anniesun@hotmail.com','聯(lián)想臺(tái)式機(jī)金字塔公式HLPYIF公式語句定義的IF交易指令預(yù)警郵件','預(yù)警時(shí)間:'&NUMTOSTR(DYNAINFO(207),0)&' 品種:IF'&' 交易動(dòng)作:平多開空'&' 預(yù)警價(jià)格:'&NUMTOSTR(CALLSTOCK('IF00',vtLOW,5,0),2));
IFPDKK:=0;
IF PrebuyholdIF>0 THEN
TSELL(1,PrebuyholdIF,MKT,0,0,AccountID,'IF00'); //平多,平多手?jǐn)?shù)取此前持有的多單手?jǐn)?shù)
IF PresellholdIF=0 THEN
TBUYSHORT(1,LOTSIF,MKT,0,0,AccountID,'IF00'); //開空,開空手?jǐn)?shù)根據(jù)最新凈資產(chǎn)和價(jià)格計(jì)算
END
/////////////////////////////////IF公式段結(jié)束///////////////////////////////////////////////// - 金字塔客服:
補(bǔ)充:使用的是序列模式
- 用戶回復(fù):
明日開盤后測(cè)試
- 網(wǎng)友回復(fù):
后臺(tái)怎么用 GLOBALVARIABLE?這個(gè)函數(shù)是圖表使用的。
后臺(tái)使用EXTGBDATASET EXTGBDATA
- 網(wǎng)友回復(fù):
以下是引用RogarZ在2013/6/24 16:13:39的發(fā)言:
后臺(tái)怎么用 GLOBALVARIABLE?這個(gè)函數(shù)是圖表使用的。
后臺(tái)使用EXTGBDATASET EXTGBDATA
EXTGBDATASET EXTGBDATA全局變量將讀變量值存在硬盤,類似于注冊(cè)表變量,關(guān)機(jī)之后變量值仍然存在,如果不同公式用同一變量名,將發(fā)生紊亂。但沒有在你們的任何資料上看到過后臺(tái)只能用EXTGBDATASET EXTGBDATA,并且參加過數(shù)次你們?cè)谏虾5呐嘤?xùn),專門與培訓(xùn)老師作過交流,專門請(qǐng)教過培訓(xùn)老師GLOBALVARIBLE的用法,專門請(qǐng)教過GLOBALVARIBLE用于后臺(tái)程序化交易的問題。如果真的后臺(tái)不能用GLOBALVARIBLE,請(qǐng)金字塔方面給出一個(gè)權(quán)威的答復(fù)或說明,并建議在手冊(cè)和軟件自帶的函數(shù)說明里明確。
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 1145508240 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容