株てくおーとトレード日記

完全自動売買システムによるトレード日記。

RSSの自動再起動方法について

2009-06-15 07:46:42 | 株てくてく

RSSは昼休み中に停止したり、ザラ場中にも停止することがあるため、株てくてくではRSSが停止しているかどうかを判断して自動的に再起動しています。

(1)RSSの起動・再起動方法

 1.RSS.EXEをShell関数で起動する。このときProcessIdが求まる。
 2.API関数(OpenProcess 関数,フラグ:PROCESS_TERMINATE)で1で求めたProcessIdを指定し、Handleを取得する。
 -------------------------
  RSS動作中の状態
 -------------------------
 3.API関数(TerminateProcess 関数)で2で求めたHandleを指定し、プロセスを強制的に終了(RSS.EXEを停止)する。
 4.API関数(CloseHandle 関数)でHandleを解放する。

  RSSを再起動する場合、3以降後に1、2を行う。

'-------------
'<< API宣言 >>:
'-------------
' OpenProcess 関数
Private Declare Function OpenProcess Lib "KERNEL32.DLL" ( _
    ByVal dwDesiredAccess As Long, _
    ByVal bInheritHandle As Long, _
    ByVal dwProcessId As Long _
) As Long

' TerminateProcess 関数
Private Declare Function TerminateProcess Lib "KERNEL32.DLL" ( _
    ByVal hProcess As Long, _
    ByVal uExitCode As Long _
) As Long

'CloseHandle
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

(2)RSSの再起動タイミング

 1.市場が開く前の処理(9:00前、昼休み、イブニングセッション前)

 ・8:50、12:20、16:20に気配値が更新(すべての銘柄のうち1つでも更新されていればOK)されているかをチェックし停止中ならなら再起動処理を行う。
 ・開始5分前に停止中(株てくてく(リアルタイム株価取得:RSS接続状態(未接続))なら再起動処理を行う。

 2.市場が開いてからの処理

 ・個別銘柄のチェック

  5分間更新がない場合(出来高、終値の更新時刻)、RSSの再起動は行わずその銘柄だけのddedisconnect後、ddeconnectのみを行う。

 ・全体のチェック

  日経225先物、日経225先物ミニ、日経225をチェックし、3つとも2分間更新がない場合、再起動処理を行う。

 注)再起動を行った場合、全銘柄のddeconnectを行う。