Show 函數跟參數和變數一樣,可以想像成是一個容器,只是這個容器裡面放的不是數值,而是一連串的程式碼,當我們想要重複使用這段程式碼時,可以不用全部重寫一次,只需要使用函數名稱,程式在執行到函數名稱的時候,就會知道要去執行對應的程式碼。 函數跟參數和變數一樣,也分成兩個階段: 定義(實作)函數新增一個函數腳本PowerLanguage Editor->檔案->開新檔案->函數 回傳類型就是型別,分成數值(數值型別)、TrueFalse(真假值型別)、字串(字串型別),詳見型別。 撰寫功能和編譯函數腳本除了參數(inputs)語法不一樣和多了回傳語法之外,其他的語法: 變數、分支、迴圈、陣列和註解都和訊號與指標腳本的寫法一樣。 函數的參數和訊號指標或指標腳本的參數不一樣,無法從Multicharts傳入參數值。在使用(呼叫)函數時,將數值傳入給函數的參數。 函數腳本寫好後需要進行編譯,編譯成功後,就可以使用自己寫的函數。 函數腳本的語法框架
where 參數型別
使用(呼叫)函數
where Example內建的函數:
Passing By Value和Passing By Reference在呼叫函數時,放在參數位置、要傳入給參數的值稱作引數,引數傳給參數的方式分成Passing by value和Passing by reference兩種。 Passing by value沒有Ref結尾的參數型別,引數傳給參數的方式用Passing By Value: 用Passing by value的方式將引數的值傳給函數的參數時,函數的參數會有自己的記憶體位置,程式會將引數值複製和存到函數參數的記憶體位置,在函數中無法改變宣告為Passing By Value的參數值,如果嘗試改變Passing By
Value的參數值,會造成
ExampleswapByValFunc函數的參數 函數: swapByValFunc
Passing by reference有Ref結尾的參數型別,引數傳給參數的方式用Passing By Reference: 用passing by reference的方式將引數的值傳給函數的參數時,函數的參數是使用引數的記憶體位置,由於和引數存取同一個記憶體位置上的值,當改變函數的參數值時,也會改變引數值。
Passing by reference最多的應用就是拿來當函數的輸出,由於PowerLanguage的函數語法,一個函數只有一個回傳值,因此一個函數只有一個輸出,當函數需要有多個輸出的情形時,就可以使用Passing by reference的方式。 Example範例testSwapFunc訊號呼叫swapByRefFunc函數,swapByRefFunc會將輸入的 呼叫 訊號: testSwapFunc
函數: swapByRefFunc
Referencehttps://www.multicharts.com/trading-software/index.php?title=Category:Declaration https://www.multicharts.com/trading-software/index.php?title=Passing_values_to_and_from_a_function |