vnpy + shioaji 團隊交流

回覆文章
oeng
文章: 1
註冊時間: 2021-09-27, 16:52

vnpy + shioaji 團隊交流

文章 oeng »

我是一個使用 mac 系統的使用者, 但是目前市面上主流 xq,
Multicharts, metatrader 交易系統大多是 window 平台,
選擇不多的情況下發現了 vnpy, 又可以搭配 shioaji,
從摸索到開發出自己得策略, 所花費的時間也需要好幾個月
目前要來升級到 vnpy 2.5.0, shioaji 3.3.dev3,
發現 vnpy 的回測與策略引擎寫得太過複雜, 每種策略引擎是不相容的
單純寫策略太過複雜, 避免升級與改版成本太高, 這次乾脆來個大升級....

計畫使用同一個引擎來達成交易與回測, 架構與說明如下:
引擎命名為 "自動交易引擎 automated_trading_engine"
目標:無人看守自動登入, 自動登出, 交易時段自動交易,

vnpy: version 2.6.0
gateway: shioaji version 3.3.dev3. (相容各種 gateway)
主架構: 策略, 交易邏輯, 回測統計, 盈利分析分別獨立出來可以交替使用


1. 策略 strategy
功能:條件達成後傳遞訊息, 目的越簡單越好

追蹤的商品與達成條件
條件成立後會送訊息給交易邏輯(algo)
例如:觸價單策略, 交易停損停利單策略

2. 交易邏輯 algorithm
功能:傳送訂單、訂單成交回報、刪除訂單等等.

交易邏輯基本上是固定的, 收到買賣訂單送出後, 等待完成交易再送出交易完成訊號
策略傳出訊號, 交易邏輯接手, 處理以下項目達成自動交易
a. 判斷風險
b. 訂單處理: 送出訂單, 確認訂單成交與否,
c. 成交資料: 收到成交資料之後會傳給盈利分析(pnl), 回測統計(backtesting statistics)

3. backtesting statistics
功能:回測統計

4. pnl statistics
功能:回測統計的盈利分析

5. strategy statistics
功能:統計分析



---

策略範例:觸價單策略

這是一個最簡單的策略,
只需要一點點的基礎就可以寫出自己的策略

代碼: 選擇全部

if self.touch_price <= tick.bid_price_1:
    signal = SignalData()
    signal.datetime = now
    signal.msg = f"BUY {tick.vt_symbol} @ {tick.ask_price_1}"
    signal.symbol = tick.vt_symbol
    signal.action = Direction.LONG
    signal.price = tick.ask_price_1
    signal.ticks = [tick]
    self.signal_maps[now] = [signal]
    self.trading_engine.on_signal(now, [signal], self)
目前引擎已經大致完成約70%, 完成後會分享在 github

---

vnpy 的優點
1. 架構簡單, 開法者容易加入自己的需求, (看原始檔案目錄結構的名字就可以猜測到該功能為何)
2. 支援主機端、客戶端架構 (rpc service)
3. 多線性處理系統已經內建, 設計上幾乎不用了解這些複雜的原理, 加速開發流程

vnpy 的缺點
1. 初學者不容易上手
2. 過多的策略引擎, 算法引擎....
3. PyQt5 圖形介面效能不優, 官方目前正在開發 vue web 介面
4. 無內建指標
5. 訂單與成交系統不能支援組合單, 這是一個大麻煩, 修改後會影響到全部
6. 支持數據元不多, 只有 tick, 1分k數據, 但是自己加入數據元不會很難
7. 無修改訂單功能



---

關於我, 程式設計都是自學而來, python 不算是我的強項, 之前還很討厭寫 python
因為討厭它連空格排版結構都會導致錯誤, 用最久的 objective-c 也快要被 apple 淘汰掉.
目前交易是新手, 可不是跟風的那群人, 在我 long stay 歐洲的時候, 聽 podcast 的時候
突然開竅, 驚覺這十年來完全忽略了投資, 那時候就下定決心要好好研究. 這對我來說是一個
5-10年計畫, 歡迎大家來截長補短, 一起研究, 不限北中南, 也不限台灣, 我住北部, 台北
可見面聊, 其他地區視訊討論


1. vue (官方 web 介面)
2. 數據收集
3. 指標開發
4. 測試人員
5. 資料庫
6. 其他


以上都是軟體相關, 假如有其他專長者, 也歡迎加入 例如財務分析, 總經分析....

有興趣者透過 telegram 私下傳送給我 (https://t.me/oengoeng)
請說明想要負責的部分,
附帶簡介優, 專長, 交易商品...等等

By Oeng
最後由 oeng 於 2021-09-27, 19:51 編輯,總共編輯了 2 次。
生魚片
文章: 29
註冊時間: 2021-09-01, 13:56

Re: vnpy + shioaji 團隊交流

文章 生魚片 »

VNPY 2.6的Shioaji gateway我會修正。
建議順便把DolphinDB放進來
這是我會主動處理的項目
CTLING
文章: 3
註冊時間: 2021-09-25, 14:26

Re: vnpy + shioaji 團隊交流

文章 CTLING »

支持 +1
kangyulee
文章: 4
註冊時間: 2021-09-30, 15:30

Re: vnpy + shioaji 團隊交流

文章 kangyulee »

Mac/iOS 開發者 +1
對我來說比較大的問題是 mac 下單問題,以及 Python 的性能。

不知道有沒有辦法克服。
eddie
文章: 2
註冊時間: 2021-09-03, 11:43

Re: vnpy + shioaji 團隊交流

文章 eddie »

我也是想用vnpy +shioaji的新手
目前還在k原始碼
很開心有人對vnpy 也感興趣
Vnpy還懂的沒很深
目前感覺用的缺點是回測時沒有自訂策略結合買賣點的k線圖
就是像像multicharts那樣
等研究差不多會先搞這個
希望有點貢獻
eddie
文章: 2
註冊時間: 2021-09-03, 11:43

Re: vnpy + shioaji 團隊交流

文章 eddie »

生魚片 寫: 2021-09-27, 17:41 VNPY 2.6的Shioaji gateway我會修正。
建議順便把DolphinDB放進來
這是我會主動處理的項目
請問2.6 gateway會release出來嗎
wujack53
文章: 1
註冊時間: 2021-10-29, 10:03

Re: vnpy + shioaji 團隊交流

文章 wujack53 »

目前使用backtrader。有興趣轉到VNPY。
生魚片
文章: 29
註冊時間: 2021-09-01, 13:56

Re: vnpy + shioaji 團隊交流

文章 生魚片 »

回覆文章