?
?來源:程序化99
全局變量:是在歷史第一根K線上定義變量初始值,后續K線上關于該變量的計算始終調用上一根K線上該變量的返回值。
?
普通變量:在每一根K線上普通變量的初始值都是NULL,通過模型的計算,得到一個最后返回值。
?
?
全局變量的使用目的在于實現一些過去不容易實現,或者不能實現的思路,編寫時配合IF THEN BEGIN語句可以使整個編寫邏輯更加清晰明了
?
?來源: www.tumamayizhan.com
?
?請參考2樓,在文華編寫復雜思路時,如果配合IF THEN BEGIN語句可以簡化編寫邏輯
?
?不僅可以循環定義變量,同時也能兼容其他程序化軟件的編寫語言
?
?
?比如我們經常用到根據前一筆交易情況來控制當前開倉手數,這種思路使用全局變量來寫就更簡便了
?
?舉個例子吧:
?
初始下單手數為1,上一次交易如果盈利,下單手數在之前的下單手數上加2
?
上一次沒有盈利,繼續使用上一次的下單手數。
?
——————
未加入全局變量:
?
SSS:=1;//定義初始手數
HH:=HV(H,10);//10個周期最高價
LL:=LV(L,10);//10個周期最低價
CROSS(C,HH)&&COUNT(BARSBK=1,BARPOS)<1,BK(SSS);
//歷史第一次出現滿足條件發出BK信號時,以手數SSS進行委托
SS:=IF(TRADE_REF(1)=1,REF(SS,BARSSP+1)+2,REF(BKVOL,BARSSP+1));
//定義手數SS 判斷上一次交易是否盈利,如果盈利則在原有手數基礎上+2,如果沒有盈利 則取上一次開倉手數
CROSS(C,HH),BK(SS);
CROSS(LL,C),SP(BKVOL);
?
?
加入全局變量:
?
VARIABLE:SS:1;//定義全局變量SS
IF TRADE_REF(1)=1 THEN//如果上一筆交易盈利
?? BEGIN
? SS:=REF(SS,BARSSP+1)+2;//SS取上一筆委托手數+2 否則沿用之前的委托手數
END
HH:=HV(H,10);
LL:=LV(L,10);
CROSS(C,HH),BK(SS);
CROSS(LL,C),SP(BKVOL);
?
?
?
類似的思路,您可以在論壇搜:全局,來查看研究一下
?