亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

真格量化入門課程——②真格量化Python策略編寫思路

發布時間:2020-07-22 13:01:32 來源:網絡 閱讀:1239 作者:51zhenge 欄目:軟件技術

四、如何在真格平臺上做到這一切

現在我們想在真格量化上實現自己的策略,需要怎么做呢?

首先,真格量化使用Python語言編寫策略。我們需要對Python語言有一些初步的了解。與C++或Java語言相比,Python是一種非常方便易用的腳本式編程語言,很適合非計算機專業的用戶來上手量化交易。

舉個簡單的例子,如果直接用C++調用CTP的API進行下單委托,您可能需要寫這些代碼:

真格量化入門課程——②真格量化Python策略編寫思路

在真格量化,您只需要一行Python代碼:

真格量化入門課程——②真格量化Python策略編寫思路
省下的時間,您可以用來研究策略,或者做些更有意義的事情。

4.1平臺IDE不止是開發環境也是運行環境

真格量化由一個簡潔的網頁版Python編輯器、提供海量數據的數據庫和用于運行策略的性能強大的服務器構成。用戶在編輯器里寫好策略代碼后,可以直接去回測、交易模擬盤或交易實盤。用戶無需在本地數據庫、本地編譯環境、云服務器上的各種軟件之間頻繁切換,無需自己花費時間精力去記錄市場數據,也不用為優化網絡、內存等硬件性能而頭疼。

真格量化入門課程——②真格量化Python策略編寫思路

回測與模擬、實盤三合一的設計使得代碼復用性得到了顯著提高。策略研究代碼只需極少量的改動就可投入實盤交易。

真格量化入門課程——②真格量化Python策略編寫思路

4.2 真格量化中的Python策略編寫思路

4.2.1 事件驅動的設計思路

真格量化的策略設計應遵循“事件驅動”的開發思路。當新的“事件”(比如新的價格數據或者賬戶狀態的變化)被推送到策略程序時,程序將調用和這個事件相對應的處理函數來進行相關操作。

真格量化入門課程——②真格量化Python策略編寫思路

這和我們最常使用的順序式編程略有不同。程序執行各個任務的先后順序取決于是否監聽到了特定事件的發生。事件驅動型程序在啟動后就處在一個循環當中。這個循環就在監聽各種事件。真格量化中可監聽的事件及其對應的監聽函數如下表:

真格量化入門課程——②真格量化Python策略編寫思路

這些事件可以分為以下幾類:

真格量化入門課程——②真格量化Python策略編寫思路

舉個例子:

為實現每天開盤前實盤賬戶的自動登錄,我們可以用OnMarketQuotationInitialEx函數去監聽交易所行情初始化這個事件,當事件源(也就是交易所)發送事件時(發出行情初始化信息),監聽該事件的監聽函數(OnMarketQuotationInitialEx)就會收到消息并作出響應(比如登錄實盤賬戶)。

我們也應當注意,行情數據是需要訂閱的(通過SubscribeQuote或SubscribeBar函數)。只有被訂閱的品種的行情才會被持續推送到相應監聽函數(比如OnQuote或OnBar函數)。不訂閱行情就不會有行情數據來驅動相應的監聽函數。

下邊這個例子展示了用不同的事件去驅動不同的操作。比如用“開始事件”驅動“登錄賬戶”函數,用“開盤事件”來驅動“訂閱行情(K線)”函數,用“K線更新事件”來驅動“計算均線”函數。

真格量化入門課程——②真格量化Python策略編寫思路

使用事件驅動的設計思想,我們可以通過監聽到的各種“消息”和響應函數的各種“指令”將程序的各部件連接起來。

對于事件驅動型程序,我們還可以將其中各個組成部分劃分為“元素”和“操作函數”:

元素包括:

事件源

事件監聽器

事件對象

操作函數包括:

監聽動作函數

發送事件函數

調用監聽函數的響應函數

我們在編寫策略時應注意區分元素和操作函數,了解一個操作需要哪些事件的發生作為啟動條件,及監聽到一個事件發生后可以采取哪些動作。

4.2.2 數據訂閱

不同周期的行情訂閱:

