邏輯判斷
運算符 |
含義 |
< |
小於 |
> |
大於 |
<= |
小於或等於 |
>= |
大於或等於 |
= |
等於 |
<> |
不等於 |
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
語法說明: lf和Then配合使用,形成一個條件語句,如果某條件成立時,則執行特定的陳述式
範例: If Close> Close[1] Then Buy Next Bar At Market;
Begin ….. end
語法說明: Begin和end配合使用,如果某條件成立時,則執行一個或多個特定的陳述式,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);
價格
語法說明: 返回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棒的時間間距。比如5分K和5小時的圖表,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)
日期和時間
語法說明: 返回指定的ELDate格式日期所對應的日期,返回值為1至31,代表1至31號
範例: DayOfMonth(1080101);
範例: DayOfMonth(Date);
語法說明: 根據指定ELDate格式日期取得當天為該週第幾天的數值,返回值為0至6。0=星期天,1=星期一,2=星期二,3=星期三,4=星期四,5=星期五,6=星期六。
範例: DayOfWeek(1080101);
範例: DayOfWeek(Date);
語法說明: 取得指定EL日期的月份,返回值為1至12,代表1至31月
範例: Month (1080101);
範例: Month (Date);
語法說明: 返回指定日期的年份,格式為YYY,YYY表示從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”);
畫箭頭
語法說明: 在圖表上指定位置標示一個向上或向下的箭頭物件。
範例: 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(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套用使用者選擇的色彩。若要指定存儲背景顏色則一定要輸入指標名稱、指標色彩參數。
線寬——可選參數;數值表達式,指定指標畫線的寬度,範圍1到14。指標寬度可以用數值指定,或填入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);