cTipsのブログ(かぶもーちゃん)

株の自動売買の採用しなかったルールの結果を毎日記録

FXCMのDDEサンプルについて

FXCM_API をインストールしてから、
DDEやVBSサンプルの中身を確認しながら、
ちんぷんかんぷんな状態を過ごしていた。
なぜならDDEのサンプルは動かないし、
VBSのコードはちとこなしてからVB6にもってこないと
動かないことがわかっていなかったからだ。
で、DDEはなくても困らないので忘れていたのだが、
2,3日前から気になって見直していたのだが、
要は、タイマーで2秒ごとにデータを取得する仕様らしく
HELPでCOMの中身を調べていたところ、
Set oOffersTable = oTradeDesk1.TablesManager.FindTable("Offers")
という一文があり、TablesManager は見つかるものの、FindTable()は
見つかりませんというメッセージが出るのだ。
つまりかなり古い構文のまま残っているのだな、と理解した。
で、
Set oOffersTable = oTradeDesk1.FindMainTable("offers")
に差し替えて、
Public Function fncGetRates() の中の、
oRow.bid を oRow.CellValue("Bid")
oRow.ASK を oRow.CellValue("Ask")
oRow.TIME を oRow.CellValue("Time")
に変更し、下記を追加
Dim tmp
tmp = fncGetRate(oRow.Instrument, oRow.CellValue("Bid"), oRow.CellValue("Ask"), oRow.CellValue("Time"))
さらに、
If oRow.Time > dtLastDate Then dtLastDate = oRow.Time
を、
If oRow.CellValue("Time") > dtLastDate Then dtLastDate = oRow.CellValue("Time")
に差し替えてやったらようやく動き出した。
----- ここまでvb6の話し ---------------------
O2GDDE.exe を起動し、ログインしておき、
無事、Excelでデータを取得できるようになった。
こういうやり方もある、という見本なのだが、
動かないことをサポートは把握していないようだ。
つまり、問い合わせる人がいないことを意味するので、
APIを使うような人はマニアックで少数派なのかな?!
これって、vb6をもっていないと修正も不可能なんだけどな。
以上
 
※手抜きで画像の個所をこぴぺしただけなので済みません。