概要
DDE通信をサポートしているソフトウェアより、データを取得します。
楽天リアルタイムスプレッドシート(RSS)や、Futures Analyst、MetaTrader等のソフトウェアから DDE通信によりデータを取得するためのモジュールです。
Python等のプログラミング言語でシュミレーションをしたいという用途に向いています。
動作環境
Windows XPにて動作することを確認しています。
インストール/アンインストール
ダウンロードしたファイルを解凍して、適当なフォルダに保存してください。
レジストリ等は一切使用していませんので、 フォルダごと削除すれば、アンインストールできます。
注意事項
DDEのホットリンク機能にて、データを取得しますが、
DDEの送信側で、データの変化がないとデータが送られてきません。
たとえば、楽天リアルタイムスプレッドシートなどと通信して、日経平均を取得したいとします。
この場合、日経平均の値が変化しなければデータを取得することができません。
免責
このプログラムを使用したことによる、直接あるいは間接的損害に関しての、 一切の責任を負いかねますのでご了承下さい。
著作権・配布・転載
このソフトはフリーソフトウェアです。 配布、転載は原則自由です。 ただし、中身の一部もしくは全部を改変して配布、掲載をする事は禁止します。
ダウンロード
- 2008/01/30: dderecv.dll
- 初版作成
サンプルプログラム(python)
Futures Analystからデータを取得しています。
使用している言語はPythonです。
Pythonの解説はこちらにもあります。あわせてご参照ください。
import time
import ctypes
dde = ctypes.cdll.LoadLibrary("DDERecv.dll")
ddeStart = dde.DRStart
ddeWaitUpdate = dde.DRWaitUpdate
ddeGetDataLength = dde.DRGetDataLength
ddeStop = dde.DRStop
results = ctypes.c_buffer(0x100);
handles = ddeStart(
"ASTRO", "QUO", "1;5,0,00000000;1006,0,0,6", results, ctypes.c_ulong(0xC1DA))
for i in range(10):
ret = ddeWaitUpdate(handles, 0)
length = ddeGetDataLength(handles)
time.sleep(2)
print ret, length
if ret != 0:
print repr(results[13:length])
ddeStop(handles)
サンプルプログラム(C++)
楽天リアルタイムスプレッドシート(RSS)からデータを取得しています。
使用している言語はC++です。
#include "stdafx.h"
#include "..\DDERecv\DDERecv.h"
#include <stdio.h>
void testDDER()
{
char pBuffer[0x100];
DRHANDLE handle;
BOOL bRet;
handle = DRStart("RSS","N225M.FUT01.OS","現在値",pBuffer, 0x01);
int i;
DWORD len;
for(i = 0; i < 20; i++){
bRet = DRWaitUpdate(handle, 3);
len = DRGetDataLength(handle);
if(bRet == TRUE){
int j;
for(j = 0; j < (signed)len ; j++){
printf("%c", pBuffer[j]);
}
printf("\nnum = %d\n", len);
}
else{
puts("timeout");
}
}
DRStop(handle);
}
int main(int argc, char* argv[])
{
testDDER();
return 0;
}