input: T1(084500, "開始時間01");
input: T2(134400, "結束時間01");
input: dago(5, "計算幾天前的資料");
var: _len(0), _len01(0), _len02(0), _len03(0), _len04(0), _len05(0), i(0), VarT(0), Target(0);
var: _d1(0), _d2(0), _d3(0), _d4(0), _d5(0), TotalVolume(0), CDVolume(0),temp01(0),temp02(0);
Variables:Re_H(0),Re_L(0),Re_TR(0);
Array: intrabarpersist tov[20](0),intrabarpersist tov01[20](0),intrabarpersist tov02[20](0),intrabarpersist tov03[20](0),intrabarpersist tov04[20](0),intrabarpersist tov05[20](0),intrabarpersist PTVolume[10](0);
Array: intrabarpersist TR01[6](0),intrabarpersist TR02[6](0),intrabarpersist TR03[6](0),intrabarpersist TR04[6](0),intrabarpersist TR05[6](0),intrabarpersist MeanTR[6](0);
Array: intrabarpersist firsttime[6](false);
Condition1 = time>=T1 and time<=T2;
if Time=T1 then CDVolume=0;
CDVolume = CDVolume + Volume; // 計算目前時段的成交量 加總
Print(CDVolume,"目前時段總量");
if Condition1 then begin
_len01 = timeDiff(T2,T1,"M")+1;
if time=T1 then begin
Re_H = High;
Re_L = Low;
end;
if Re_L>Low then Re_L=Low;
if Re_H<High then Re_H=High;
if Time=T2 then begin
for i=dago DownTo 2 begin
tov01[i] = tov01[i-1];
TR01[i] = TR01[i-1];
end;
tov01[1] = summation(Volume, _len01);
TR01[1] = Re_H-Re_L; // 該時段的高低差
End;
PTVolume[1] = Array_Sum(tov01,1,dago);
MeanTR[1] = Array_Sum(TR01,1,dago);
Alert(PTVolume[1],"N日前_日盤總量");
Alert(PTVolume[1]/dago,"N日前_時段均量");
Alert(MeanTR[1]/dago,"ATR");
end; // if Condition1的end
Print(PTVolume[1],"日盤總量");
Print(PTVolume[1]/dago,"時段均量");
Print(MeanTR[1]/dago,"ATR");
上述是我選定商品為台指期(FITXN*1.TF),頻率設定為1分K,並開啟逐筆洗價的腳本
想要達成一開始只計算一次過往的成交量資料(因為過往的資料是固定的數值,不會發生改變,因此只想要讓電腦計算一次後,將該數值拿來做其他運算使用),尤其是上述計算的PTVolume[1]/dago 時段均量的這個數值
想請教該如何修改程式碼,才能達成?

5 評論