所以,我們自己做個函數來取得以日為單位的損益數值。
函數名稱:_DailyProfit,參數 為 daysAgo。參數輸入 0 可取得今天的損益變化,輸入 1 則是昨天,2 則是前天... and so on。
函數(數值、序列) Code 如下。我使用一個動態陣列,透過輸入的參數值來決定陣列的大小,在每天的換日的那根K棒把用來儲存每日損益的陣列往前偏移一格後,再把昨日的 equity 記錄在陣列的第 1 格...(陣列偏移函數,點我),得到記錄每天 equity 的陣列。再把陣列中的指定格的數值減去前一格就可得到指定第前 daysAgo 日的損益了。
input: daysAgo(Numeric);
var: equity(0);
array: dayEquity[](0);
equity= i_OpenEquity;
array_setmaxindex(dayEquity, daysAgo+1);
if D>D[1] then
begin
_arrayShift(dayEquity);
dayEquity[1]= equity[1];
end;
if daysAgo=0 then
_DailyProfit = equity - dayEquity[1]
else
_DailyProfit = dayEquity[daysAgo] - dayEquity[daysAgo+1];
寫個簡單的指標來引用這個函數,在圖表上顯示今天(0)的損益、昨天(1)的損益、前天(2)及大前天(3)的損益。
把指標放上圖表,顯示出 4個數值,我們怎麼知道這是不是對的呢?你可以自行計算來驗證,或者像這樣對照一下回測報表中的日權益。It works。