
尋得一個pyton寫的策略值得研究一下。IDLE 0 # 定義一個 標記量表示空閑狀態LONG 1 # 定義一個 標記量表示持多倉狀態SHORT 2 # 定義一個 標記量表示持空倉狀態def (): # 實現一個取消所有掛單的功能函數while True: # 循環執行 _C(.) # 讀取當前所有掛單 是一個數組要是通過某種方式去判定, 這個數組的長度, 等于0的話, 那就呈現出, 此數組正處于, 沒有掛單之后的這種狀態。結束# 從while那個循環里面退出來, 不存在掛著的單子表明不用去取消了。至于for循環中的order, 在經過上邊if檢測而能夠執行到此處時, 這意味著數組的長度并非為零, 存在掛單情況, 進而對數組進行遍歷。根據遍歷的時候, 訂單信息里的Id, 取消那個Id的訂單, (order.Id) #。讓Sleep(1000)來控制一下取消的頻率, 在每次進行取消操作的時候, 使其暫停1秒鐘。以def main()來定義, 此為策略主函數, 在策略啟動之后, 會從這里開啟執行進程。state被設定為IDLE, 此為給策略去定義出一個狀態變量, 并且將其初始化為處于空閑的那種狀態。下達一個指令, 為策略去定義一個下單的方向變量, 將其初始狀態設定為空的字符串。while True: # 執行策略邏輯循環倘若.IO空字符串這個操作成立, 那就意味著要檢查是不是與期貨公司服務器建立了連接, 而且登錄已經獲取成功。(_D(), 已經連接)通過()來設置要做操作的合約, 在此處將其設置為, 也能夠做成參數, 于策略參數上面予以設置。等于_C(點), 用于獲取K線數據的狀況, 該狀況是在策略參數界面以上做出K線周期為1小時的設置之后, 所獲取的即為1小時時長的K線數據。如果數據數量范圍小于二十一, 使用BOLL指標的預設參數, 為此K線數據的柱狀數量必須足以達到二十一, 才可核算算出有效的BOLL指標。# 不滿足條件的情況下跳過后面的代碼重復循環布爾值等于技術分析庫中的布林帶函數計算所得結果, 當列表長度大于或等于二十一時, 執行到此處, 運用該函數計算布林指標數據, 布爾相關的這個值是一個二維列表, 此二維列表中的一項是上軌數據, 此二維列表中的一項是中線數據, 此二維列表中的一項是下軌數據。利用, 那個, 畫線類庫的接口, 去繪制, K線, 而關于, 畫線類庫的代碼, 能夠, 在策略廣場之中, 尋覓到。調用外部的, 名為“up”的, 與布林線相關的, 涉及時間的, 類庫接口, 來繪制上軌。提取, “中間的”, 布林線, 時間, #進行描繪中線的操作。于外部執行, 針對“向下”的情況繪制布林線下軌, 關聯此時的時間。pos _C(.) # 讀取當前賬戶持倉信息要是當前賬戶存在持倉, 而在無持倉的狀況下, 此時len(pos)等于0, 那么當len(pos) 1的時候 , 情況又不一樣了。要是持倉數據里 持倉的數據方向 呈現出一種情況 或者是呈現出另一種規定的情況 那么 就要依據此 針對運行的策略 去調整狀態變量state所具有的值。state LONG # 設置為持有多倉狀態那如果位置種類等于, 或者位置種類等于, 這種情況呢。state SHORT # 設置為持有空倉狀態elif len(pos) 0 : # 無持倉時state IDLE # 持倉狀態設置為空閑else :引發 “錯誤 長度位置大于1”, #當檢測到存在多個倉位時, 進行報錯, 而單獨運行這個策略, 是不會產生多個倉位的, 要是出現這種情況那就表明存在異常。要是當前處于空閑狀態, 或者處于持有空倉狀態, 且K線BAR結束時判定價格突破上軌那就開展未來進一步評判, 前提是.Close大于boll這個條件滿足 , # 同時只要.State等同于 IDLE 或.State形同于 SHORT發生#。處于持有空倉狀態時, 將其平為倉, 如有空閑狀態就實施開啟多倉的操作, 對交易方向設置用來表示它的變量。if state IDLE: buy # 設置交易方向變量為開多倉else : # 設置交易方向變量為平空倉.() # 調用交易方向設置函數設置方向根據對于rb這個品種而言的當前價格, 加兩跳, 執行.Buy函數, 下單量為1手 , 此函數第一參數是價格, 第二參數即該1手下單量, 于.Close 2價位吃單。() # 下單后嘗試取消所有掛單未成交elif, 當前收盤價, 小于, 布林線下軌, 并且, 狀態, 等于, 閑置, 或者, 狀態, 等于, 做多, 這時, 判斷, 形成了, 價格, 對下方軌道線, 產生的突出穿過行為。假如是持有多倉的狀況, 請進行平多倉操作, 要是處于空閑狀態, 那就開空倉, 進而設置交易方向變量。if state IDLE: sellelse : .().Sell(.Close - 2, 1)()else :