在事件驅動部分,我們已經介紹了策略程序要依靠訂閱行情來驅動。在回測或實盤交易時,我們可以通過選擇不同的時間周期參數,來指定策略在相應的”時間周期“上進行操作(例如策略是在分鐘級別交易還是在Tick級別交易)。

真格量化入門課程——②真格量化Python策略編寫思路

在回測中,如果”時間周期“選擇“Tick”則可以通過SubscribeQuote獲得歷史的tick行情。”時間周期“選擇”分鐘“則可通過SubscribeBar函數獲得1~240分鐘這些不同分鐘周期的歷史K線行情。”時間周期“選擇”每天“則可以通過SubscribeBar函數訂閱”天“、”星期“、”月“、”季度“、”年“這些更長周期的歷史K線行情。

在實盤交易中,如果”時間周期“選擇”Tick“則可以通過SubscribeQuote獲得最新的tick行情。”時間周期“選擇”分鐘“則可通過SubscribeBar函數獲得1~240分鐘這些不同分鐘周期的最新的K線行情。”時間周期“選擇”每天“則可以通過SubscribeBar函數訂閱”天“、”星期“、”月“、”季度“、”年“這些更長周期的最新K線行情。

使用SubscribeBar函數應注意,其BarType參數應當與“時間周期”參數對應:

真格量化入門課程——②真格量化Python策略編寫思路

例如”時間周期“選擇”每天“,SubscribeBar函數的BarType參數可以根據需要寫成BarType.Week,BarType.Month, BarType.Day等。”時間周期“選擇”分鐘“,SubscribeBar函數的BarType參數可以根據需要寫成BarType.Min3,BarType.Min15,BarType.Min等。

而對于過去一段時間的歷史行情,比如2018年12月1日到2019年3月1日之間的所有日K線,可以通過GetHisData函數來查詢。

真格量化入門課程——②真格量化Python策略編寫思路

4.2.3 交易相關處理

我們在交易中最常處理的就是與賬戶有關的各種信息。

真格量化中與賬戶相關的信息,都可以視為“對象”。比如賬戶本身可以作為一個對象,可以調用其各種“方法”,比如登錄、查詢成交、進行風控等。

真格量化入門課程——②真格量化Python策略編寫思路

例如,賬戶的登錄方法:

真格量化入門課程——②真格量化Python策略編寫思路

而查詢到的賬戶的成交、持倉等信息,本身也可以作為對象,有與之對應的”屬性“和”方法“。比如對于一個”委托對象“可以查詢其委托價格、數量等屬性,以及查詢委托是否可撤等方法。

真格量化入門課程——②真格量化Python策略編寫思路

例如,通過監聽委托狀態變化(OnOrderChange)來查詢委托的一些屬性:

真格量化入門課程——②真格量化Python策略編寫思路

4.3 Python應當怎么寫

對于Python初學者,可以參考“菜鳥教程”,學習基礎的語法。當您掌握了Python的循環控制、數組和函數的知識,就已經可以使用真格量化的大部分功能。

真格量化入門課程——②真格量化Python策略編寫思路

對于 Python 編程有一定經驗的用戶,可以仔細閱讀“真格量化API文檔”(這里API文檔的重要程度,相當于飛行手冊對于飛行員的重要程度,您在真格量化中80%的問題都可以在API文檔里找到答案)以及參考“Python for Finance-Analyze Big Financial Data”等專門介紹Python在金融領域應用的教程。在真格量化微信公眾號(在微信搜索“真格量化”)和知乎(在知乎搜索“真格量化”)上也有不少與真格量化相關的Python編程和策略設計的技巧,能給您編寫自己的量化交易策略提供靈感。

真格量化入門課程——②真格量化Python策略編寫思路
真格量化入門課程——②真格量化Python策略編寫思路

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大足县| 浦江县| 雅安市| 延吉市| 台北县| 虹口区| 巴林左旗| 镇原县| 横峰县| 化德县| 山东| 望都县| 金乡县| 平顺县| 青田县| 宜州市| 板桥市| 岫岩| 新乐市| 西丰县| 曲沃县| 平定县| 锡林郭勒盟| 包头市| 楚雄市| 筠连县| 东乡县| 遂平县| 印江| 浦北县| 双鸭山市| 东城区| 英德市| 吕梁市| 兴安县| 博客| 铜鼓县| 安多县| 巢湖市| 南江县| 迁安市|