一、 前言
在程式交易的漫漫長路中,交易紀律的養成是我們一貫的堅持,不論是交易邏輯發展、報表檢視、資料維護等等,我們每一個步驟都小心再小心,謹慎再謹慎。但是,再完美的準備工作,程式實際上線時,往往還是會有意料外的狀況發生。根據莫非定律,最糟的狀況,總是來自這些意外。
以我們的經驗,九成以上的意外,都來自交易系統的不穩定,包括資訊源異常、交易平台當機、網路斷線、倉位或損益統計錯誤等等。
這些,我們稱它為[低級錯誤]。
那麼,有沒有降低,甚至避免這些低級錯誤的方法的?
有的,他就是[SOP]。
二、 SOP的精神與發展重點
SOP的精神,在於壓縮處理時間,同時確保目的的達成。比如說,當盤中資訊源異常時,要如何快速且正確的將倉位調整到位? 這件事處理以來的步驟相當繁瑣,至少要修正資訊源、確認交易平台資料正確更新、交易程式正常運行、倉位應該下多單還是空單? 下單的商品是否正確等等。而再根據莫非定律,出錯的時候往往就是行情最大的時候,在這種快速洗刷的行情下,如何冷靜的補單?
這時候,SOP就是我們最好的幫手。
有了SOP,在一團混亂下,我們可以依序檢查是哪個環節出了問題,導致資訊源出了狀況。知道如何取得正確的資料、如何匯入並重啟交易平台,再一步步將正確的倉位補回來。
SOP的建立,可以讓損失降到最低,甚至反敗為勝。
下面,我們就以程式交易中,盤前、盤中、盤後最常遇到的狀況為例,建立一套對應SOP來處理。
SOP在建立時,可以把握下列幾個重點:
1. 簡潔:對於要處理的狀況、如何處理的步驟,都要用最簡潔的方式表達出來,這樣才能符合要求。
2. 執行效率:除了正確達成目標外,還要用最有效率的方式完成,才能節省時間。
三、 SOP建立範例(盤前SOP)
盤前最重要的幾件事情,不外乎交易的資訊源是否正常收取,交易平台(Multicharts)運作是否正常、下單機是否正常運作、下單商品契約是否正確等事項,在盤前有限的時間內,我們要將這些事情完整且有效率地進行確認,是一件簡單卻又不簡單的事情。
下面,我們舉一些盤前會需要處理的事情,並針對這些事情設計一個SOP。
SOP需處理的狀況:資訊源檢查、交易平台檢查、交易商品檢查。
以這個例子而言,在一開始建立時,我們需要將所有事項,一個一個的寫下來:
我們可以發現,這個SOP雖然詳細,但是步驟稍微多了點,共9個步驟。我們試著將02-03的步驟合併,以符合簡潔的要求。所以,我們將02-03的步驟,改寫為[重開點精靈],其他的部分也一樣,經過簡化後的SOP如下:
之後,我們覺得[03若不一致,於08:45修正]有點多餘,變將它放到備註當中,並做一些敘述上的修改。於是,SOP改為:
至此,我們已經成功的將原先SOP簡化了3個步驟,而不失其本意。
另外,在實際執行SOP一段時間後,我們發現Multicharts若不重開的話,倉位計算可能會錯誤,這樣就不符合原先我們的目的了。因此,我們將原本的SOP中加入[重開MC]的動作。
之後又執行了一段時間,我們發現[05、檢查商品月份是否正確]這個動作在執行時,若發現錯誤,其實會需要回頭修改資訊源等相關設定,等於重頭再來一次,這樣就不符合效率的要求了。所以,我們把[05、檢查商品月份是否正確]這個步驟移到第一個,這樣檢查完商品之後,就可以一路順利的做下去,不需要回頭重做其他步驟了。其結果如下:
如此一來,盤前SOP的建置就已經告一段落了,日後如果有新的狀況,也可以依上面的方式自行增減步驟,便可達成資訊源檢查、交易平台檢查、交易商品檢查這三大目的。