在看一次我們訂出的,寫程式的步驟:
- 設定目標;
- 研究分析達成目標的主要功能;
- 將主要功能細分成更多小而獨立的程序;
- 逐步完成小程序;
- 結合所有小程序並完成。
接著我們來看Multicharts程式最重要的觀念,每根K棒結束都執行程式一次,或是每次tick一次(這是設定問題,留在後期討論)。請記得這個關念,在Multicharts執行時,會在每根K棒結束時就執行程式一次,每次執行時就把程式交付的任務做完。這個特性會影響Multicharts程式設計的方法,我們會在之後一步步的說明。
按照我們所提出寫程式的步驟,來個簡單的練習:
- 我們要畫出每天高低點的通道;
- 以每日為單位,高低點會隨著過高破低動態調整;
- 檢查換日、設定高低點初始值、更新高低點、畫出高低點;
- 實作小程序:
- 檢查換日:
- if Date <> Date[1] then begin … end;
- 設定高低點初始值:
- D_high = High;
- D_low = Low;
- 更新高低點:
- if High > D_high then D_high = High;
- if Low < D_low then D_low = Low;
- 畫出高低點:
- plot1(D_high, “Day High”, red);
- plot2(D_low, “Day Low”, green);
- 檢查換日:
- 結合與完成:
var:
D_high(0),
D_low(0);
if Date <> Date[1] then begin
D_high = High;
D_low = Low;
end;
if High > D_high then D_high = High;
if Low < D_low then D_low = Low;
plot1(D_high, “Day High”, red);
plot2(D_low, “Day Low”, green);
這就是我們寫出的第一個程式。請先忽略程式碼,在此主要是提出一個方法,讓大家體驗如何依據簡單的步驟,就能設計程式。然而這是最初步的概念,我們真的要能把程式掌握的更多,由設計進入實作的階段,那就必須學習Multicharts平台所使用的程式語言PowerLanguage。
感謝大大的教學,想請問一下Date[1] ,後面的[1]是指什麼?
不客氣..
之後會解釋.. 先簡單說一下.. [1] –> 前一根K..
感謝^^
感謝分享 !
但我有個疑惑 :Date 一定不等於 Date[1] , 也就是說 今天一定“不等於”上個交易日 所以 condition : DateDate[1] 不就是 恒為 TRUE 了嗎?
菜鳥問題 請勿見怪 !
之後會細說.. 先簡單說一下..
Date, Date[1], Date[-1], Date[n], 指的是某根K棒的日期..
那你的K是什麼商品週期呢??
加油! 為程式交易入門者指引方向, 期待後續貼文~