ゼロからの週末プログラマー

週末にプログラミングを楽しみながら稼げるのか試してみます!

この投稿は1年以上前に公開されました。
現在では状況や内容が変わっている可能性があります。
ご注意下さい。

ACCESSのVBAで株式の売買結果を残す

   

先週まででテクニカル分析プログラムをいくつか作りました。
また、ファンダメンタル分析のための指標はインターネット上から取得できるようにしています。
これらの指標やプログラムを使えば、何か売買プログラムを作れそうな感じになってきました。

ただ、その前に何らかの株を売買した結果を残すことを行います。
売買プログラムを作った結果を検証するために使えるはずです。

テキストファイルへの出力

まずは処理結果を何らかの外部ファイルへ出力するためのプログラムを作りました。

Const PATH = "C:\KABUZERO\"

Sub OutputLogFile(FN As String, S As String)
'ログファイル(PATH\FN.LOG)へ出力

    Dim FNUM As Integer

On Error GoTo OutputLogFile_ERR

    FNUM = FreeFile
    Open PATH & FN & ".LOG" For Append Access Write Lock Write As #FNUM
    Print #FNUM, Date & "-" & Time & ":" & S
    Close #FNUM

OutputLogFile_RESUME:

On Error GoTo 0

    Exit Sub
    
OutputLogFile_ERR:
    
    Debug.Print "OutputLogFile:" & Err.Description
    Resume OutputLogFile_RESUME

End Sub

エラー処理がほとんどですが、特定のフォルダに指定したファイル名で文字列を出力しているだけです。

売買の結果を残すプログラム

最もシンプルに株式を買ってから売って、その結果をファイルへ出力するプログラムです。

なんの分析も加えず、単純に買ってから、ある日数を経過して売るだけです。

Function BuyTheStock(STRT As Integer, TERM As Integer, Kabusuu As Currency) As Currency
'株式の売買を行って結果を返す(始値で購入して、始値で売ると仮定)
'STRT:当日から見た開始日(当日なら0、前日なら-1)
'TERM:保有期間(STRTから何営業日間保有するかを指定,>0,25日間なら24を指定)
'Kabusuu:購入株数
'戻り値:損益額
    
    Dim RET As Currency
    Dim S As String
    
    If STRT < -255 Or (STRT + TERM) > 255 Or TERM <= 0 Then
        BuyTheStock = 0
        Exit Function
    End If
    
    If KabukaInfo(STRT + TERM, CHajimene) = 0 Or KabukaInfo(STRT, CHajimene) = 0 Then
        BuyTheStock = 0
        Exit Function
    End If
    
    RET = (KabukaInfo(STRT + TERM, CHajimene) - KabukaInfo(STRT, CHajimene)) * Kabusuu
    If RET > 0 Then S = "○ " Else S = "× "
    S = S & "開始=" & CStr(STRT) & " 期間=" & CStr(TERM) & " 株数=" & CStr(Kabusuu) & " 結果=" & CStr(RET)
    
    Call OutputLogFile("BuyTheStock", S)
    '処理結果を確認用ファイルへ出力

    BuyTheStock = RET

End Function

実行結果を確認

いつも通り、トヨタ自動車の株価データを使います。
急落した10月17日に100株購入して、急騰した11月4日に売った場合の結果です。

CALL SetKabukaInfo("7203",#2014/10/17#,-255)
CALL SetFutureKabukaInfo("7203",#2014/10/17#,255)
?BuyTheStock(0,11,100)
 96900 

出力されたテキストファイルは、こんな感じになります。
2014/11/16-14:07:28:○ 開始=0 期間=11 株数=100 結果=96900

 - ACCESSデータベース

↓ブログランキングに参加中!ご協力をお願いします!

にほんブログ村 IT技術ブログ プログラム・プログラマーへ
にほんブログ村

プログラマー ブログランキングへ

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です