請教如何將兩個C#專案合併成一個?
圖1 是凱基的C# API下載網址:http://www.kgifutures.com.tw/content/order04.html
圖2是C#寫成的動態連結DDE參考網址:http://www.kenming.idv.tw/c_dde_c_ua_pclm_client_c_cm_a_n_a_lao_cc
如果,我想把兩個專案合併為一(後者加到前者),請問,應如何處理? Thanks.
本帖最後由 ambercrystal 於 15-1-11 19:21 編輯
G 大, 我將以前寫在凱基 API 的程式精簡一版的 C# Project 放在附件讓你參考, 裡面的凱基 API dll 都已更新到最新版, 有需要的朋友也可以直接拿去修改比較快.裡面有用到凱基TradeCom下單功能和QuoteCom報價功能, 凱基API台灣期貨的報價比群益報價快許多, 可以直接接他們的QuoteCom報價, 就儘量不需要再接 DDE.不過我還特別保留程式一段是外接 MT4 DDE 讀取摩台近月報價的功能, 那部份也是掛 NDDE.dll 從那裡你可以看到如何抓 DDE 報價的範例程示如何寫, 你如果是接台灣期貨商的 DDE, 差別只在與 MT4 DDE 有不同欄位的寫法.
1. 使用時需要在 account.ini 依序以逗號把 broker id (凱基就是F開頭的分公司代號),帳號,身份証號碼,密碼填入.
2. 按登入鍵就能直接登入, 不需重覆輸入帳號密碼_
3. 商品我放了一個大台一月合約, 你可以自己改, 商品代號都在每次凱基API會下載的zip檔裡有詳細列表和名稱對照,你可以自己查.修改後的商品名, 退出後會自動保存在 symbol.ini, 但需要退出後重新登入才會註冊新價格, 這部份你可以自己再改成你要的方式, 你可以參考凱基QuoteCom範例程式的寫法如何註冊多商品價格.
4. 當開市時有價格跳動, 按加減按鈕會自動抓價格再累加減一, 按R按鈕清除下單價格, 選"直接"就是下單不再出現確定窗口, 選"市價"我當時作了兩個方式可以改, 現在開的方法是用上下一檔直接作買賣價(你可再程式裡多加滑價點), 備用的方法才是送市價單, 你自己改程式即可.微
按"刪單"會全部作刪單, 分別刪單功能我沒有設計, 全刪再下新單比較快, 因為凱基API刪全部單非常快速.
5. MT4 DDE 部份, 我是接的 Avatrade 免費的模擬帳號, 你谷哥到他們網站申請模擬帳號並下免費的 MT4, 在 MT4 選項裡把 DDE Server 功能開啟, 不用開 Excel, 在我程式的摩台功能那個選項開起來, 就能接收到 MT4 傳來的摩台報價, Avatrade 還有許多免費外期近月的報價.我想你是想接台灣看盤軟體的 DDE, 你在程式裡 內 #region MSCI_TAIWAN 那裡就可以看到如何調用 NDDE 的功能.
後來凱基外期API有提供報價功能, 但沒有再作那部份功能, 不過外期下單功能有完成, 但寫在另一個 project, 這個 project 是台灣期貨下單和報價功能.
6. 價格即時線圖圖表只是用最簡單的有比之前價格+/-1才畫一點, 並放最簡單的階梯線, 沒有在上面作太復雜功能, 因為這程式原來只是為了作下單和幾個交易策略(這版精簡版已移除).這個程式為了與接其他期貨商API作區別, 在程式的 icon logo 就直接用凱基公司的 logo, 這樣使用比較好區別, 你在 project 裡可以自己換 icon.
有什麼問題可以用我私下留給你信息裡的 email 討論, 如果其他朋有問題也可以私下留言.
本帖最後由 googleandy 於 15-1-10 17:16 編輯
補充說明: 不必詳細,只須告訴我大方向該如何做就可以了. 另外, 動態連結用的EXCEL檔如下:
ambercrystal 發表於 15-1-11 19:16 static/image/common/back.gif
G 大, 我將以前寫在凱基 API 的程式精簡一版的 C# Project 放在附件讓你參考, 裡面的凱基 API dll 都已更新 ...
非常感謝A大無私分享,
而且還花時間詳細說明.
感恩! ambercrystal 發表於 15-1-11 19:16 static/image/common/back.gif
G 大, 我將以前寫在凱基 API 的程式精簡一版的 C# Project 放在附件讓你參考, 裡面的凱基 API dll 都已更新 ...
碰到錯誤訊息如上,
請教 A大( 或任何大大),這應如何解?
thanks.
googleandy 發表於 15-1-11 22:14 static/image/common/back.gif
碰到錯誤訊息如上,
請教 A大( 或任何大大),這應如何解?
Futures Company's APIs are used to design at different threads.As such that will be cross-thread and the quickest way to resolve is to build the API projects at the "release" mode.BTW, I only put the dlls at the "release" folder other than "debug" folder.For details you might call me at Skype.I leave my Skype id at private message.
ambercrystal 發表於 15-1-11 22:32 static/image/common/back.gif
Futures Company's APIs are used to design at different threads.As such that will be cross-thread ...
嘿! 獲得初步成功,但還有很多要努力,
感謝 A大!
本帖最後由 ambercrystal 於 15-1-12 23:21 編輯
googleandy 發表於 15-1-12 21:39 static/image/common/back.gif
嘿! 獲得初步成功,但還有很多要努力,
感謝 A大!
G 大, 你調出來的窗口比我原來設計的大, 造成你窗體裡的 ServerTime 和漲跌速兩個 TextLabel 位置有些跑掉, 你自己可以再調下.如果你這兩個 TextLabel 位置有些跑, 你明天開市後看到上下一檔的價量顯示 TextLabel 應該也會有些位移, 你再自己調整即可.
我那程式裡有個功能昨天在作精簡版時還留在裡面, 因為台指期常有快市, 我有開一個 Timer 每十五秒監控, 如果十五秒內漲跌超過十點會有信息和聲音出來, 如果這個功能對你有用, 你可以自己調那參數再設計當有快市時是否有你想要的交易測略.凱基 API 可能因為沒有推銷 Multicharts, 用的人不像群益這麼多 API 用戶, 所以 API 的台灣期貨報價和下單反應很迅速, 連我人在對岸時都沒有什麼抱怨, 你可以和你自己或朋友的大戶系統相比下.
另外還有一個功能我還保留在裡面的是自動登入和登出功能, 你把 bAutoLogin 和 bAutoLogoff 那兩個參數都設 true (我給你時已經設為 false) 再重 build project, 每天八點四十分到四十五分間會自動幫你登入, 下午一點五十分會自動登出, 沒有價格在跳時, 你縮小窗體會縮在一個小托盤也不占視覺.
之前有托 Acer 大如果他認識年輕朋友會寫程式但經濟能力一般如還在讀研究所或大學的學生不想花錢買 Multicharts 但想設計一些自己的交易策略, 可以分享我寫的這篇 blog 給他們 "MT4 交易信号 与 C# 程序间的传递": http://blog.sina.com.cn/s/blog_6717847d0102v7yk.html, 這樣就能利用免費的 MT4 作為策略平台, 再把交易信號接回台灣期貨商的 API 下單, 整個環節都不用錢, 適合年輕朋友想省錢但願意花腦力寫程式和策略, 先從小合約的小日經小恆生或A50開始, 不可能一開始就像 G 大這樣下這麼猛吃三十碗公. MT4 的語言只要有寫過 C++/C# 的朋友基本上只要一兩天就可以上手, 免費的指標和 EA 網上也是一大堆.
本帖最後由 ambercrystal 於 15-1-13 00:48 編輯
googleandy 發表於 15-1-12 21:39 static/image/common/back.gif
嘿! 獲得初步成功,但還有很多要努力,
感謝 A大!
How this project shows at my side.Futures bid/ask prices & volumes will show up during market open.My OS is Win8.1 Simplified Chinese.
請問凱基API報價,有辨法套入EXCEL VBA 中嗎?
謝謝
opcat 發表於 15-6-27 16:36 static/image/common/back.gif
請問凱基API報價,有辨法套入EXCEL VBA 中嗎?
謝謝
任何報價軟體,只要有DDE,都有辦法拉到EXCEL同步跳動。
謝g大回答
因現在是用DDE報價,有時價格會漏,想說用API報價看看是否較穩和快,
但凱基又只提供C的API報價
KGI兩個專案合併的程式
private void OnGetStatus(object sender, COM_STATUS staus, byte[] msg)
{
TaiFexCom com = (TaiFexCom)sender;
// com.WriterLog("OnGetStatus step COM_STATUS-> " + staus);
if (this.InvokeRequired)
{
//com.WriterLog("OnGetStatus step COM_STATUS-> " + staus);
Smart.OnGetStatus_EventHandler d = new Smart.OnGetStatus_EventHandler(OnGetStatus);
//com.WriterLog("OnGetStatus step COM_STATUS-> " + staus);
this.Invoke(d, new object[] { sender, staus, msg });
//com.WriterLog("OnGetStatus step COM_STATUS-> " + staus);
return;
}
//TaiFexCom com = (TaiFexCom)sender;
//com.WriterLog("OnGetStatusUpdateUI before COM_STATUS-> " + staus);
OnGetStatusUpdateUI(sender, staus, msg);
//com.WriterLog("OnGetStatusUpdateUI after COM_STATUS-> " + staus);
}
執行緒中斷錯誤發生在this.invoke這行。
請問是Smart.OnGetStatus_EventHandler d 造成的嗎?
如何能夠正確之道類似這樣問題的發生原因呢?
另有關於this.buylabel.text =...這個區段的文字均要由委派處理嗎?是否有更簡潔的方式呢?
向大師您學習中感激不盡
頁:
[1]