所謂程式交易,就是把交易的方式邏輯化,用數學統計的方式,驗證交易以及評估績效可行性。
目前最普及的程式交易平台應該就是Multicharts
寫程式的語法 稱為Powerlanguage
而Powerlanguage 的類型分為 函數、指標、訊號
好比是大腦,這裡是交易的核心
會不會覺得很複雜呢~其實一點都不難
什麼是變數
程式開發工具只認識原始內建的名詞,如果要給予特殊的字詞讓程式運算,則要在程式開頭給這些字詞命名,這種字詞在程式稱之為變數。
例如 MA= average(close,10), MA就是自訂的變數,
需要在程式上方宣告 Var:MA(0)
外部可調整的變數稱為參數,舉例 MA=average(close,Len),Len是可以調整的
需要宣告為 Input:Len(10),而Var 是內部的變數
內建保留字
Open 開盤價
High 最高價
Low 最低價
Close 收盤價
Volume 成交量
Date 日期
Time 時間
Highest 最高
Lowest 最低
Buy 買進
Sellshort 賣出
Sell 多單平倉
Buytocover 空單平倉
Cross over 黃金交叉
Cross under 死亡交叉
Condition 條件
If … then 條件判斷
Marketposition 部位
Currentcontracts 口數
引用舊資料
Close[2] 前二根收盤價
openD(0) 今天開盤價
我們來看範例
inputs: Price( Close ), FastLength( 9 ), SlowLength( 18 ) ; 可調整參數
variables: var0( 0 ), var1( 0 ) ; 內建自訂變數
var0 = AverageFC( Price, FastLength ) ; 短周期均線
var1 = AverageFC( Price, SlowLength ) ; 長周期均線
condition1 = CurrentBar > 1 and var0 crosses over var1 ; 條件 符合
if condition1 then
Buy ( "MA2CrossLE" ) next bar at market ; 如果符合條件 就買進
inputs: Length( 5 ) ; 外部可調整參數
variables: var0( 0 ), var1( 0 ) ; 內部變數
var0 = Highest (High,5) ; 最近5根K棒最高價
condition1 = H > Var0[1] ; 條件
if condition1 then
Buy ( “BreakHigh" ) next bar at market ; 如果條件符合就買進
value1= AverageFC( Close, 20 ) ; 條件1是20日均線
if close cross over value1 then Buy ( "MACrossLE" ) next bar at market ;
如果收盤價站上條件1(20日均線)就在下一根K棒市價買進
Buy ( "MACrossLE" ) 是給自己的訊號取名稱
if close cross under value1 then Sell ( "MACrossLX" ) next bar at market ;
如果跌破條件1 就在下一根K棒市價多單平倉 (在這邊sell指的不是空單進場,而是多單平倉)
出場條件
在Powerlanguage有幾個內建的出場函數
Setstoploss 停損
Setbreakeven 獲利一定金額守不輸
Setprofittarget 停利
Setdollartrailing 折返一定點數出場
Setpercenttrailing 折返百分比停利
下一篇另外介紹出場的指令的用法
留言列表