您現在的位置:程序化交易>> 期貨公式>> 金字塔等>> 金字塔知識>>正文內容

定義的全局變量只能取值1或0,但DEBUGFILE顯示值成了-1,請問什么原因務請回復! [金字塔]

  • 咨詢內容:

    在后臺程式化(固定時間間隔,5秒輪詢一次)公式語句中定義了兩個變量:

    GLOBALVARIABLE:IFPKKD=1;
    GLOBALVARIABLE:IFPDKK=1;

    并設定,交易指令發生以后,上面對應的變量取值為0。也就是說,上面兩個全局變量按道理取值只能是1或0,但是DEBUGFILE輸出的日志記錄顯示這兩個變量是-1(實際情況是有時候為1或0,大部情況是-1),請問這是為什么?務請金字塔相關人員有個準確回復!

    下面是全部公式語句:

     


    //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;  //當帳戶不在線時停止執行后面語句

    TRADETIME:=(DYNAINFO(207)>091502) AND (DYNAINFO(207)<151458); //限定交易時間內交易
    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;
    //錯開換月時間

    //IF交易指令
    HPPOINTIF:=HHV(CALLSTOCK('IF00',vtHIGH,5,-offset),6);//高點
    LPPOINTIF:=LLV(CALLSTOCK('IF00',vtLOW,5,-offset),6);//低點
    PrebuyholdIF:=TBUYHOLDINGEX(AccountID,'IF00',1);//持有當前連續合約的多倉數
    PresellholdIF:=TSELLHOLDINGEX(AccountID,'IF00',1); //持有當前連續合約的空倉數
    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交易觸發條件
    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內CALLSTOCKIF00VTHIGH=%.2f',CALLSTOCK('IF00',vtHIGH,5,0));
      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內DYNAINFO(207)%.5f',DYNAINFO(207));
      SENDMAIL(1,'yangdian@simpleasset.com;ztb2@hotmail.com;anniesun@hotmail.com','聯想臺式機金字塔公式HLPYIF公式語句定義的IF交易指令預警郵件','預警時間:'&NUMTOSTR(DYNAINFO(207),0)&'  品種:IF'&'  交易動作:平空開多'&'  預警價格:'&NUMTOSTR(CALLSTOCK('IF00',vtHIGH,5,0),2));
      IFPKKD:=0;//已發指令記錄,防固定輪詢追單
      IF PresellholdIF>0 THEN
      TSELLSHORT(1,PresellholdIF,MKT,0,0,AccountID,'IF00');  //平空,平空手數取此前持有的空單手數
      IF PrebuyholdIF=0 THEN
      TBUY(1,LOTSIF,MKT,0,0,AccountID,'IF00');//開多,開多手數根據最新價格計算
    END
      
    IF LBIF AND IFPDKK=1 THEN //平多開空,第二個條件防固定輪詢追單
    BEGIN
      DEBUGFILE('D:\HLPYIFRECORD\HLPYIF.TXT','IF內CALLSTOCKIF00VTLOW=%.2f',CALLSTOCK('IF00',vtLOW,5,0));
      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內DYNAINFO(207)%.5f',DYNAINFO(207));
      SENDMAIL(1,'yangdian@simpleasset.com;ztb2@hotmail.com;anniesun@hotmail.com','聯想臺式機金字塔公式HLPYIF公式語句定義的IF交易指令預警郵件','預警時間:'&NUMTOSTR(DYNAINFO(207),0)&'  品種:IF'&'  交易動作:平多開空'&'  預警價格:'&NUMTOSTR(CALLSTOCK('IF00',vtLOW,5,0),2));
      IFPDKK:=0;
      IF PrebuyholdIF>0 THEN
      TSELL(1,PrebuyholdIF,MKT,0,0,AccountID,'IF00');   //平多,平多手數取此前持有的多單手數
      IF PresellholdIF=0 THEN
      TBUYSHORT(1,LOTSIF,MKT,0,0,AccountID,'IF00');     //開空,開空手數根據最新凈資產和價格計算
    END
    /////////////////////////////////IF公式段結束/////////////////////////////////////////////////

     

  • 金字塔客服: 補充:使用的是序列模式

     

  • 用戶回復: 明日開盤后測試

     

  • 網友回復:

    后臺怎么用 GLOBALVARIABLE?這個函數是圖表使用的。

    后臺使用EXTGBDATASET    EXTGBDATA

     

  • 網友回復: 以下是引用RogarZ在2013/6/24 16:13:39的發言:

    后臺怎么用 GLOBALVARIABLE?這個函數是圖表使用的。

    后臺使用EXTGBDATASET    EXTGBDATA

    EXTGBDATASET  EXTGBDATA全局變量將讀變量值存在硬盤,類似于注冊表變量,關機之后變量值仍然存在,如果不同公式用同一變量名,將發生紊亂。但沒有在你們的任何資料上看到過后臺只能用EXTGBDATASET    EXTGBDATA,并且參加過數次你們在上海的培訓,專門與培訓老師作過交流,專門請教過培訓老師GLOBALVARIBLE的用法,專門請教過GLOBALVARIBLE用于后臺程序化交易的問題。如果真的后臺不能用GLOBALVARIBLE,請金字塔方面給出一個權威的答復或說明,并建議在手冊和軟件自帶的函數說明里明確。

 

有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友

可聯系技術人員 QQ: 1145508240  有需要幫忙請點擊這里留言?。?!進行 有償 編寫!不貴!點擊查看價格!


【字體: 】【打印文章】【查看評論

相關文章

    沒有相關內容
主站蜘蛛池模板: 日本网址在线观看| 久久乐国产精品亚洲综合| 精品无码久久久久久久久久| 国产精品久久久久久影视| 一本大道香蕉视频在线观看| 日韩特黄特色大片免费视频| 亚洲精品午夜久久久伊人| 美女被免费网站视频九色| 国产曰批免费视频播放免费s| chinese国产在线视频| 日本一道综合久久aⅴ免费| 亚洲国产精品一区二区第四页| 精品久久久久中文字幕日本| 国产在线a免费观看| 337p色噜噜人体大胆欧美| 女教师合集乱500篇小说| 久久国产精品免费一区| 欧美成人另类人妖| 伊人热热久久原色播放www| 色综合色综合色综合色综合网 | 香蕉视频免费看| 国产精品电影网| japanese国产在线看| 成年女人喷潮毛片免费播放| 久久精品青草社区| 欧美日本在线一区二区三区| 免费一级特黄视频| 美女扒开大腿让男人桶| 国产凌凌漆国语| 亚洲精品老司机| 国产色综合天天综合网| japanesehdfree人妻无码| 成人理伦电影在线观看| 久久人午夜亚洲精品无码区| 最近高清日本免费| 亚洲宅男天堂在线观看无病毒| 男人边吃奶边做性视频| 午夜国产羞羞视频免费网站| 色综合久久综合中文小说| 国产成人精品视频一区二区不卡| 91九色视频无限观看免费|