2020年7月22日 星期三

Multicharts快速上手筆記 --- 常用關鍵字語法簡介


 

邏輯判斷

 

運算符

含義

< 

> 

<=

或等

>=

或等

=

<> 

不等

 

 

Cross Above / Cross Over

語法說明: 某數值A向上交叉穿過某數值B

範例: If  Value1 Cross Above Value2 then

範例: If  Value1 Cross Over Value2 then

 

Cross Below / Cross Under

語法說明: 某數值A向下交叉穿過某數值B

範例: If  Value1 Cross Below Value2 then

範例: If  Value1 Cross Under  Value2 then


And

語法說明: 連接兩個條件,兩個條件需同時符合

範例: If Close> Close[1] and Close[1] > Close[2] Then Buy Next Bar At Market;

 

Or

語法說明: 連接兩個條件,兩個條件只需任一符合

範例: If Close> Close[1] or Close[1] > Close[2] Then Buy Next Bar At Market;

 

If ….. then

語法說明: lfThen配合使用,形成一個條件語句,如果某條件成立時,則執行特定的陳述式

範例: If Close> Close[1] Then Buy Next Bar At Market;

 

Begin ….. end

語法說明: Beginend配合使用,如果某條件成立時,則執行一個或多個特定的陳述式,Begin ….. end需和If ….. then 配合使用

範例: If Close> Close[1] Then Begin

            Buy Next Bar At Market;

            PlaySound(“C:\ding.wav”);

           End;

 

 

 

 

 

 

交易指令

 

Buy

語法說明: 建立一個多頭部位,用法如下:

Buy + (“進場訊號名稱”) + 交易數量 + 進場類型

進場訊號名稱和交易數量可寫可不寫,進場類型有四種:

1.      當根K棒的收盤價進場

2.      次根K棒的開盤價進場

3.      次根K棒的某個價格以Limit單進場

4.      次根K棒的某個價格以Stop單進場

 

範例: Buy This Bar On Close;

範例: Buy (LongEntry1”) Next Bar At Open;

範例: Buy (LongEntry2”) 1 Contract Next Bar At Market;

範例: Buy Next Bar At 10000 Limit;

範例: Buy Next Bar At High+5 Stop;

 

注意: Buy This Bar On Close;  Buy Next Bar At Open;  Buy Next Bar At Market;

三者在實際交易中效果是一樣的,都是次根K棒開盤以市價進場 Buy This Bar On Close; 這句語法在回測中會以當根K棒的收盤價進場 ,但用於實際交時不能做到當根K棒的收盤價進場,會於次根K棒開盤時以市價進場 Buy Next Bar At Open;  Buy Next Bar At Market; 兩者的意義相同。

 

Sellshort

語法說明: 建立一個空頭部位,用法如下:

Sellshort + (“進場訊號名稱”) + 交易數量 + 進場類型

進場訊號名稱和交易數量可寫可不寫,進場類型有四種:

1.      當根K棒的收盤價進場

2.      次根K棒的開盤價進場

3.      次根K棒的某個價格以Limit單進場

4.      次根K棒的某個價格以Stop單進場

 

範例: Sellshort This Bar On Close;

範例: Sellshort (ShortEntry1”) Next Bar At Open;

範例: Sellshort (ShortEntry2”) 1 Contract Next Bar At Market;

範例: Sellshort Next Bar At 10000 Limit;

範例: Sellshort Next Bar At Low-5 Stop;

 

注意: Sellshort This Bar On Close;  Sellshort Next Bar At Open;  Sellshort Next Bar At Market; 三者在實際交易中效果是一樣的

 

Sell

語法說明: 多頭部位平倉,用法如下:

Sell + (“出場訊號名稱”) + From Entry 進場訊號名稱”+交易數量 + 出場類型

出場訊號名稱可寫可不寫,只需全部平倉的話,交易數量可不寫,如要針對特定的進場訊號平倉,要加上From Entry 進場訊號名稱,否則不用寫,出場類型有四種:

1.      當根K棒的收盤價出場

2.      次根K棒的開盤價出場

3.      次根K棒的某個價格以Limit單出場

4.      次根K棒的某個價格以Stop單出場

 

範例: Sell This Bar On Close;

範例: Sell From Entry (LongEntry1”) Next Bar At Market;

範例: Sell Entry (LongEntry2”) 10 Contracts Next Bar At Market;

範例: Sell Next Bar At 10000 Limit;

範例: Sell Next Bar At Low-5 Stop;

 

注意: Sell This Bar On Close;  Sell Next Bar At Open;  Sell Next Bar At Market;

三者在實際交易中效果是一樣的

 

Buytocover

語法說明: 空頭部位平倉,用法如下:

Buytocover + (“出場訊號名稱”) + From Entry 進場訊號名稱”+交易數量 + 出場類型

出場訊號名稱可寫可不寫,只需全部平倉的話,交易數量可不寫,如要針對特定的進場訊號平倉,要加上From Entry 進場訊號名稱,否則不用寫,出場類型有四種:

1.      當根K棒的收盤價出場

