Google Analytics

2014年4月16日 星期三

如何學習MT4程式交易(4)

init()完成設定後, 如何畫指標就靠 start()來完成.

在start 初段會見到一個Bars的"變數" , 但細心的讀者會發現這個"變數"並沒有設定過, 其實這個變數是由MT4自動設定的, 數值就是這個圖上的Bar數,

 if(Bars<=Tenkan || Bars<=Kijun || Bars<=Senkou) return(0);

如果Bar數少於這些參數值, 當然也就沒東西可畫了

int    counted_bars=IndicatorCounted();

這個差不多是固定的起手式, counted_bars 被賦予上次計算後指標值不變的Bar數 , 這減少需重新計算的數目

for(i=1;i<=Tenkan;i++)    Tenkan_Buffer[Bars-i]=0;

剛載入時, 初始短觀線的陣列的值. 注意最左方的index為Bars - 1

  i=Bars-Tenkan;



針對短觀線而言, 設定 i 為要計算的Bars 數, 此為最壞情況
但若指標不變數比短觀周期長, 就只需從上一次計算完的部分開始
   if(counted_bars>Tenkan) i=Bars-counted_bars-1;


 while(i>=0)
     {
      high=High[i]; low=Low[i]; k=i-1+Tenkan;
      while(k>=i)
        {
         price=High[k];
         if(high<price) high=price;
         price=Low[k];
         if(low>price)  low=price;
         k--;
        }
      Tenkan_Buffer[i]=(high+low)/2;
      i--;
     }

從 最新Bar (i=0) 至上次算完的部分, k則是要計算值的Bar當日短觀日數前的index. 整個計算過程就有如滾動視窗.






沒有留言:

張貼留言