規則定好了,還在手動執行
就算規則已經定下來,靠人手執行還是會被盤中時段綁住,會錯過條件成立的那一刻,同樣的情形每次判斷得還不一樣。可是直接把程式接到實單,結果不好時你分不清是規則錯了還是程式錯了。把規則寫成程式,和能驗證這份程式是否照規則運行的環境,這兩件事得湊齊才成立。
做些什麼
-
把規則變成條件式
把進場、出場、停損、部位、禁止再次進場這類條件,從一句話變成程式判斷得了的式子。還留著含糊的條件,就用提問一路收窄到寫得下來為止。
-
能拿歷史資料跑的環境
讓同一份程式可以在過去的區間上跑一遍。手續費、滑價、成交這些前提取了什麼值,也一併寫下來,因為沒寫前提的結果是讀不了的。
-
串接券商與交易所
下單、成交、查餘額都走真實 API,憑證放在程式之外管理。各家的開放範圍與條款不一樣,串之前先確認。
-
先從模擬帳戶開始
接實單之前,先把同一份程式放到模擬環境裡跑。訂單是不是照規則送出去,最好在真金白銀上場之前就看清楚。
-
該停的時候停得下來
連線斷掉、訂單被拒、同一筆訂單要送第二次、當日虧損碰到上限,這些情況下該怎麼做,都寫進程式裡。
-
記下下了什麼單、為什麼下
哪個訊號、什麼時候、下了什麼單、怎麼成交的,都留在日誌裡。以後要改規則時,看的就是這份紀錄。
交付的文件
把策略規則整理成人讀得懂的句子,寫明驗證跑過的區間與前提、日誌怎麼讀、怎麼啟動與停止。至於績效怎麼解讀、要不要投,那是這份文件之外的事。
這樣進行
-
整理規則
把你現在用的規則用文字寫下來寄過來,試算表或筆記的原樣也可以。
-
確定條件式與範圍
先改寫成程式判斷得了的形式,再定下做到哪一步、需要多久。
-
實作與驗證環境
策略程式、跑歷史資料的環境、串接,一併做出來。
-
模擬運行與交接
在模擬環境裡跑過確認之後,把程式碼儲存庫、啟動方式與文件交給你。
適合這些情況
- 規則寫在試算表或筆記裡,現在還靠手動執行的人
- 想把正在用的規則放到過去的區間上跑一遍看看的人
- 打開了券商 API 文件,卡在認證與下單上的團隊
常見問題
- 會賺錢嗎?
- 我們不承諾績效。交付的是照你定的規則運行的軟體,以及能拿歷史資料檢驗這些規則的環境。策略行不行、怎麼決策、盈虧如何,都在你這邊。
- 策略也幫忙想嗎?
- 策略由你來定。我們負責把規則寫成程式並做成可驗證的樣子。規則現在只是幾句話也沒關係,我們會一路提問,直到它變成程式判斷得了的條件。
- 這算投資顧問或代客操作嗎?
- 不算。我們只做軟體開發,不推薦標的或買賣時點,也不代為操作帳戶。帳戶與憑證始終在你手上。
- 能串接哪些市場?
- 只要券商或交易所有開放下單 API 的市場都可以串。不過各家的開放範圍與自動下單相關條款不一樣,告訴我們你用哪一家,我們先確認可行範圍。
- 原始碼歸誰?
- 歸你。程式碼儲存庫、啟動方式與文件一併交付,讓其他開發者能接手。
- 做完之後也能幫忙維運嗎?
- 這項服務做到交付為止。如果之後還需要持續照看,可以轉成維護代管繼續。