
システムトレードで自動売買するにあたっては自分の口座残高がいくら残っているかは重要なポイントである。
残高の違いによってよって仕掛ける枚数を変えることもある。
岡三オンライン証券の岡三RSSでは残念ながら取引余力を取得するコマンドは存在しない。
MT4などでは口座残高はリアルタイムで表示されるのだが、その点は岡三RSSの不満点のひとつだ。
それでも、口座残高によって自動で仕掛けの枚数を変更する場合にはやはり自動で残高の計算を行いたい。
そのためなんとかそれを計算する必要がある。
ここでは、一日ごとの損益を計算し、それを元々の口座残高から増減させることで現在の残高を算出することにする。
口座残高の計算
まず元々の残高は自分の入金額か、または岡三オンラインのホームページで確認する。
それを初期値として、岡三RSSで計算した損益を通算することで残高を得る。
岡三RSSの先物取引でその日の損益を計算するExcelシート例を下に示す。
=FOPEXEC(A3,A4) | =FOPEXEC(B3,B4) | =TODAY() | =SUM(D4:D192) |
todayと一致 | 損益 | ||
損益 | 取引日 | ||
=IF(VALUE(B4)=VALUE($E$1),1,0) | =C4*VALUE(A4) |
岡三RSSではFOPEXEC関数によって先物の約定結果を表示することができる。
そのうち、決済の取引結果では損益が表示される。
表示される損益のうち、その日の取引日のものを合計すればその日の損益が得られる。
そのため、上の例では取引日とTODAY()が一致した場合に和を取るようにしてある。
取引が複数ある場合はその分の約定が表示されるので、和に含める行数はあらかじめ十分大きく取っておく。
その日の和の計算結果は一番右上のセルに表示される。
これを元々の前日の口座残高に足してやればその日の終わりの残高が得られる。
毎日これを繰り返すことで残高が更新される。
計算結果を日ごとにExcelシートに追記していくやり方は、以前日足四本値を保存していく方法を解説した際に使用したExcelマクロと同様に行う。
日々の損益を合算して口座残高を計算するExcelシート例を下に示す。
=1000000+SUM(B4:B1048576) | |
2019/4/12 | 16882 |
日付 | 損益 |
2019/4/12 | 16882 |
右列2行目には上の当日損益計算結果のセルを参照しておく。
このExcelシートに対してExcelマクロを使って日々データを追記していけば、右列1行目に残高が表示される。
ちなみに、右列1行目の初期値(ここでは100万円とした)には自分の当初の残高を記入しておくこと。
日ごとに追記するExcelマクロを下に示す。
Sub Test()
Dim mytime As Date
mytime = TimeValue(Now())
With Worksheets("損益")
If mytime >= TimeValue("15:19:00") And mytime <= TimeValue("15:55:00") Then
If .Cells(1, 1) = 1 Then
If .Cells(4, 1) = .Cells(2, 1) Then
Else
For j = .UsedRange.Rows.Count To 4 Step -1
For i = 1 To .UsedRange.Columns.Count
.Cells(j + 1, i) = .Cells(j, i)
Next i
Next j
For i = 1 To .UsedRange.Columns.Count
.Cells(4, i) = .Cells(2, i)
Next i
End If
End If
End If
End With
End Sub
これによって口座残高を自動で計算することができた。
まとめ
- 岡三RSSでは口座残高を取得するコマンドがない
- Excelマクロを使って当日の損益を計算し日々通算することで口座残高を自動で更新することができる