買い指示


class stockBuy(SQLObject):
code = IntCol()
buyPrice = IntCol()
qty = IntCol()
買い指示を立てた銘柄のコード、買った値段、数量を収納するDBを作成。

def posBuy():
positions =[]
買っている銘柄一覧を収納する配列positionを初期化。

boughtStocks= stockBuy.select(stockBuy.q.code)
for x in boughtStocks:positions.append(x.code)
print 'your current portfolio:',positions
銘柄一覧をpositionに収納。

peeps = signsDb.select(signsDb.q.p_today > signsDb.q.max40,
orderBy = -signsDb.q.divRate)
各種指数を格納したsignsDbから、ある条件を満たす銘柄を選んできて、変化率の大きい順に並べる。

for j,i in enumerate(peeps):
if j == 10 - len(positions):break
並び替えた結果が上位の銘柄に対して、既に買っている銘柄+買い指示を出した銘柄が計10銘柄に達するまで買い指示を実行する。

if i.code not in positions:
print 'code %d showed "buy" sign! price is JPY %d.' % (i.code,i.p_today)
対象の銘柄が既に買っている銘柄一覧にない場合、「買いサインが出たよ!」と表示する。

stockBuy(
code = i.code,
buyPrice = i.p_today,
qty = 0)
stockBuyデータベースへの収納処理を行う。

connection.cache.clear()
キャッシュクリアのおまじない。