COCO研究院

 找回密碼
 註冊
搜索
查看: 5887|回復: 18

MQTT報價源

[複製鏈接]
發表於 13-12-13 08:12 | 顯示全部樓層 |閱讀模式
本帖最後由 philipz 於 13-12-13 09:24 編輯

有鑑於很多程式交易朋友在入門階段都花太多心思在界接報價API。
小弟利用MQTT這物聯網通訊協定( Facebook 也利用來傳送即時訊息),建置了一個報價系統
可用網頁體驗MQTT報價速度:TradingBot MQTT WebSocket Realtime Example

下載Sample.jar在自己電腦上執行MQTT報價程式,需先安裝Java執行環境(JRE)。
請注意: 正常交易時間才會有即時報價。
執行方式:到下載目錄中,輸入 java -jar Sample.jar

評分

參與人數 5金錢 +12 收起 理由
TrendRover + 5 感謝分享
dahlia1981 + 2 按一個讚
hchsieh + 2 感謝分享,這是好東西!
titl + 1 感謝分享
paf + 2 感謝分享

查看全部評分

發表於 13-12-13 10:10 | 顯示全部樓層
好快阿 竟然比我的看盤軟體快..
難怪網友 都說 我的果然慢到 叫 lag 到不知道....

雖然我不會程式交易... 目前也無用武之處
(除非可以類似簡單DDE接到Excel 自己簡單建立)
不過還是要感謝版主分享 太強了
發表於 13-12-13 12:19 | 顯示全部樓層
本帖最後由 lwhuang 於 13-12-13 12:21 編輯

是可以用別的程式去接嗎?不知道怎麼用哩....這可以省掉我接報價API的苦力嗎?....正計畫要做接報價API接amibroker的事
發表於 15-1-9 20:55 | 顯示全部樓層
本帖最後由 ufai0005 於 15-1-9 22:11 編輯
lwhuang 發表於 13-12-13 12:19
是可以用別的程式去接嗎?不知道怎麼用哩....這可以省掉我接報價API的苦力嗎?....正計畫要做接報價API接am ...

版主寫的報價系統看起來有一定的技術門檻...
我分享一下比較簡單的....如何使用好了
1.安裝 NodeJS
2.取得版主分享的程式 tradingbot.js (程式不用改,除非你要把SocketServer放在不同的IP)
3.寫一個SocketServer程式.聆聽8888 port(幾乎每種商用程式語言都有提供,VB,.Net系列,Delphi,Java....),並寫出你要如何使用的邏輯.
4.在交易期間開啟您寫的SocketServer程式,再開啟tradingbot.js就可以接收報價並開始跑您的SocketServer邏輯
Ps.會接收以下3種資料格式
台指(應該是大台)
TX00,9230,15,9231,16,9230,9335,9217,2,117477,9256
韓國(我猜)
KOSPI,0,0,0,0,1927.53,1929.1,1915.85,344,296638,1904.65
摩台
TWN,338.9,2,339,16,339,344.4,338.3,49,30116,341.5
接收的字串可以先用逗號split
temp[0].equals("TX00") 才是台指.
temp[1]委買價
temp[2]委買量
temp[3]委賣價
temp[4]委賣量
temp[5]成交價
temp[6]最高價
temp[7]最低價
temp[8]?????可能是單量
temp[9]本日總成交量

temp[10]昨日收盤價(比較不確定)

Noname.jpg

評分

參與人數 2金錢 +7 收起 理由
philipz + 5 好文章,我推薦
lwhuang + 2 已經做好了說

查看全部評分

發表於 15-1-11 18:37 | 顯示全部樓層
ufai0005 發表於 15-1-9 20:55
版主寫的報價系統看起來有一定的技術門檻...
我分享一下比較簡單的....如何使用好了
1.安裝 NodeJS

想起忘記說安裝NodeJS後要npm net mqtt套件...
其實很簡單.只要在dos cmd裡執行以下指令'npm install net mqtt'
安裝net & mqtt這2個套件
若沒安裝執行node tradingbot.js 時就會出現Cannot find module 'mqtt'

安裝要注意一下以下幾件事
1.當初我自己在執行時有報錯..後來是把報錯的路徑資料夾手動建立就好了(當初沒有把錯誤畫面存下來,我也忘了報什麼錯!!),但我不確定你們是否也會報錯.
2.你的tradingbot.js 放在那一個目錄.那你dos command就要在那一個目錄執行.例如你tradingbot.js放c:\那你dos 也要移到c:\才執行npm 指令.不然你安裝完成後仍然會Cannot find module 'mqtt'.
3.執行完後該目錄底下會有node_modules資料夾,裡面會有mqtt & net資料夾,也可在dos下執行npm list指令看是否有安裝成功.

評分