2.      次根K棒的開盤價出場

3.      次根K棒的某個價格以Limit單出場

4.      次根K棒的某個價格以Stop單出場

 

範例: Buytocover This Bar On Close;

範例: Buytocover From Entry (ShortEntry1”) Next Bar At Market;

範例: Buytocover Entry (ShortEntry2”) 10 Contracts Next Bar At Market;

範例: Buytocover Next Bar At 10000 Limit;

範例: Buytocover Next Bar At Low-5 Stop;

 

注意: Buytocover This Bar On Close;  Buytocover Next Bar At Open;  Buytocover Next Bar At Market; 三者在實際交易中效果是一樣的

 

SetExitOnClose

語法說明: 當日收盤以收盤價平倉

範例: If DayOfMonth(Date) = 25 then SetExitOnClose;

注意: 只可回測使用,實際交易時無法在當日收盤平倉

 

 

 

策略部位

 

BarsSinceEntry

語法說明: 返回指定部位進場至今的K棒數量

範例: If barssinceentry = 5 then sell next bar market;

 

BarsSinceExit

語法說明: 返回指定部位出場至今的K棒數量

範例: If barssinceexit = 5 then …..

 

CurrentContracts/CurrentShares

語法說明: 返回目前部位的手數

範例: If currentcontracts = 1 then buy next bar market;

 

CurrentEntries

語法說明: 返回目前部位的進場筆數

範例: If currententries = 1 then buy next bar market;

 

EntryPrice

語法說明: 返回指定部位第一筆進場的價格

範例: If marketposition = 1 then sell next bar entryprice - 50 stop;

 

MarketPosition

語法說明: 返回指定部位多空狀態

MarketPosition = 1      ——   多頭部位

MarketPosition = 0      ——   無持倉

MarketPosition = -1     ——   空頭部位

範例: If marketposition = 1 then sell next bar entryprice - 50 stop;

範例: If marketposition = -1 then sell next bar entryprice + 50 stop;

 

MaxPositionProfit

語法說明: 返回指定部位持有期間內出現的最大獲利

範例: If maxpositionprofit > 2000  then sell next bar market;

 

OpenPositionProfit

語法說明: 返回目前未平倉部位的獲利或虧損的金額

範例: If openpositionprofit < 0 then sell next bar market;

 

PositionProfit

語法說明: 返回指定部位的獲利或虧損的金額,用法: PositionProfit(PosBack)

PosBack = 0      ——     未平倉部位;

PosBack = 1      ——     上一個平倉部位(最後一個平倉部位);

PosBack = 2      ——     上二個平倉部位,依次類推。

範例: Value1= positionprofit(1);

 

 

價格

 

Close/C 

語法說明: 返回K棒的收盤價

範例: If Close> Close[1] Then  …..

範例: If C> C[1] Then  …..

                           

Open/O

語法說明: 返回K棒的開盤價

範例: If Open> Open[1] Then  …..

範例: If O> O[1] Then  …..

 

High/H

語法說明: 返回K棒的最高價

範例: If High> High[1] Then  …..

範例: If H> H[1] Then  …..

 

Low/L

語法說明: 返回K棒的最低價

範例: If Low> Low[1] Then  …..

範例: If L> L[1] Then  …..

 

K 棒狀態

 

BarInterval

語法說明: 返回一個數值,表示K棒的時間間距。根據圖表週期Ticks,秒(Seconds),分(Minutes),時(Hours),日(Days),週(Weeks),月(Months ),季(Quarters),或年(Years)的設定數值,返回K棒的時間間距。比如5K5小時的圖表,BarInterval返回值都為5

                           

BarType/DataCompression

語法說明: 返回一個數值,表明K棒的周期類型。不同的周期類型對應的Bartype值為:

  0 Ticks &合約 (Ticks & Contracts)

  1 日內(Seconds, Minutes, & Hours)

  2 Days

  3 Weeks

  4 月,季,年(Months, Quarters, & Years)

  5 &變動(Points & Changes)

 

 

日期和時間

 

DayOfMonth

語法說明: 返回指定的ELDate格式日期所對應的日期,返回值為131,代表131

範例: DayOfMonth(1080101);

範例: DayOfMonth(Date);

 

DayOfWeek

語法說明: 根據指定ELDate格式日期取得當天為該週第幾天的數值,返回值為060=星期天,1=星期一,2=星期二,3=星期三,4=星期四,5=星期五,6=星期六。

範例: DayOfWeek(1080101);

範例: DayOfWeek(Date);

 

Month

語法說明: 取得指定EL日期的月份,返回值為112,代表131

範例: Month (1080101);

範例: Month (Date);

 

Year

語法說明: 返回指定日期的年份,格式為YYYYYY表示從1900年至今的年份

範例: Year(1080101);

範例: Year(Date);

 

Date

語法說明: 返回目前K棒的日期

範例: If Date<> Date[1] Then  …..

 

Time/T

語法說明: 返回目前K棒的收盤時間

範例: If Time> 0845 Then  …..

範例: If T> 0845 Then  …..

 

警示

 

