FC2ブログ
現役プログラマー村健の、投資に役立つプログラムを作るための勉強ブログです。 自動売買、システムトレードに挑戦!します。 勉強と習得の成果を記録です。
本ブログについて
本ブログは、プログラマー観点で投資への対費用効果を上げるために何ができるか?を考えていくブログです。
基本的には、ツール作成・公開、投資に関わるプログラム情報、最終的には 完全なる自動売買を目指しています。

現在、HPの方で現在作成中のツールや発注ロジックなどを公開中です。
移動平均線用に計算します。

データ格納用の構造体です。

'移動平均線データ
Public Structure MovingAverageData

Dim day As Date '日付
Dim rate As Double '平均値

End Structure


算出するのは以下のロジックです。
前回作成した日足データを渡します。
日数毎で平均値を求めます。

'移動平均線算出
Private Function getMovingAverage(dailyData As List(Of DailyChartData), day As Integer) As Dictionary(Of Date, Double)

Dim averageData As New Dictionary(Of Date, Double) '日ごとの平均値を格納
Dim que = New Queue(Of Double)() '算出した平均値を一時的に格納
Dim averageDateData(day - 1) As Double '平均値の計算用

For Each tmpDailyData In dailyData

que.Enqueue(tmpDailyData.closeRate)

'平均値算出日数に達していない場合
If que.Count < day Then
averageData.Add(tmpDailyData.day, 0) 'この日のデータは0値として格納
Continue For
End If

averageData.Add(tmpDailyData.day, que.Average)
que.Dequeue()
Next

Return averageData

End Function


以下でそれぞれの平均値を作成します。

'補助データの作成
Dim averageData_3 As Dictionary(Of Date, Double) = getMovingAverage(chartData, 3) '3日平均
Dim averageData_25 As Dictionary(Of Date, Double) = getMovingAverage(chartData, 25) '25日平均
Dim averageData_75 As Dictionary(Of Date, Double) = getMovingAverage(chartData, 27) '75日平均


ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
https://investprogrammers.blog.fc2.com/tb.php/298-9e411831
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック