Q1:多週期數據引用方式?
說明
MC有附了簡單版的GlobalVariable.dll的功能,讓使用者可以跨圖表跨週期引用資料,對應的四個函數如下:
GVSetNamedDouble
GVSetNamedInt
GVGetNamedDouble
GVGetNamedInt
Set類是存值用的,Get類就是叫用你存的值。一種是存整數,一種是存小數。
範例
指標$TestSet
value1=GVSetNamedInt("O60",Open);value2=GVSetNamedInt("H60",High);value3=GVSetNamedInt("L60",Low);value4=GVSetNamedInt("C60",Close);
指標$TestGet
Plot1(GVGetNamedInt("O60",value1),"O60");plot2(GVGetNamedInt("H60",value2),"H60");plot3(GVGetNamedInt("L60",value3),"L60");plot4(GVGetNamedInt("C60",value4),"C60");
然後,找個60分鐘的圖,插入$TestSet。找個1分鐘的圖,插入$TestGet,就大功告成。
Q2:K棒內產生委託(IOG, IntraBar Order Generation)機制說明。
首先這裡寫了二個進場、二個出場:
[intrabarordergeneration=true]
if close < close[1] then buy("buy 1") 1 shares next bar at market;if close < close[1] then buy("buy 2") 1 shares next bar at market;if marketposition = 1 then sell("Sell 1") 1 shares next bar at low-1 point limit;if marketposition = 2 then sell("Sell 2") 2 shares next bar at low-1 point limit;
範例:
以下是實單測試,這裡只檢測「單一K棒內,此訊號總共只產生一個進場及一個出場委託」。
可以看到,上圖中每個K棒,只進出一次,而且時間幾乎都是在K棒的開頭,
一旦符合了,後續即使有符合訊號的地方,也不會再重複進場。
如果啟用IOG時,千萬要注意不要出現會逐筆下單的狀況。
因為啟動IOG後,是把每一筆進來的TICK,當做收盤價在處理,
台指跳動有多快,相信大家都知道,而一旦K棒收完(實際上就是一個TICK的時間),還沒收到成交回報,
就會產生"無法在K棒內完成委託" 的狀況,MC馬上會進行刪單。
這時候,實際上經紀商那邊,部位沒成交。而圖上,已經標了成交,會有倉位不一致的狀況出現。
1. 範例用的程式碼如下:
if close < open then begin //進場條件(請換成您的訊號成立條件)
buy("buy 1") 1 shares next bar at market;//第一筆進場
buy("buy 2") 2 shares next bar at open-1 limit;//第二筆進場
buy("buy 3") 3 shares next bar at open-2 limit;//第三筆進場
end
else if close > open then begin
sellshort("sell") 2 shares next bar at market;
4.於部位限制欄位勾選最多容許幾筆同向委託,填3的話,畫面上就會出現的三
Q4:指標是否可以儲存備份?
否。存指標的地方,沒有辦法直接備份,如果有需要就是自行copy。於PowerLanguage Editor裡選擇匯出,
Q5:PowerLanguage及EasyLanguage的語法是否完全相同相容?
TS的EasyLanguage轉MC的PowerLanguage只有下面三個語法寫法不同:
sell→ sellshort (放空)
exitlong → sell (多單出場)
Q6:如何啟動指標的警示功能?
1.勾選啟動MC內鍵指標警示功能鍵。
2.您設定的指標中,程式碼是否有個語法叫「Alert」,有這樣寫法才會出聲音。
選取您的指標按開啟腳本。