今天的目標是幫GridBot增加下單的函數(實際上這實作有些限制,所以我先把下實單的部分註解掉了),下實單的步驟大致上如下面updateOrder函數裡面所表示的,分成取消訂單->更新庫存->下單三個步驟,最前面的return是用來檢查時間,在盤中零股搓合時間的前後不要動作。這個函數呼叫的位置在之前的jobs_per1min裡面,文章最後面的時候會出現。
下圖是取消訂單和更新部位的部分,大致上的功能和前一天弄得差不多,不過加上了針對006208/Cash的錯誤檢查,在這個情況下分母是現金,需要特別處理。
這邊則是下單的部分,首先看目標部位和現在的部位相差多少,然後看這個差值的正負號決定掛買單還是賣單。如果差距過小就不掛單,因為有手續費低消這樣會滿虧的。這邊我 api.place_order的部分是註解掉的不讓他掛實單,只讓他列印買賣的股數和價格。
接下來這些是script的部分,開頭多了getCash函數,它是用來計算交割金+銀行餘額用的。在帳戶裡沒有其他股票買賣只有跑網格機器人的情況下,getCash回傳值的增減就可以代表網格機器人裡面money那一項數字的增減。但是如果帳戶裡同時跑其他機器人或者交易其他股票的話就比較麻煩了,這就為什麼我現在先把下實單的部位註解掉,等我把庫存賣掉後再請一些假盯著機器人讓他下實單測試。
多了getCash函數之後,網格裡面的calculateshareTarget也做對應的修改。綠框的部分是之前漏掉的東西,部位看起來怪怪的,把它加上去。
這邊是執行結果
網格機器人的部分就先寫到這裡結束,再來可能先整理一下手上的程式碼,之後回頭弄日K交易策略。
Note: 目前下實單的部分有bug,等解掉再更新