COCO研究院

 找回密碼
 註冊
搜索
查看: 8252|回復: 17

[EXCEL] DDE 即時接收幾百檔股價 的效能問題?

[複製鏈接]
發表於 15-4-28 17:04 | 顯示全部樓層 |閱讀模式
以下是google 找到的範例,我略作修改

//建立1000條dde
DdeClient[] ddecon = new DdeClient[1000] ;


//註冊1000個更新事件
ddecon[0].StartAdvise();
.
.
.
ddecon[1000].StartAdvise();


//
private void OnAdvise(object sender, DdeAdviseEventArgs args)
     
   {
        
        if (args.Item == "dde1") 作一些事情;
        .
        .
        .      
        else if (args.Item == "dde1000") 作一些事情;
   }



請問有何方式可以提升效能,讓程式可以在1~5秒內,監控數百支股票,


可否給予方向,小弟會去嘗試的,寫thread嗎?1000支thread?


若是用 dde , 有何好的方式去作呢?若不用dde , 有何好的方式呢?


小弟會寫程式,但卻找不到好的方向,處理上面的問題
發表於 15-4-29 11:27 | 顯示全部樓層
請問..您這是用 Excel VBA 寫的嗎??
 樓主| 發表於 15-4-29 12:08 | 顯示全部樓層
keymaker 發表於 15-4-29 11:27
請問..您這是用 Excel VBA 寫的嗎??

這是 c# ,
google   [ dde 連結超級大三元],就可找到上面的程式範例 ,

順便請教, 用excel vba 的話,如何用c#或它程式 把資料取出來呢
 樓主| 發表於 15-4-29 13:21 | 顯示全部樓層
kuolung 發表於 15-4-29 13:02
我用 rtd 看 800檔 速度還 ok
有一些 小掉 tick
用 c++ 寫的

kuolung 大大,可否加您好友 或 加fb , 留信箱等等,

有關這方面,我有很多問題,是否可向您請教
發表於 15-4-29 13:47 | 顯示全部樓層
過去有寫過 回想當初用了個笨方法
2000檔 死回圈
跑完一圈 花不到0.01秒 再去執行分析
不過這指令很重要 https://msdn.microsoft.com/zh-tw ... harp#code-snippet-2


  
發表於 15-4-29 13:52 | 顯示全部樓層
另 測試過所有方式 而不掉 tick 方式

還是 "交易商" >DDE Excel > 程式DDE link Ecel

因為Excel 已經幫你整理好訊息 不用在程式中還要拆解
 樓主| 發表於 15-4-29 14:32 | 顯示全部樓層
twcs666 發表於 15-4-29 13:52
另 測試過所有方式 而不掉 tick 方式

還是 "交易商" >DDE Excel > 程式DDE link Ecel

t大 ,目前也是用 程式 dde link excel 的方式,
在交易嗎?
發表於 15-4-29 14:42 | 顯示全部樓層
evo 發表於 15-4-29 14:32
t大 ,目前也是用 程式 dde link excel 的方式,
在交易嗎?

是啊 多了一項 API
最後決策還是得下單

最好找卷商可以配合下單的 API
 樓主| 發表於 15-4-29 15:04 | 顯示全部樓層
twcs666 發表於 15-4-29 14:42
是啊 多了一項 API
最後決策還是得下單

我程式 連 dde 就卡住了 .. 掉tick 無所謂,

重要的連幾百檔 的程式 ,要怎麼弄 才不會 太慢,我還在原地踏步
發表於 15-4-29 15:24 | 顯示全部樓層
1 將Excel 連上提供資訊商
2 先連上 資訊商 的"時間" (這時Excel 可以看見時間跳動)
3 打開程式 寫入 thread

程式的視窗 是否可以看見跟 Execl 同步的時間跳動 ?
發表於 15-4-29 15:26 | 顯示全部樓層
 樓主| 發表於 15-4-29 15:33 | 顯示全部樓層
twcs666 發表於 15-4-29 15:26
這不是有教 只不過改為 "時間"
http://andy.diimii.com/2009/11/c%E8%88%87ndde-%E5%A6%82%E4%BD%95%E9%80 ...

是我口誤,
連 dde 沒問題 ,連很多檔股票,然後廻圈,
一檔檔跑 ,取資料 ,問題就大了..


板上大家都是怎麼作的.. 不懂啊 ,陷入長考

評分

參與人數 1金錢 +2 收起 理由
twcs666 + 2 花點時間研究 是正常

查看全部評分

發表於 15-4-29 16:08 | 顯示全部樓層
再解釋一下好了 怎麼會難呢

開一個報表 將1000檔使用迴圈 一次讀入
這時報表會有DDE行情 1000檔一直在跳動

再使用迴圈 讀出報表的行情欄  你都可以算出要的指數了
每一筆在行情欄只要變更資料 會敲擊Change 自動跳入存檔
更可以自動進入單股運算

現在電腦跑1000檔???

我每秒都在處理數拾萬資料 怎會有問題?
我認為想程式交易 至少將程式學完整

且交易商有配合 C# 下單的API
否則還要用別人家交易機 才冤花了那麼多功夫
 樓主| 發表於 15-4-29 16:24 | 顯示全部樓層
twcs666 發表於 15-4-29 16:08
再解釋一下好了 怎麼會難呢

開一個報表 將1000檔使用迴圈 一次讀入

每秒都在處理數拾萬資料 ?!
T大,你的程式行數 也好幾千行嗎 ,

我是這樣想的,幾千行程式,要在1秒內處理完,
若再加上,每一筆資料還要存入資料庫,
不會lag嗎? 我還沒試過,但光用想的就覺得會有問題 ..


4核 電腦 ,16G 不知能否應付
發表於 15-4-29 16:42 | 顯示全部樓層
程式不在於寫了多少行 而是執行效率
要說一組程式上萬行 是可能都不只 重點是寫法

沒試過怎知道不行 ? 因為不行才要改良

以上次回文...用4核 一核心就沒問題 才1-2000檔

記住 : 程式可以透過API 或程式內建 ; 將高密度運算 交給另一個核心運算
這寫法要功力 且單一程式會很亂

我是四組程式 每組占用一個核心 當運算完畢 再丟入另一程式
想一下 如果你想一秒跑500萬筆資料 會如何運算
當然是拆給不同核心 再透過區域網路 傳給主機
所以資料庫跟網路功夫 一定要純熟
當你下的功夫深 沒什麼辦不到
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 24-11-20 09:42

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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