自從「XQ量化交易平台」上線後,聰明的使用者開始發展各種自動化交易策略,其中,江湖流傳已久,近來廣受幣圈愛好者青睞的「網格交易(grid trading)」,詢問度很高,因此,團隊也因應廣大客戶的要求,寫了一個網格交易的腳本。
網格交易是從數位貨幣圈流行起來的一種交易策略。投資人只要設定好一個價格區間,並且寫好程式,系統就會在預設的價格內,自動執行低價買進和高價賣出,進而從波動中獲利,投資人就不需要時刻預測市場走勢,同時也就能減少預測錯誤的機率。
只要設定好高低價位
程式就會自動執行買賣
舉例來說,如果投資人認為某某數位貨幣的價格區間會在300元~500元間波動,只要將網格設定為10格,而目前的市場價格在300元,那就把500元設定為最高價,300元設定為最低價,然後將300元到500元之間的價格畫成10格,也就是1格價格20元,往上漲就減少部位,往下跌就增加部位,只要股價的波動愈大,獲利的機會也愈大。
這種交易策略其實也能應用在波動大的熱門股上,團隊相信會有不錯的獲利,如同前一陣子熱門的航運股。投資人可以事先設定某天股價可能的最高價與最低價,再將高低價之間的範圍區間分成10格,藉由股價的波動,來執行低買高賣的策略。
例如:如果投資人認為,貨櫃航運股的陽明(2609),近期會在160元至190元之間波動,就可以將30元的價格區間除以10,代表每格的交易價差為3元,並且設計出網格交易表單(詳見表1)。
隨著價位往上時就減碼、價位往下就加碼,如此就會如表1一樣,網格編號加上部位永遠都等於10,這就是所謂的網格交易。它的好處是,當股價處於箱型盤整時,投資人只要設定出高低價位,就可以從低買高賣中賺到價差。
網格交易特別適合那些長線基本面不錯,可是股價短線正處於盤整格局的個股。那些股票只要跌到一定的價位,就會有長線的投資買盤進場,只要漲到一定的價位,長線買盤就縮手,而獲利了結的賣盤就會造成股價拉回。
團隊的高手幫各位投資人撰寫好了一個腳本,大家可以把這個腳本複製到「XQ量化交易平台」的交易腳本類別裡,然後打開自動交易中心、並且點選「新增策略」,選擇該腳本,同時設定多空方向與區間上下緣,以及網格數量和每筆張數。另外,設定要執行的商品後,按下確認鍵,即可以完成網格交易的自動交易設定。將來投資人只要在開盤前按下啟動策略,電腦就會幫投資人自動執行了。
券商系統必須配合
才能執行網格交易
另外,團隊要特別提醒,自動交易除了前台的「XQ量化交易平台」之外,合作的券商也必須有相對應的系統來配合,不是在XQ個人版有串接下單的券商,就都有支援「XQ量化交易平台」,請使用者留意。
目前自動交易的支援券商只有統一、群益和華南永昌等3家,現在跟團隊簽約,並且在施工中的券商則是國票、元富、日盛與宏遠等4家,至於還在洽談中的是台新證券與永豐金證券,以上就是未來預計將支援「XQ量化交易平台」的券商。
只要範例輸入完成,系統就會自動執行
下面的腳本是團隊的高手所撰寫的範例,僅供各位投資人參考:
//參數定義
input:P_LS(1,"多空啟動",inputkind:=dict(["多方啟動",1],["空方啟動",-1]));
input:P_UpLimit(80,"區間上緣");
input:P_DnLimit(70,"區間下緣");
input:P_Grid(10,"網格數");
input:P_GridV(1,"每筆張數");
//變數定義
var:V_LS(0);//多空方向
var:V_Grid(0);//網格點數
var:intrabarpersist V_GridNo(0);//網格編號
var:intrabarpersist V_GridPosition(0);//網格目標部位
//多空方向,預設做多
if P_LS=-1 then V_LS=-1 else V_LS=1;//計算每格點數
once V_Grid = intPortion((P_UpLimit-P_DnLimit)/P_Grid);
if V_LS=1 then value1=MaxList((close-P_DnLimit)/V_Grid,0)
else value1=MaxList((P_UpLimit-close)/V_Grid,0);
//計算目前所處網格編號,最低網格為0號
V_GridNo = intPortion(value1);//計算網格應有部位
if V_LS=1 then begin
V_GridPosition = P_GridV * maxList(P_Grid - V_GridNo,0);
if filled < V_GridPosition then begin
setposition(V_GridPosition, P_DnLimit + V_Grid*V_GridNo);//啟動策略或價格下跌造成部位不足,以網格下價買齊
end else begin
setposition(V_GridPosition, P_DnLimit + (V_Grid+1)*V_GridNo); //價格上漲造成部位太多,以網格上價賣出
end;
end else begin
V_GridPosition = - P_GridV * maxList(P_Grid - V_GridNo,0);//啟動策略或價格上漲造成部位不足,以網格上價放空
if filled > V_GridPosition then setposition(V_GridPosition, P_UpLimit - V_Grid*V_GridNo);
//價格下跌造成部位太多,以網格下價回補
setposition(V_GridPosition, P_UpLimit - (V_Grid+1)*V_GridNo);//依網格價位將委託設定至目標部位
end;
(文◎XS策略平台團隊)