[VB6 ] 寫下單交易遇到的一個問題

作者: qngu86   2015-11-21 01:38:42
小弟利用VB6寫交易下單的程式
遇到一個有關於即時性的問題
需求是在一個特定的時間,同時執行多筆下單的動作
例如在 10:00:00時要送出3筆委託單
任一筆都不可以延遲至10:00:01才委託
之前的作法是用timer定時執行(每250ms)
x1=order(參數1)
x2=order(參數2)
x3=order(參數3)
但實際上遇到的問題是
x1=order(參數1) 下單後接受到委託回報,才會去下x2=order(參數1)
有時塞單時,x3就有可能會在10:00:01才送出
為解決此,現行改用
一次開三個一樣的程式,觸發時間都設為10:00:00
且三個程式為求同步都有彼此校時
觸發時,每個程式都只下1筆 x=order(參數)
所以在10:00:00時,幾乎同時送出3筆委託(時間差異不到50ms)
算是達到我要的目的
但又衍生出另一個問題
券商有限制登入帳號的次數,比如該次數為2
就無法一次開3個程式了(每個程式都要登入帳號,佔用一個user)
想請教是否有其他方法可達成我的需求?
若我寫在同一個程式,用3個timer,每個timer各管一個下單
是否ok呢?,還是要用多執行緒完成?
一點問題請教大家,感恩!
作者: qngu86   2015-11-21 09:29:00
自問自答,剛試了用3個timer 效果似乎跟原本用1個timer差不多。慘
作者: Marty (DNA探針)   2015-11-21 15:22:00
VB6的Timer是悲劇 不要再用了~認真回ㄧ下 跟你的經紀商要非同步的元件 不然無解
作者: ClubT (小喬)   2015-11-23 13:36:00
電腦有可能做到真正的同時嗎? 若是單數更多不會有問題嗎?
作者: chinoyan   2015-11-24 10:22:00
多執行緒才是正解

Links booklink

Contact Us: admin [ a t ] ucptt.com