システムトレードブログ

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

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

個人的な一括発注ツールのIFDO注文対応が完了しました笑

これでおそらくは先日のエスプールのようなことは減るはずです(ぇ

下記の内容はプログラムの知識がない方にはちょっと難しいと思うのですが、

おそらくはエクセルなどを結構使いこなせる方ですと応用は効くと思いますので、

ひとまずはご参考までにという内容ですのでご了承ください汗

■準備段階とご注意点
・UWSCは
http://www.uwsc.info/download.html
の「UWSC Free版 Ver4.8e1  フリーソフト ダウンロード」からダウンロードできます。無料でしかも相当便利なツールです笑
・まず、誤動作等を問わず責任は一切とれませんので、自己責任であるという点をあらかじめご了承ください汗
 ↓
・メモ帳などテキストエディタを起動
・UWSCサブルーチンファイル側のソースをコピペで貼り付けてデスクトップに「order_sub.uws」という名前で保存
・UWSCメインファイル側のソースをコピペで貼り付けてデスクトップに「order.uws」という名前で保存(ログインID、ログインパスワード、取引パスワードは適宜変更)
 ↓
・デスクトップのorder.uwsをダブルクリックするか、UWSC側から再生すると動作を確認できます。

■UWSCサブルーチンファイル(デスクトップに「order_sub.uws」という名前で保存)
※ログインID、ログインパスワード、取引パスワードは適宜変更
※「Public test = 1」の場合は、実際に発注する場合には「Public test = 0」に変更
----------------------------------------------------
Public loginId = "00000000" //ライブスター ログインID
Public loginPw = "00000000" //ライブスター ログインパスワード
Public orderPw = "0000" //ライブスター 取引パスワード

Public loginUrl = "https://lv01.live-sec.co.jp/webbroker3/44/pc/WEB3AccountLogin.jsp" //ライブスターログインURL
Public sleepTime = 0.1
Public IE = 0
Public changeSG = 1 // 信用建禁止銘柄の場合現物で発注する場合:1 しない場合:0
Public test = 1 // テストの場合:1 実際に発注する場合:0

//■ログイン
Procedure login()
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate(loginUrl)
ieSleep(IE)

IESETDATA(IE,loginId,"aa_accdcd",,2)
IESETDATA(IE,loginPw,"lg_pw",,2)
IESETDATA(IE,True,"lg_password_as_flag",1)
IESETDATA(IE,orderPw,"aa_pw")
IESETDATA(IE,True,"exec")
ieSleep(IE)
Fend

//■スリープ
Procedure ieSleep(IE)
REPEAT
SLEEP(sleepTime)
UNTIL !IE.busy AND IE.readystate=4
Fend

//■注文
Procedure ieOrder(MODE, GS, LS, MCODE, MNAME, HOW_P, SASHINE_P, KABUSU_P, HOW_C, SASHINE_C, RIKAKU=0)

// IFD現物買い(逆指+逆指)
ifB MODE="IFD" AND GS="G" AND HOW_P="G" AND HOW_C="G"
IFD_G_L_G(MCODE, MNAME, KABUSU_P, SASHINE_P, SASHINE_C)
// IFDO現物買い(逆指+逆指)
elseif MODE="IFDO" AND GS="G" AND HOW_P="G" AND HOW_C="G"
IFDO_G_L_G(MCODE, MNAME, KABUSU_P, SASHINE_P, SASHINE_C, RIKAKU)
// IFD信用買い(逆指+逆指)
elseif MODE="IFD" AND GS="S" AND LS="L" AND HOW_P="G" AND HOW_C="G"
IFD_S_L_G(MCODE, MNAME, KABUSU_P, SASHINE_P, SASHINE_C)
// IFDO信用買い(逆指+逆指)
elseif MODE="IFDO" AND GS="S" AND LS="L" AND HOW_P="G" AND HOW_C="G"
IFDO_S_L_G(MCODE, MNAME, KABUSU_P, SASHINE_P, SASHINE_C, RIKAKU)
// IFD信用売り(逆指+逆指)
elseif MODE="IFD" AND GS="S" AND LS="S" AND HOW_P="G" AND HOW_C="G"
IFD_S_S_G(MCODE, MNAME, KABUSU_P, SASHINE_P, SASHINE_C)
// IFDO信用売り(逆指+逆指)
elseif MODE="IFDO" AND GS="S" AND LS="S" AND HOW_P="G" AND HOW_C="G"
IFDO_S_S_G(MCODE, MNAME, KABUSU_P, SASHINE_P, SASHINE_C, RIKAKU)
Endif

Fend

//■IFD現物買い(逆指+逆指)
Procedure IFD_G_L_G(MCODE, MNAME, KABUSU_P, SASHINE_P, SASHINE_C)

// 現物取引タブをクリック
ie.navigate("javascript:submitTopForm(equityBuyMenuForm)")
ieSleep(IE)

// 銘柄検索
IESETDATA(IE,MCODE,"eq_pdcd")
ie.navigate("javascript:submitSearchForm()")
ieSleep(IE)

//IFD注文
ie.navigate("javascript:showhide(idIFD)")

// 株数
IESETDATA(IE,KABUSU_P,"eq_odqt")

// IFD親:逆指
IESetData(IE,True,"eq_ecop_ifd")

// IFD親:株価
IESETDATA(IE,SASHINE_P,"eq_sodcpr_ifd")

// IFD子:逆指
IESetData(IE,True,"eq_ecop_ifd_c")

// IFD子:株価
IESETDATA(IE,SASHINE_C,"eq_sodcpr_ifd_c")

// 注文確認
ie.navigate("javascript:checkSearch()")
ieSleep(IE)

Dim errorNum2 = pos("お取扱しておりません",IE.document.body.innerText) // 非取扱い銘柄
Dim errorNum4 = pos("超えています",IE.document.body.innerText) // 値幅制限の範囲外

// 非取扱い銘柄の場合
ifB errorNum2 > 0

print "× 現物 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以上になったら成行で買い/IFD" + "逆指" + SASHINE_C + "円以下になったら成行で手仕舞い(非取扱い銘柄)"

// 値幅制限の範囲外の場合
elseif errorNum4 > 0

print "× 現物 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以上になったら成行で買い/IFD" + "逆指" + SASHINE_C + "円以下になったら成行で手仕舞い(値幅制限の範囲外)"

else

// ◆注文する
ifB test = 0

ie.navigate("javaScript:javaScript:submitWeb3Form(document.eqConfirmForm)")
ieSleep(IE)

Endif

print "○ 現物 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以上になったら成行で買い/IFD" + "逆指" + SASHINE_C + "円以下になったら成行で手仕舞い"

Endif

Fend

//■IFDO現物買い(逆指+逆指)
Procedure IFDO_G_L_G(MCODE, MNAME, KABUSU_P, SASHINE_P, SASHINE_C, RIKAKU)

// 現物取引タブをクリック
ie.navigate("javascript:submitTopForm(equityBuyMenuForm)")
ieSleep(IE)

// 銘柄検索
IESETDATA(IE,MCODE,"eq_pdcd")
ie.navigate("javascript:submitSearchForm()")
ieSleep(IE)

//IFDO注文
ie.navigate("javascript:showhide(idIFDO)")

// 株数
IESETDATA(IE,KABUSU_P,"eq_odqt")

// IFDO親:逆指
IESetData(IE,True,"eq_ecop_ifd")

// IFDO親:株価
IESETDATA(IE,SASHINE_P,"eq_sodcpr_ifd")

// IFDO子:損切り
IESetData(IE,SASHINE_C,"eq_wodcpr_ifdo")

// IFDO子:利確
IESETDATA(IE,RIKAKU,"eq_lpr_ifdo")

// 注文確認
ie.navigate("javascript:checkSearch()")
ieSleep(IE)

Dim errorNum2 = pos("お取扱しておりません",IE.document.body.innerText) // 非取扱い銘柄
Dim errorNum4 = pos("超えています",IE.document.body.innerText) // 値幅制限の範囲外

// 非取扱い銘柄の場合
ifB errorNum2 > 0

print "× 現物 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以上になったら成行で買い/IFDO" + "逆指" + SASHINE_C + "円以下になったら成行で手仕舞い(非取扱い銘柄)"

// 値幅制限の範囲外の場合
elseif errorNum4 > 0

print "× 現物 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以上になったら成行で買い/IFDO" + "逆指" + SASHINE_C + "円以下になったら成行で手仕舞い(値幅制限の範囲外)"

else

// ◆注文する
ifB test = 0

ie.navigate("javaScript:javaScript:submitWeb3Form(document.eqConfirmForm)")
ieSleep(IE)

Endif

print "○ 現物 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以上になったら成行で買い/IFDO" + "逆指" + SASHINE_C + "円以下になったら成行で手仕舞い"

Endif

Fend

//■IFD信用買い(逆指+逆指)
Procedure IFD_S_L_G(MCODE, MNAME, KABUSU_P, SASHINE_P, SASHINE_C)

// 信用取引タブをクリック
ie.navigate("javascript:submitTopForm(mrOpenInputForm)")
ieSleep(IE)

// 銘柄検索
IESETDATA(IE,MCODE,"mr_pdcd")
ie.navigate("javascript:submitSearchForm()")
ieSleep(IE)

//IFD注文
ie.navigate("javascript:showhide(idIFD)")

// 買い
IESetData(IE,True,"mr_trty_x","3,1:6")

// 株数
IESETDATA(IE,KABUSU_P,"mr_odqt")

// IFD親:逆指
IESetData(IE,True,"mr_ecop_ifd")

// IFD親:株価
IESETDATA(IE,SASHINE_P,"mr_sodcpr_ifd")

// IFD子:逆指
IESetData(IE,True,"mr_ecop_ifd_c")

// IFD子:株価
IESETDATA(IE,SASHINE_C,"mr_sodcpr_ifd_c")

// 注文確認
ie.navigate("javascript:setParameterData()checkSearch()")
ieSleep(IE)

Dim errorNum1 = pos("できません",IE.document.body.innerText) // 信用新規買禁止銘柄
Dim errorNum2 = pos("お取扱しておりません",IE.document.body.innerText) // 非取扱い銘柄
Dim errorNum4 = pos("超えています",IE.document.body.innerText) // 値幅制限の範囲外
Dim errorNum5 = pos("制限されています",IE.document.body.innerText) // 規制による制限銘柄

// 信用新規買禁止銘柄の場合
ifB errorNum1 > 0

print "× 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以上になったら成行で買い/IFD" + "逆指" + SASHINE_C + "円以下になったら成行で手仕舞い(信用新規買禁止銘柄)"

// 現物に変更
ifB changeSG = 1
ieOrder("IFD", "G", "L", MCODE, MNAME, "G", SASHINE_P, KABUSU_P, "G", SASHINE_C)
Endif

// 非取扱い銘柄の場合
elseif errorNum2 > 0

print "× 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以上になったら成行で買い/IFD" + "逆指" + SASHINE_C + "円以下になったら成行で手仕舞い(非取扱い銘柄)"

// 規制による制限銘柄の場合
elseif errorNum5 > 0

print "× 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以上になったら成行で買い/IFD" + "逆指" + SASHINE_C + "円以下になったら成行で手仕舞い(規制による制限銘柄)"

// 現物に変更
ifB changeSG = 1
ieOrder("IFD", "G", "L", MCODE, MNAME, "G", SASHINE_P, KABUSU_P, "G", SASHINE_C)
Endif

// 値幅制限の範囲外の場合
elseif errorNum4 > 0

print "× 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以上になったら成行で買い/IFD" + "逆指" + SASHINE_C + "円以下になったら成行で手仕舞い(値幅制限の範囲外)"

// 注文できる場合
else

// ◆注文する
ifB test = 0

ie.navigate("javaScript:submitWeb3Form(document.mrConfirmForm)")
ieSleep(IE)

Endif

print "○ 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以上になったら成行で買い/IFD" + "逆指" + SASHINE_C + "円以下になったら成行で手仕舞い"

Endif

Fend

//■IFDO信用買い(逆指+逆指)
Procedure IFDO_S_L_G(MCODE, MNAME, KABUSU_P, SASHINE_P, SASHINE_C, RIKAKU)

// 信用取引タブをクリック
ie.navigate("javascript:submitTopForm(mrOpenInputForm)")
ieSleep(IE)

// 銘柄検索
IESETDATA(IE,MCODE,"mr_pdcd")
ie.navigate("javascript:submitSearchForm()")
ieSleep(IE)

//IFDO注文
ie.navigate("javascript:showhide(idIFDO)")

// 買い
IESetData(IE,True,"mr_trty_x","3,1:6")

// 株数
IESETDATA(IE,KABUSU_P,"mr_odqt")

// IFDO親:逆指
IESetData(IE,True,"mr_ecop_ifd")

// IFDO親:株価
IESETDATA(IE,SASHINE_P,"mr_sodcpr_ifd")

// IFDO子:損切り
IESETDATA(IE,SASHINE_C,"mr_wodcpr_ifdo")

// IFDO子:利確
IESETDATA(IE,RIKAKU,"mr_lpr_ifdo")

// 注文確認
ie.navigate("javascript:setParameterData()checkSearch()")
ieSleep(IE)

Dim errorNum1 = pos("できません",IE.document.body.innerText) // 信用新規買禁止銘柄
Dim errorNum2 = pos("お取扱しておりません",IE.document.body.innerText) // 非取扱い銘柄
Dim errorNum4 = pos("超えています",IE.document.body.innerText) // 値幅制限の範囲外
Dim errorNum5 = pos("制限されています",IE.document.body.innerText) // 規制による制限銘柄

// 信用新規買禁止銘柄の場合
ifB errorNum1 > 0

print "× 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以上になったら成行で買い/IFDO" + "逆指" + SASHINE_C + "円以下になったら成行で手仕舞い(信用新規買禁止銘柄)"

// 現物に変更
ifB changeSG = 1
ieOrder("IFDO", "G", "L", MCODE, MNAME, "G", SASHINE_P, KABUSU_P, "G", SASHINE_C, RIKAKU)
Endif

// 非取扱い銘柄の場合
elseif errorNum2 > 0

print "× 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以上になったら成行で買い/IFDO" + "逆指" + SASHINE_C + "円以下になったら成行で手仕舞い(非取扱い銘柄)"

// 規制による制限銘柄の場合
elseif errorNum5 > 0

print "× 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以上になったら成行で買い/IFDO" + "逆指" + SASHINE_C + "円以下になったら成行で手仕舞い(規制による制限銘柄)"

// 現物に変更
ifB changeSG = 1
ieOrder("IFDO", "G", "L", MCODE, MNAME, "G", SASHINE_P, KABUSU_P, "G", SASHINE_C, RIKAKU)
Endif

// 値幅制限の範囲外の場合
elseif errorNum4 > 0

print "× 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以上になったら成行で買い/IFDO" + "逆指" + SASHINE_C + "円以下になったら成行で手仕舞い(値幅制限の範囲外)"

// 注文できる場合
else

// ◆注文する
ifB test = 0

ie.navigate("javaScript:submitWeb3Form(document.mrConfirmForm)")
ieSleep(IE)

Endif

print "○ 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以上になったら成行で買い/IFDO" + "逆指" + SASHINE_C + "円以下になったら成行で手仕舞い"

Endif

Fend

//■IFD信用売り(逆指+逆指)
Procedure IFD_S_S_G(MCODE, MNAME, KABUSU_P, SASHINE_P, SASHINE_C)

// 信用取引タブをクリック
ie.navigate("javascript:submitTopForm(mrOpenInputForm)")
ieSleep(IE)

// 銘柄検索
IESETDATA(IE,MCODE,"mr_pdcd")
ie.navigate("javascript:submitSearchForm()")
ieSleep(IE)

//IFD注文
ie.navigate("javascript:showhide(idIFD)")

// 売り
IESetData(IE,True,"mr_trty_x","4,1:6")

// 株数
IESETDATA(IE,KABUSU_P,"mr_odqt")

// IFD親:逆指
IESetData(IE,True,"mr_ecop_ifd")

// IFD親:株価
IESETDATA(IE,SASHINE_P,"mr_sodcpr_ifd")

// IFD子:逆指
IESetData(IE,True,"mr_ecop_ifd_c")

// IFD子:株価
IESETDATA(IE,SASHINE_C,"mr_sodcpr_ifd_c")

// 注文確認
ie.navigate("javascript:setParameterData()checkSearch()")
ieSleep(IE)

Dim errorNum1 = pos("できません",IE.document.body.innerText) // 信用新規売禁止銘柄
Dim errorNum2 = pos("お取扱しておりません",IE.document.body.innerText) // 非取扱い銘柄
Dim errorNum4 = pos("超えています",IE.document.body.innerText) // 値幅制限の範囲外
Dim errorNum5 = pos("制限されています",IE.document.body.innerText) // 規制による制限銘柄

// 信用新規売禁止銘柄の場合
ifB errorNum1 > 0

print "× 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以下になったら成行で売り/IFD" + "逆指" + SASHINE_C + "円以上になったら成行で手仕舞い(信用新規売禁止銘柄)"

// 非取扱い銘柄の場合
elseif errorNum2 > 0

print "× 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以下になったら成行で売り/IFD" + "逆指" + SASHINE_C + "円以上になったら成行で手仕舞い(非取扱い銘柄)"

// 規制による制限銘柄の場合
elseif errorNum5 > 0

print "× 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以下になったら成行で売り/IFD" + "逆指" + SASHINE_C + "円以上になったら成行で手仕舞い(規制による制限銘柄)"

// 値幅制限の範囲外の場合
elseif errorNum4 > 0

print "× 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以下になったら成行で売り/IFD" + "逆指" + SASHINE_C + "円以上になったら成行で手仕舞い(値幅制限の範囲外)"

// 注文できる場合
else

// ◆注文する
ifB test = 0

ie.navigate("javaScript:submitWeb3Form(document.mrConfirmForm)")
ieSleep(IE)

Endif

print "○ 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以下になったら成行で売り/IFD" + "逆指" + SASHINE_C + "円以上になったら成行で手仕舞い"

Endif

Fend

//■IFDO信用売り(逆指+逆指)
Procedure IFDO_S_S_G(MCODE, MNAME, KABUSU_P, SASHINE_P, SASHINE_C, RIKAKU)

// 信用取引タブをクリック
ie.navigate("javascript:submitTopForm(mrOpenInputForm)")
ieSleep(IE)

// 銘柄検索
IESETDATA(IE,MCODE,"mr_pdcd")
ie.navigate("javascript:submitSearchForm()")
ieSleep(IE)

//IFDO注文
ie.navigate("javascript:showhide(idIFDO)")

// 売り
IESetData(IE,True,"mr_trty_x","4,1:6")

// 株数
IESETDATA(IE,KABUSU_P,"mr_odqt")

// IFDO親:逆指
IESetData(IE,True,"mr_ecop_ifd")

// IFDO親:株価
IESETDATA(IE,SASHINE_P,"mr_sodcpr_ifd")

// IFDO子:損切り
IESETDATA(IE,SASHINE_C,"mr_wodcpr_ifdo")

// IFDO子:利確
IESETDATA(IE,RIKAKU,"mr_lpr_ifdo")

// 注文確認
ie.navigate("javascript:setParameterData()checkSearch()")
ieSleep(IE)

Dim errorNum1 = pos("できません",IE.document.body.innerText) // 信用新規売禁止銘柄
Dim errorNum2 = pos("お取扱しておりません",IE.document.body.innerText) // 非取扱い銘柄
Dim errorNum4 = pos("超えています",IE.document.body.innerText) // 値幅制限の範囲外
Dim errorNum5 = pos("制限されています",IE.document.body.innerText) // 規制による制限銘柄

// 信用新規売禁止銘柄の場合
ifB errorNum1 > 0

print "× 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以下になったら成行で売り/IFDO" + "逆指" + SASHINE_C + "円以上になったら成行で手仕舞い(信用新規売禁止銘柄)"

// 非取扱い銘柄の場合
elseif errorNum2 > 0

print "× 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以下になったら成行で売り/IFDO" + "逆指" + SASHINE_C + "円以上になったら成行で手仕舞い(非取扱い銘柄)"

// 規制による制限銘柄の場合
elseif errorNum5 > 0

print "× 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以下になったら成行で売り/IFDO" + "逆指" + SASHINE_C + "円以上になったら成行で手仕舞い(規制による制限銘柄)"

// 値幅制限の範囲外の場合
elseif errorNum4 > 0

print "× 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以下になったら成行で売り/IFDO" + "逆指" + SASHINE_C + "円以上になったら成行で手仕舞い(値幅制限の範囲外)"

// 注文できる場合
else

// ◆注文する
ifB test = 0

ie.navigate("javaScript:submitWeb3Form(document.mrConfirmForm)")
ieSleep(IE)

Endif

print "○ 信用 " + MCODE + " " + MNAME + " " + KABUSU_P + "株 " + SASHINE_P + "円以下になったら成行で売り/IFDO" + "逆指" + SASHINE_C + "円以上になったら成行で手仕舞い"

Endif

Fend
----------------------------------------------------

■UWSCメインファイル(デスクトップに「order.uws」という名前で保存)
----------------------------------------------------
CALL "order_sub.UWS"

login()

// 3823アクロディア(現物)IFDO注文
// 親注文:43200円以上になったら5株成行で買いという逆指値注文
// 子注文:50100円で指値売り・または36600円以下になったら成行で手仕舞いというOCO注文
ieOrder("IFDO", "G", "L", "3823", "アクロディア", "G", "43200", "5", "G", "36600", "50100")

// 3823アクロディア(信用)IFDO注文
// 親注文:43200円以上になったら5株成行で買いという逆指値注文
// 子注文:50100円で指値売り・または36600円以下になったら成行で手仕舞いというOCO注文
ieOrder("IFDO", "S", "L", "3823", "アクロディア", "G", "43200", "5", "G", "36600", "50100")

// 3823アクロディア(信用)IFD注文
// 親注文:43200円以上になったら5株成行で買いという逆指値注文
// 子注文:36600円以下になったら成行で手仕舞いという逆指値注文
ieOrder("IFD", "S", "L", "3823", "アクロディア", "G", "43200", "5", "G", "36600")

// 2687CVSベイエリア(信用)IFDO注文※信用新規建不可の銘柄のテスト
// 親注文:230円以上になったら1000株成行で買いという逆指値注文
// 子注文:275円で指値売り・または200円以下になったら成行で手仕舞いというOCO注文
ieOrder("IFDO", "S", "L", "2687", "CVSベイエリア", "G", "230", "1000", "G", "200", "275")

// 2440ぐるなび(信用)IFDO注文
// 親注文:1481円以下になったら200株成行で売りという逆指値注文
// 子注文:1183円で指値買い戻し・または1555円以上になったら成行で手仕舞いというOCO注文
ieOrder("IFDO", "S", "S", "2440", "ぐるなび", "G", "1481", "200", "G", "1555", "1183")

// 2440ぐるなび(信用)IFD注文
// 親注文:1481円以下になったら200株成行で売りという逆指値注文
// 子注文:1555円以上になったら成行で手仕舞いという逆指値注文
ieOrder("IFD", "S", "S", "2440", "ぐるなび", "G", "1481", "200", "G", "1555")
----------------------------------------------------

上記は動作確認目的の内容ですが、

日々の発注の際には上記を手動で入力するのは大変なため、

イザナミの仕掛けシグナルCSVを上記order.uwsのフォーマットに加工するプログラムが必要になります苦笑(エクセルなど)

ただ上記ソースは配布可能なものを持っていませんため、

何かしらうまい案がありましたらまた書かせていただきますね。

なお、IFDO注文では手仕舞いの指値という要素が必要になってきますが、

これはイザナミの銘柄一覧画面で、

たとえばストップ高を取得したければ左上「表示指標選択」→「+」→「値幅制限上限」を追加した上で、「CSV出力」ボタンを押せばCSVファイルを保存できます。

私の場合ですと、
・仕掛けシグナルCSV
・上記の手仕舞い指値CSV
の2つをプログラムで読み込み、上記order.uwsのフォーマットに変換するという手法を使っています。

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

前々記事:株の自動売買ツールを作る(15)
前の記事:UWSCでイザナミを自動的に操作する(6)
今の記事:株の自動売買ツールを作る(15)
次の記事:分足シストレの研究(1)
次々記事:株の自動売買ツールを作る(16)

おすすめ記事

UWSCでイザナミを自動的に操作する(6)

今日はイザナミを使って複数の戦略の仕掛けシグナルと手仕舞いシグナルを自動的に抽…

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

ややマニアックなテーマとなってしまいますが、株の自動売買ツールを作るシリーズの…

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