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