icsim
Simulation

icsim Simulation Object

概要

 プレーヤーが長期間、かつ多くの銘柄に対して有効に機能するか否かを検証するためのオブジェクトです。iclib.DLLとXIChart.ocxをカプセル化しており、これらのオブジェクトを意識しなくても売買シミュレーションを実現することができます。

評価方法

 2種類の評価方法が選択できます。1つ目は、プレーヤーの売買シグナルに従って売買した場合の通算損益額や勝率等を出力します。2つ目は、プレーヤーの出したシグナルの翌日〜n日後までの勝率を出力します。

進捗表示

 Runメソッドを呼び出すと売買シミュレーションを開始し、進捗を表示する以下のようなダイアログが表示されます。上段のプログレスバーは全体の進捗を示し、下段のプログレスバーは現在の銘柄の進捗を示しています。

出力

 評価結果はテキストファイル、またはJet4データベースに出力します。ファイル形式はこちらを御覧下さい。ファイル名称はSetOutputFileNameで指定することができます。

Filename
 InstalledDirectory\icsim.DLL
Method
AddPlayer
EnableMethod
Initialize
Run
RemoveAllPlayers
SetFavoriteFile
SetOutputFileName
SetParam
SetProgressFile

long AddPlayer(BSTR Path)

 プレーヤーを追加します。

引数

Path :プレーヤー設定ファイルをフルパスで指定します。

戻り値

成功した場合0を、失敗した場合は0以外を返します。


void EnableMethod(long lMethod, long bEnable)

 指定した評価方法を有効または無効にします。デフォルトでは全ての方法が無効となっています。

引数

lMethod :評価方法を指定します。
bEnable: = {0, 1} 0:無効, 1:有効

lMethod 説明
0 100万円(*1)を元金としてプレーヤーの売買シグナルに従って売買し、評価期間終了時点での通算損益額や勝率等を出力します。シグナルが出た翌日の始値または終値(*1)で約定します。
1 買いシグナルまたは売りシグナルが出た後、1日後〜21日後(*1)の勝率を出力します。

(*1) SetParamで変更できます。


void Initialize()

 全ての設定値を初期値に戻します。


long Run()

 売買シミュレーションを開始します。

戻り値

成功した場合0を、失敗した場合は0以外を返します。


void RemoveAllPlayers()

 全プレーヤーを削除します。


void SetOutputFileName(long lMethod, BSTR FileName)

 出力ファイル名称を指定します。指定しなかった場合は各銘柄フォルダに以下のファイル名で格納します。lMethodEnableMethodの第一引数で指定した数値です。

s<lMethod>_<Symbol>.csv

例:東証銘柄コード1001の全データを対象に評価方法0で評価した結果は"c:\iChart\東証\1000\1001\s0_1001.csv"に出力します。

引数

lMethod : 出力ファイル名称を指定する評価方法を指定します。
FileName : ファイル名称を指定します。以下の変数を使用することができます。また評価方法0では、拡張子をmdbにすると、Jet4データベースになります。

変数 説明
%P 銘柄フォルダのパス(例:"c:\\iChart\\東証\\1000\\1306\\")
%M 上場市場(例:"東証")
%S 銘柄コード・TickerSymbol(例:"1304")

【注意】

  • SetParamでパラメータ9に1を指定した場合、銘柄・評価方法ごとにユニークな名称を付けてください。1銘柄の評価を始める前に既存のファイルがある場合、そのファイルを削除します。
  • Jet4データベースに出力できるのは評価方法0のみです。

long SetFavoriteFile(BSTR Path)

 銘柄リストファイルを指定します。

引数

Path :銘柄リストファイルをフルパスで指定します。

戻り値

成功した場合0を、失敗した場合は0以外を返します。


void SetParam(long lParamNo, long lValue)

 パラメータの値を設定・変更します。

引数

lParamNo :パラメータ番号
lValue :値

lParamNo 説明 初期値
0 Datasオブジェクトの足型を指定します。設定値はiclib.Datas::SetModeを参照。 0(日足)
1 Datasオブジェクトを構築する方法を指定します。設定値はiclib.Automation::Datasを参照。 0(CSV形式)
2 シミュレーションの期間を指定します。
 0 : 全データ
 1 : 1年毎
 2 : lParamNo=3,4で指定する
0(全データ)
3 シミュレーションの開始日をDECIMAL_DATEで指定します。 -
4 シミュレーションの終了日をDECIMAL_DATEで指定します。 -
5 シミュレーションを開始する時点での所有金額を指定します。(lMethod=0で有効) 1000000(100万円)
6 シグナルが出た日の翌日の始値で約定する(1)か、翌日の終値で約定する(0)かを指定します。(lMethod=0で有効) 1(翌日の始値)
7 購入後、何日後に売却するかを指定します。(lMethod=0で有効) 10
8 シグナルが出た後、何日後までの勝率を求めるかを指定します。(lMethod=1で有効) 21
9 シミュレーションを始める前に以前の結果ファイルがある場合に、結果ファイルを削除する(1)か追記する(0)かを指定します。 0
10 単位株 1
11 建玉方法
 0 : プレーヤーの判断に任せる。
 1 : MaxBet(買いシグナルが出た時に所有金額内で購入可能な最大単位株を購入し、売りシグナルが出たときに全ての持ち株を売却します。)
0

void SetProgressFile(BSTR Path)

 長期間・多数の銘柄に対する売買シミュレーションには相当の時間を要します。進捗ファイルを利用することで、PCの電源を切るなどしてシミュレーションを中断した場合でも、次回起動時は中断した銘柄から再開することができます。

 シミュレーションが終了した銘柄は自動的に進捗ファイルに追加され、次回起動時に同じ進捗ファイルを指定すれば登録されている銘柄をスキップします。

 進捗ファイルのファイル形式は銘柄リストファイルと同じです。

引数

Path :進捗ファイルをフルパスで指定します。



Copyright(C)2001 Koji Ebata