Alert

語法說明: 彈出警示

範例: If Close > Close[1] Then  Alert(Text("Price turning up"));

 

PlaySound

語法說明: 播放指定的音效文件(格式WAV)

範例: If Close > Close[1] Then  PlaySound(“C:\ding.wav”);

 

 

畫箭頭

 

Arw_New

語法說明: 在圖表上指定位置標示一個向上或向下的箭頭物件。

範例: If Open>Open[1] And Open[1]>Open[2] Then

Value1=Arw_New(Date,Time,Low,False);

                                    

Arw_SetColor

語法說明: 設定箭頭物件的顏色

範例: Arw_SetColor(Value1,Blue); 將編號為Value1的箭頭物件的顏色設定為藍色

 

Arw_SetLocation

語法說明: 設定箭頭物件的位置

範例: Arw_SetLocation(Value1,Date,Time,High); 將編號為Value1的箭頭移至目前BAR的最高價

 

Arw_SetSize

語法說明: 設定箭頭物件的大小

範例: Arw_SetSize(Value1,10); 設定編號為Value1箭頭的物件的大小為10

 

Arw_SetText

語法說明: 設定箭頭物件的說明文字

範例: Arw_SetText(Value1,"New Text"); 設定編號為Value1箭頭物件的說明文字為 "New Text"

 

Arw_Delete

語法說明: 刪除圖表上指定編號的箭頭

範例: Arw_Delete(Value1); 刪除編號為Value1的箭頭物件

 

 

 

標註文字

 

Text_New

語法說明: 在圖表上指定位置標註一個特定的文字

範例: If Open>Open[1] And Open[1]>Open[2] Then

Value1=Text_New(Date,Time,Low,"UpT");

 

Text_SetColor

語法說明: 設定指定編號的文本的文字顏色

範例: Text_SetColor(Value1,Blue); 將編號為Value1文字的顏色設定為藍色

 

Text_SetLocation

語法說明: 設定指定編號的文本的顯示位置

範例: Text_SetLocation(Value1,Date,Time,High); 將編號為Value1文字移至目前BAR的最高價

 

Text_SetSize

語法說明: 設定指定編號的文本的字形大小

範例: Text_SetSize(Value1,10); 設定編號為Value1的文字大小為10

 

Text_SetString

語法說明: 替換指定文本編號顯示的文字

範例: Text_SetString(Value1,"New Text"); 替換編號為Value1文字為 "New Text"

 

Text_Delete

語法說明: 刪除圖表上指定編號的文字

範例: Arw_Delete(Value1); 刪除編號為Value1文字

 

 

指標

 

PlotN

語法說明: 在圖表上以特定數值畫線,同一個腳本中,最多可同時使用999個指標(Plot1~Plot999),格式為Plot N <[偏移]>(指標數值<,”指標名稱”<,指標色彩<,存儲背景顏色<,線寬>>>>)N——代表指標編號的數字,範圍為1 999

偏移——可選參數;數值表達式,指定指標偏移的K棒數;正值代表向左偏移、負值代表向右偏移

指標數值——數值表達式,指標的數值

指標名稱——可選參數,字符串表達式,指定指標的名稱。

指標色彩——可選參數;數值表達式,指定指標的顏色,顏色可以用RGB色碼或是傳統色碼指定;或填入Default套用使用者選擇的色彩。若要指定指標色彩則一定要輸入指標名稱參數。

存儲背景顏色——可選參數;數字表達式,指定在市場掃描窗口的背景顏色;或填入Default套用使用者選擇的色彩。若要指定存儲背景顏色則一定要輸入指標名稱、指標色彩參數。

線寬——可選參數;數值表達式,指定指標畫線的寬度,範圍114。指標寬度可以用數值指定,或填入default套用使用者選擇的寬度。若要指定線寬則一定要輸入指標名稱、指標色彩、存儲背景顏色參數。

範例: Plot1(Close);

範例: Plot1(Close,"Close");

範例: Plot1[3](Close,"Close 3 Bars later",Blue,Green,3);

範例: Plot1(Close,”Close”, Default, Default, Default);

 

                                    

SetPlotColor

語法說明: 設定指標的色彩

範例: SetPlotColor(1,Blue); 設定Plot1為藍色

 

 

趨勢線

 

TL_New

語法說明:在圖表上繪製一條指定起點和終點的趨勢線,用法為TL_New(StartDate,StartTime,StartPricevalue,EndDate,EndTime,EndPircevalue)

範例: Value1=Arw_New(Date[20],Time[20],High[20],Date,Time,High);

 

TL_Delete

語法說明: 從圖表中刪除指定號的趨勢線

範例: TL_Delete(Value1);


經典當沖交易系統 --- ORB

ORB 即是 Opening Range Breakout ,意思是開盤區間突破,先定義出一個區 間 ,突破此區間進場,收盤前平倉。定義區 間 的做 法 會以當天開盤價或開盤時段的高低點作參考。例如以開盤後 30 分鐘內的最高價和最低價作為區間,突破開盤後 30 分鐘內的最高價進...