從本質上來說,這兩者的區別只是在于變量的初始值不一樣,但是,設置不同的初始值可以優化代碼。以計算最小價格來說明兩個不同的寫法帶來的區別:
//代碼1
var: min_low(0);
if min_low=0 then
? ? ? ? min_low=low
else if min_low>Low then
? ? ? ? min_low=low;
//代碼2
var: min_low(9999); //初始值要設置的比商品合約的價格大很多
if min_low>Low then
? ? ? ? min_low=low;
兩者的區別在代碼中就很明顯了。
?
從本質上來說,這兩者的區別只是在于變量的初始值不一樣,但是,設置不同的初始值可以優化代碼。以計算最小價格來說明兩個不同的寫法帶來的區別:
//代碼1
var: min_low(0);
if min_low=0 then
? ? ? ? min_low=low
else if min_low>Low then
? ? ? ? min_low=low;
//代碼2
var: min_low(9999); //初始值要設置的比商品合約的價格大很多
if min_low>Low then
? ? ? ? min_low=low;
兩者的區別在代碼中就很明顯了。
?
第一種是需要再比較一下與0的價格,第二種就不需要了對嗎
?
對的。因為第一種情況,min_low的初始值為0,所以它始終比所有的價格低,如果通過代碼2中的代碼與價格比較的話,那么最后的結果肯定也是0,這個結果是不正確的。
如果將min_low的初始值設置的足夠大,例如9999,那么代碼2中的程序第一次執行時就將min_low賦值為當根bar的最小值。
?
對的。因為第一種情況,min_low的初始值為0,所以它始終比所有的價格低,如果通過代碼2中的代碼與價格比較的話,那么最后的結果肯定也是0,這個結果是不正確的。
如果將min_low的初始值設置的足夠大,例如9999,那么代碼2中的程序第一次執行時就將min_low賦值為當根bar的最小值。