-
「IdouKikan = 5」〜「End If」をコピー、期間日数等を変更して、移動平均を3つ描くスクリプトがあっという間に完成です。
-
ITickerは標準で3本描けますので、このスクリプトを利用すると併せて6本同時表示できることになります。
-
勿論、同様にして5,6・・個と更に増やすことも可能です。
'ここから
Option Explicit
Dim IdouKikan '移動平均を計算する期間を指定するための変数
Dim pen1, pen2, pen3, index, sum, ave, j
ITCreateObjStdPen 3
Set pen1 = ITObjStdPen(0)
Set pen2 = ITObjStdPen(1)
Set pen3 = ITObjStdPen(2)
pen1.SetCnd ITAreaStock, ITChartLine1, ITStyleSolid, 1, ITModeCopypen
pen2.SetCnd ITAreaStock, ITChartLine1, ITStyleSolid, 1, ITModeCopypen
pen3.SetCnd ITAreaStock, ITChartLine1, ITStyleSolid, 1, ITModeCopypen
For index = 0 To ITMaxCnt-1
'5日移動平均
IdouKikan = 5
ave = 0
If index-(IdouKikan-1) >= 0 Then
sum = 0
For j = 0 To IdouKikan-1
sum
= sum + ITGetClose(index-j)
Next
ave = sum / IdouKikan
End If
pen1.SetData index, ave, 0, True, RGB(255,0,0)
'20日移動平均
IdouKikan = 20
ave = 0
If index-(IdouKikan-1) >= 0 Then
sum = 0
For j = 0 To IdouKikan-1
sum
= sum + ITGetClose(index-j)
Next
ave = sum / IdouKikan
End If
pen2.SetData index, ave, 0, True, RGB(0,255,0)
'60日移動平均
IdouKikan = 60
ave = 0
If index-(IdouKikan-1) >= 0 Then
sum = 0
For j = 0 To IdouKikan-1
sum
= sum + ITGetClose(index-j)
Next
ave = sum / IdouKikan
End If
pen3.SetData index, ave, 0, True, RGB(0,0,255)
Next
ITDraw
' ここまで |
-
このスクリプトを良く見ると、「ave = 0」〜「End If」という全く同じコードが3回出てきています。この辺り何か工夫が出来そうです。
-
と、ネタを振りつつ次章に続きます。
|