參與人數 1金錢 +5 收起 理由
philipz + 5 太強了

查看全部評分

 樓主| 發表於 15-1-12 08:50 | 顯示全部樓層
ufai0005 發表於 15-1-9 20:55
版主寫的報價系統看起來有一定的技術門檻...
我分享一下比較簡單的....如何使用好了
1.安裝 NodeJS

非常感謝您的撰文分享。完全正確!
格式如同那MQTT 報價網站
temp[0].equals("TX00") 才是台指.
temp[1]委買價
temp[2]委買量
temp[3]委賣價
temp[4]委賣量
temp[5]成交價
temp[6]最高價
temp[7]最低價
temp[8]單量
temp[9]本日總成交量

temp[10]昨日收盤價

台指期漲跌%-0.65005%
漲跌幅-60
買價9170
買量75
賣價9171
賣量7
成交價9170
最高價9191
最低價9170
單量2
總量5649
昨收9230

發表於 15-1-12 10:32 | 顯示全部樓層
本帖最後由 lwhuang 於 15-1-12 10:33 編輯

發現蠻常斷線的,報價就不會動了
  1. Socket連線有問題 !
  2. IOException :java.net.SocketTimeoutException: Read timed out
複製代碼



 樓主| 發表於 15-1-12 14:21 | 顯示全部樓層
lwhuang 發表於 15-1-12 10:32
發現蠻常斷線的,報價就不會動了

目前報價系統仍測試運作中,此問題正在思考解決。
重新啟動報價程式即可。若有能力撰寫者,亦可自行修改用自己的報價源。
發表於 15-1-13 01:17 | 顯示全部樓層
重新啟動報價程式要在2分鐘內執行.不然連主程式timeout就.....
發表於 15-1-13 09:17 | 顯示全部樓層
幾乎不能用耶,每天都會斷,philipz大為什麼你的不會斷?
發表於 15-1-13 12:37 | 顯示全部樓層
本帖最後由 ufai0005 於 15-1-13 12:52 編輯

關於這段話
重新啟動報價程式要在2分鐘內執行.不然連主程式timeout就.....
是錯誤的..我自爆.

原本我以為IOException後ServerSocket就會停掉..
趁中午吃飯前測試一下(故意把網路關掉讓nodejs報價停止),clientsocket的tradingbot.js程式就算timeout斷線.也不會讓jar 程式停止.只要再把tradingbot.js程式重啟就好了.只要jar程式不關掉或停掉.我想漏一些tick應該不會怎樣.頂多運氣不好正好發生在關鍵的進出場點.

而且可以修改程式讓timeout時用各種方式通知你重啟tradingbot.js
或是我們想想辦法看能不能讓tradingbot.js自動重啟之類的.
例如:
tradingbot.js增加寫時間字串到某個txt.每分鐘更新裡面的時間字串.
然後新增一個win排程.bat,用dos指令去讀取檔案裡面字串若距離目前時間超過2~3分鐘就把原nodejs砍掉,再重啟新的nodejs我只是提供一個亂七八糟的想法..不要笑我+_+
Noname.jpg
 樓主| 發表於 15-1-13 14:05 | 顯示全部樓層
ufai0005 發表於 15-1-13 12:37
關於這段話
重新啟動報價程式要在2分鐘內執行.不然連主程式timeout就.....
是錯誤的..我自爆.

透過 Java Runtime.exec 即可在偵測到問題後,主動透過 shell script 去重新啟動。但這仍不是最好辦法。
思考是否在系統架構上,有備援機制,讓即時資料傳送不會間斷。
 樓主| 發表於 15-1-13 14:10 | 顯示全部樓層
lwhuang 發表於 15-1-13 09:17
幾乎不能用耶,每天都會斷,philipz大為什麼你的不會斷?

非常抱歉!那AWS主機執行太多實驗性程式,都已經撤下,因這幾天快市,CPU跟MEM吃比較多,造成此問題。這兩天再觀察系統,必要時升級AWS主機規格。
發表於 15-1-13 15:49 | 顯示全部樓層
philipz 發表於 15-1-13 14:10
非常抱歉!那AWS主機執行太多實驗性程式,都已經撤下,因這幾天快市,CPU跟MEM吃比較多,造成此問題。這兩 ...

所以你也會斷呀?
先解決斷線自動重連
等我那天有空時來寫內建群益報價好了
 樓主| 發表於 15-1-13 16:14 | 顯示全部樓層
lwhuang 發表於 15-1-13 15:49
所以你也會斷呀?
先解決斷線自動重連
等我那天有空時來寫內建群益報價好了

呵呵~我自己有用原本EXCEL報價。
如果仍用群益報價,就會造成使用上的門檻,不然何必花心力去建置 MQTT 報價,就是要大家專心在撰寫交易規則程式。
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-11-25 11:51

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |