MultiCharts | PowerLanguage語法教學 | CH1: MultiCharts如何執行策略

MultiCharts如何執行策略

策略是一行一行事先寫好的指令,這些指令會用PowerLanguage這個程式語言寫成。
你必須使用PowerLanguage Editor撰寫PowerLanguage指令。
這些寫好的PowerLanguage指令稱作腳本(Script),腳本必須經過編譯才能執行 (在PowerLanguage Editor 中執行編譯(F3))。
編譯會確認指令的語法是否正確,並將指令翻譯成MultiCharts可執行的指令。
編譯成功後,就可以在MultiCharts中看到和執行寫好的腳本。

PowerLanguage Editor,有三種類型的腳本: 函數指標訊號
打開 PowerLanguage Editor->檔案->開新檔案,選擇要撰寫的腳本類型。

  • 函數(Funtion): 類似常見程式語言的函數,詳細見 函數
  • 指標(Indicator): 專門用於繪圖(Ex: Plot),根據腳本撰寫的規則(Ex: 5日均線)在圖表上繪製線條。
  • 訊號(Signal): 專門用於下單交易(Ex: Buy、Sell、Selltoshort、Buytocover),根據腳本撰寫的規則下單。

指標腳本訊號腳本的主要的差別就是:
指標腳本可以執行繪圖指令,但是不能執行買賣指令。你可以只執行指標腳本,觀察圖表上線條的變化,然後手動下單買賣。
訊號腳本可以執行買賣指令,但是不能執行繪圖指令。

腳本的執行機制

當在主觀交易的時候,如果使用 2條均線黃金交叉就買進 的策略,是如何判斷要買進呢?
你會一直盯著不斷接收行情的圖表,看著K棒一根一根跑,然後”不斷”檢查現在的2條均線是否發生黃金交叉,來判斷是否買進。
是的,也許沒有意識,但是隨著行情不斷地接收,你是不斷的重複執行策略的邏輯: 檢查現在的2條均線是否發生黃金交叉,來判斷是否買進。

MultiCharts執行策略也是一樣的概念,隨著行情不斷地接收,MultiCharts會不斷的重新執行腳本。
但是”不斷”的重新執行,並不是每一次執行結束後,馬上重新執行下一次。
MultiCharts定義了重新執行的規則,來決定重新執行的時間。
指標腳本訊號腳本的重新執行的規則又各自不同,各自的規則如下:

指標

  • 對於過去已經完成的K棒,會在每一根K棒(bar by bar)結束的時間重新執行腳本
  • 如果過去所有已經完成的K棒都重新執行過了,在當前的K棒完成前,每有一筆交易成交(tick by tick)就重新執行一次腳本,而不會等到當前的K棒完成才重新執行腳本

已經完成的K棒 (Completed Bars)

當一根K棒在滿足下列條件時,就會判定已經完成。

  • 以時間為單位的圖表(Ex: 分K圖): 如果K棒收到下一筆交易的成交時間,超過了K棒定義的時間間格,則判定K棒已經完成,如果超過3秒都沒有收到下一筆交易成交,也判定當前K棒已經完成。

訊號

  • 對於過去已經完成的K棒,會在每一根K棒(bar by bar)結束的時間重新執行腳本
  • 如果過去所有已經完成的K棒都重新執行過了,在當前的K棒完成前,都不會重新執行腳本,等到當前的K棒完成後,才重新執行腳本
  • 可以透過開啟 IOG (Intra-bar Order Generation)屬性,讓訊號像指標一樣, 當前的K棒完成前,每有一筆交易成交(tick by tick)就重新執行一次腳本,要注意的是,已經完成的K棒,還是以每一根K棒(bar by bar)結束的時間重新執行腳本

已經完成的K棒 (Completed Bars)

當一根K棒在滿足下列條件時,就會判定已經完成。

  • 以時間為單位的圖表(Ex: 分K圖): 如果K棒收到下一筆交易的成交時間,超過了K棒定義的時間間格,則判定K棒已經完成,如果超過300秒都沒有收到下一筆交易成交,也判定K棒已經完成。

Reference

https://www.multicharts.com/trading-software/index.php/How_Scripts_Work

發佈留言