株価データからいろいろな指数を割り出す

モジュールインポートなど


# -*- coding: shift_jis -*-
import re,os,string
import datetime
from calendar import *
from sqlobject import *
import csv

rootDir = '/Users/*****/Desktop/kabu/'

ここで前回までと一部変更。データベース接続関数connectDb()を廃止し、冒頭部分でデータベースへの接続を行う(理由後述)

connection_string = 'sqlite://' + rootDir + 'data.db'
connection = connectionForURI(connection_string)
sqlhub.processConnection = connection

各種指数格納データベースの設定


class signsDb(SQLObject):
code = IntCol()
divRate = IntCol()
qty = IntCol()
max40 = IntCol()
min20 = IntCol()
min40 = IntCol()
max20 = IntCol()
p_today = IntCol()

指数計算関数

数字の配列valuesを渡すと、平均値を計算してくれる関数average(標準モジュールにあるか分からなかったので…)、そしてvalue内の個々の数字の変動幅(ボラティリティ)を求める関数ratediv。


def average(values):
return sum(values, 0.0) / len(values)
def ratediv(values):
div = []
avg = average(values)
for i in values:
divdata = abs((i - avg)/avg)
div.append(divdata)
return round(average(div) ,3)

(以下明日へ続く)