shunyulu
發表於 17-8-4 23:20
chang91348 發表於 17-8-2 18:36
又來麻煩版主了,不好意思,因為學C#才幾個月的時間,對於物件導向訊息傳遞還不太清楚,我先說明我對於 ...
在OSQuote事件裡面當你的下單條件到達後, 呼叫SendOverSeaFutureOrder.
如果您程式不熟, 在SendOverSeaFutureOrder程式中不要去下單, 丟訊息出來看就好. 否則...嘿嘿嘿....錢錢拿來花.
benlee1104
發表於 17-8-6 16:14
感謝分享, 很實用, 謝謝!!!
chang91348
發表於 17-8-6 22:12
本帖最後由 chang91348 於 17-8-6 22:15 編輯
謝謝版主和先進的回覆,因為不是科班出身,所以都是買書以及網路拼湊出來程式,經由網路google 的結果,得到一個複雜的結果,還請各位指教...
經由檢視程式碼後,海期下單原本一開始以為是從 OverseaFutureOrderControl下單,可是卻是在skOrder下有一個事件
private void overseaFutureOrderControl1_OnOverseaFutureOrderSignal(string strLogInID, bool bAsyncOrder, OVERSEAFUTUREORDER pStock)
{
string strMessage = "";
m_nCode = m_pSKOrder.SendOverseaFutureOrder(strLogInID, bAsyncOrder, pStock, out strMessage);
WriteMessage("海期委託:" + strMessage);
SendReturnMessage("Order", m_nCode, "SendOverseaFutureOrder");
}
似乎是海期下單後,在skOrder接受到訊息在此用SendOverseaFutureOrder下單的; 所以我在SKOSQuote 內新增了
public Form1 Mainform();
然後在 Form1 內
skosQuote1.Mainform=this;
//再自設一段程式碼
public void SendOFOrder(string strLogInID, bool bAsyncOrder, OVERSEAFUTUREORDER pStock)
{
skOrder1.SendOFOrder(strLogInID, bAsyncOrder, pStock);
}
而 SKOrder 內則定義 SendOFOrder如下(其實就是overseaFutureOrderControl1_OnOverseaFutureOrderSignal事件的程式碼)
public void SendOFOrder(string strLogInID, bool bAsyncOrder, OVERSEAFUTUREORDER pStock)
{
string strMessage = "";
m_nCode = m_pSKOrder.SendOverseaFutureOrder(strLogInID, bAsyncOrder, pStock, out strMessage);
WriteMessage("海期委託:" + strMessage);
SendReturnMessage("Order", m_nCode, "SendOverseaFutureOrder");
}
在SKOSQuote 內運算達到條件時,則呼叫
Mainform.SendOFOrder(ID,Yes,OSOrder);
請教諸位,這樣的程式碼可行嗎?
alexliou
發表於 17-8-7 19:16
應該可行
不過我想你這行可能是Typo
public Form1 Mainform();===> public Form1 Mainform;
另外在呼叫SendOFOrder()時, 你會提供適當的參數;
chang91348
發表於 17-8-7 22:29
謝謝版主的糾正,確實是寫錯了,半路出師,常常把C#和VB搞錯,什麼時候要加()到現在還不是很清楚,常常是Visual studio提醒我的,感謝你
cory8249
發表於 17-8-9 15:37
小弟最近也剛碰程式交易
但覺得 MultiChart 功能太陽春
決定來自己接API
目前我把部份C#報價轉成 REST API 透過 Python 結合資料庫
感覺未來比較有彈性
不知道板大有沒有考慮這方向 ?
alexliou
發表於 17-8-10 08:04
cory8249 發表於 17-8-9 15:37
小弟最近也剛碰程式交易
但覺得 MultiChart 功能太陽春
決定來自己接API
我目前是用MultiChart 在作策略的回測與開發
其實也是滿簡便好用的
但正如你說的 MC的功能有點陽春(不過原廠經常在update 與upgrade)
缺乏目前正夯的AI (deep learning)的功能
Python 我不熟, 不過我知道它有許多 支援deep learning 及其他功能的 Package
擴充性是非常高的
您所提及的方法應該是一個不錯的solution
唯一需要注意的是Python是一個Interpreted language, 天生的限制是速度不夠快
以下這個部落格文章 有做一個簡單比較
http://www.financial-hacker.com/hackers-tools-zorro-and-r/#more-89
他所推薦的platform "zorro" 有免費的版本可以使用
但學習使用的門檻不低, 而且要自寫資訊源又得使用付費版
所以你如果Python很熟, 而且交易頻率不適非常高的話, 我認為你的approach 較佳
cukie
發表於 17-8-10 08:49
感謝兩位的分享{:4_113:}
kingwang
發表於 17-8-10 22:37
感謝分享, 很實用, 謝謝!!!
vaca1
發表於 17-8-17 23:17
太強了
還open source
給你一個讚
本人註冊帳號第一推就給你了
chang91348
發表於 17-8-27 22:26
請教版主,國內報價要GetTick時,須輸入Market/Stockidx/nPtr, 如果要查選擇權時,須輸入什麼
?
chang91348
發表於 17-8-28 13:31
剛才試了一下,可以從OnNotifyTick裡得到MarketNo,Stockidx,可是nPtr不知如何得知最近一筆是在那個位址,這樣GetTick的目的是?
alexliou
發表於 17-8-29 13:40
chang91348 發表於 17-8-28 13:31
剛才試了一下,可以從OnNotifyTick裡得到MarketNo,Stockidx,可是nPtr不知如何得知最近一筆是在那個位址,這樣 ...
27樓最後一段有討論到GetTick
http://www.coco-in.net/forum.php?mod=redirect&goto=findpost&ptid=51908&pid=732669&fromuid=9430
我認為這個function很少有機會使用到
唯一可能是把它包在迴圈裡, 用來回補部分資料
chang91348
發表於 17-8-29 15:47
謝謝版主,看來GetTick的用處真的不大,原本以為可以拿來最後一筆的資料,看來還是得從OnNotifyQuote來拿了
alexliou
發表於 17-8-30 23:46
本帖最後由 alexliou 於 17-8-31 00:19 編輯
chang91348 發表於 17-8-29 15:47
謝謝版主,看來GetTick的用處真的不大,原本以為可以拿來最後一筆的資料,看來還是得從OnNotifyQuote來拿了 ...
剛去群益官網看了一下, 發現新版的API(2.13.7)出來了,
新版增加了一個功能RequestLiveTick(), 可以僅訂閱即時報價,
主機傳回的報價資料不再必然包括Historical Ticks,
這使得利用GetTick()來回補Historical Ticks的 機會提高
群益這次把Historical Ticks 和 RealTime Ticks 區分開來 在架構上算是一個進步
因為有的User只需要RealTime Ticks, 不需要餵他多餘的東西, 浪費傳輸資源
但這樣的區分還不夠, 因為如果User 還需要RealTime Best5的資料
新版並沒有提供單獨訂閱Best5的 function, 還是得透過RequstTicks()
而RequestTick()是個三合一套餐(RealTime Ticks, Historical Ticks, Best5)
Historical Ticks 又和RealTime Tick綁在一起了
(但2.13.7版的傳輸速度極快, 而且需要三合一綁定的機會頗多, 綁在一起的impact不大 )
頁:
1
2
3
4
5
[6]
7
8
9
10
11
12