システムトレードブログ

イザナミ+リアルタイム株価対応戦略を作る(4)

トレシズ自動売買の開発方法

さっきからプログラムを作成しておりましたが、

…意外とあっさり完成してしまいました苦笑

現在バグを確認しておりますが、

取り急ぎソースコードを掲載させていただきます。

なお、このソースコードはトレジスタ・ストラテジーオンラインに依頼の上、

ユーザー様にご自由にお使いいただけるようにさせていただく予定で考えております汗

なお、プログラムとしましては、汎用性を考えてPHPを使用しております。

なお、エンコードはUTF-8を想定しています。(専門的な内容なので、分からない方は流してください苦笑)

■構成
import.htmlとoutput.phpを同一ディレクトリに配置

■import.htmlに記述(エンコード: UTF-8)








タワーリアルタイム株価CSV






■output.phpに記述(エンコード: UTF-8)




$today = date("Y/m/d")

print mb_convert_encoding(,銘柄,市場,,,始値,高値,安値,終値,出来高, "SJIS", "UTF-8")."\n"

$fh = fopen($_FILES[tower_data][tmp_name], "r")

$line = 0
while($DATA = fgetcsv($fh, 2000, ",")){

// 四本値がない場合には無視する
if(!$DATA[3] || !$DATA[4] || !$DATA[5] || !$DATA[6]){
$line++
continue
}

$shijo = t
$meigara = $DATA[0]
$shijo_num = $DATA[1]
$hajimene = sprintf("%.1f", $DATA[3])
$takane = sprintf("%.1f", $DATA[4])
$yasune = sprintf("%.1f", $DATA[5])
$owarine = sprintf("%.1f", $DATA[6])
$ymd = $DATA[7]
$dekidaka = $DATA[10]

// 今日の株価が存在しない場合には無視する
if($ymd != $today){
$line++
continue
}

// 複数市場同時上場の場合、出来高が大きい市場を優先
if(
($meigara == $DATA[$line+1][0] && $dekidaka < $DATA[$line+1][10])
|| ($meigara == $DATA[$line+2][0] && $dekidaka < $DATA[$line+2][10])
|| ($meigara == $DATA[$line+3][0] && $dekidaka < $DATA[$line+3][10])
|| ($meigara == $DATA[$line+4][0] && $dekidaka < $DATA[$line+4][10])
|| ($meigara == $DATA[$line+5][0] && $dekidaka < $DATA[$line+5][10])
){
$line++
continue
}

// 銘柄番号が1001の場合は1000に変更(日経平均)
if($meigara == 1001){
$meigara = 1000
}

// 銘柄番号が1002の場合は1001に変更(TOPIX)
if($meigara == 1002){
$meigara = 1001
}

// 銘柄番号が1003の場合は1002に変更(ジャスダックインデックス)
if($meigara == 1003){
$meigara = 1002
}

// 市場番号が512の場合はJASDAQに変更
if($shijo_num == 512){
$shijo = q
}

print << ,$meigara,$shijo,,,$hajimene,$takane,$yasune,$owarine,$dekidaka\n
EOF
$line++
}

fclose($fh)

exit
}

?>

■イザナミへのインポート方法
イザナミを起動した直後のお知らせ画面で、
左上「ファイル」→株価データの仮想インストール→今回変換したtower.csvを選択し、設定は何もいじらずにOK

※よくよく見ますと、

// 複数市場同時上場の場合、出来高が大きい市場を優先
if(
($meigara == $DATA[$line+1][0] && $dekidaka < $DATA[$line+1][10])
|| ($meigara == $DATA[$line+2][0] && $dekidaka < $DATA[$line+2][10])
|| ($meigara == $DATA[$line+3][0] && $dekidaka < $DATA[$line+3][10])
|| ($meigara == $DATA[$line+4][0] && $dekidaka < $DATA[$line+4][10])
|| ($meigara == $DATA[$line+5][0] && $dekidaka < $DATA[$line+5][10])
){
$line++
continue
}

がミスでした汗 後日修正させていただきます。

トレシズの「自動売買の開発方法」の記事

前々記事:イザナミ+リアルタイム株価対応戦略を作る(2)
前の記事:イザナミ+リアルタイム株価対応戦略を作る(3)
今の記事:イザナミ+リアルタイム株価対応戦略を作る(4)
次の記事:イザナミ+リアルタイム株価対応戦略を作る(5)
次々記事:現在の分足の手法(1)

おすすめ記事

株の自動売買ツールを作る(15)

個人的な一括発注ツールのIFDO注文対応が完了しました笑これでおそらくは先日のエス…

株の自動売買ツールを作る(4)

さて、昨日の続きです。今日はあまり進んでいませんが苦笑まず、「自動売買に適した…

> このページのURLをPCメールアドレスに送る