平凡な会社員のトレード日誌

日本株のシステムトレード記録。年率50%を目標にExcelを使い自動売買しています。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

グラフ元データ処理

グラフにする日足データを「work」シートのグラフデータ部分に貼り付けます。この時に前の「データ範囲」処理で調べた「日足」シートの位置を使います。
エントリする前の状況や手仕舞いした後の状況をグラフに表示させたいので、グラフの範囲を広げます。
移動平均線を計算したり、エントリ・手仕舞い金額をグラフデータ部分にセットします。
元データを変更したら、そのデータをグラフに反映させます。

Function グラフ元データ処理()
w = 1
Sheets("work").Select
Columns("B:J").Select
Selection.ClearContents
For j = StartGyo - 10 To EndGyo + 5
  'エントリの10日前から手仕舞いの5日後までのデータを作成します
Sheets("日足").Select
Sheets("work").Cells(w, 2) = Cells(j, 2) * 100 '始値
Sheets("work").Cells(w, 3) = Cells(j, 3) * 100 '高値
Sheets("work").Cells(w, 4) = Cells(j, 4) * 100 '安値
Sheets("work").Cells(w, 5) = Cells(j, 5) * 100 '終値
'移動平均線の計算
Sheets("work").Cells(w, 6) = Application.WorksheetFunction.Average(Range(Cells(j, 5), Cells(j - 24, 5))) * 100
Sheets("work").Cells(w, 7) = Application.WorksheetFunction.Average(Range(Cells(j, 3), Cells(j - 4, 3))) * 100
Sheets("work").Cells(w, 8) = Application.WorksheetFunction.Average(Range(Cells(j, 4), Cells(j - 4, 4))) * 100 '安値
If j >= StartGyo And j <= EndGyo Then
Sheets("work").Cells(w, 9) = Abs(Sheets("売買記録").Cells(h, 5)) 'エントリ金額
Sheets("work").Cells(w, 10) = Abs(Sheets("売買記録").Cells(h, 7)) '手仕舞い金額
End If
w = w + 1
'日足データがなくなったら処理終了
If j >= Val(Cells(1, 1).CurrentRegion.Rows.Count) Then
Exit For
End If
Next j
'グラフを更新
Worksheets("work").ChartObjects(1).Activate
ActiveChart.SetSourceData Source:=Range("B1:E" & w - 1), PlotBy:=xlColumns
Worksheets("work").ChartObjects(2).Activate
ActiveChart.SetSourceData Source:=Range("F1:J" & w - 1), PlotBy:=xlColumns

Range("A1").Select  'これを指定しないと次の処理が動かない

End Function

グラフを更新する時のRangeの処理はなぜかこの様式でないとうまくいきませんでした。Cellsで範囲指定してもエラーになりました。なぜでしょう・・・
まあ、動けばいいんですけどね(汗)
スポンサーサイト
  1. 2007/03/24(土) 16:51:10|
  2. Excelチャート
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://kojimaro.blog70.fc2.com/tb.php/220-37200006
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。