楽天証券の口座でデイトレの自動売買に挑戦しようと Windows / Excel 上で利用できる マーケットスピード II RSS を活用してリアルタイムで株価などのデータを取り込んでいます。リアルタイムで売買ができるように Python で強化学習のアルゴリズムを利用したシステム開発に日々取り込んでいます。
毎日のように生成 AI とのやりとりをしていますが、VWAP に関するやりとりで残しておきたい内容を備忘録としてまとめました。
VWAP クラス
一定間隔で取得する株価 price と累積出来高 cumulative_volume データから update メソッドを実行して VWAP を算出するクラスです。生成 AI の Copilot で生成してもらいました。
class VWAP:
def __init__(self):
self.running_pv = 0.0
self.running_vol = 0.0
self.vwap = 0.0
self.prev_vwap = 0.0
self.prev_volume = None
def clear(self):
self.running_pv = 0.0
self.running_vol = 0.0
self.vwap = 0.0
self.prev_vwap = 0.0
self.prev_volume = None
def getValue(self) -> float:
return self.vwap
def getSlope(self) -> float:
return self.vwap - self.prev_vwap
def update(self, price: float, cumulative_volume: float) -> float:
# 初回ティック:始値を VWAP として採用
if self.prev_volume is None:
self.prev_volume = cumulative_volume
self.vwap = price
self.prev_vwap = price
return self.vwap
# 出来高の増加量
vol_delta = cumulative_volume - self.prev_volume
self.prev_volume = cumulative_volume
# 異常値(出来高減少)は無視
if vol_delta <= 0:
return self.vwap
# 加重合計を更新
self.running_pv += price * vol_delta
self.running_vol += vol_delta
# VWAP 更新
self.prev_vwap = self.vwap
self.vwap = self.running_pv / self.running_vol
return self.vwap
強化学習で VWAP の情報を利用する場合
一般的な VWAP ベースの報酬ロジックでは、建玉のエントリー価格がVWAPより有利かどうか(割安で買えたか、割高で売れたか)を基準に報酬を設計します。 これは「市場の平均約定価格より有利な取引を評価する」考え方に基づいています。
✅ ロング(買建)の場合
- 価格 < VWAP → 割安で買えた → 報酬を強化
- 価格 > VWAP → 割高で買った → 報酬を抑制またはペナルティ
例:報酬ロジック(買建)
reward = np.tanh((vwap - entry_price) / vwap * scaling_factor)
- scaling_factor は 10〜50 程度で調整
- VWAP より安く買えたほど報酬がプラスに近づく
✅ ショート(売建)の場合
- 価格 > VWAP → 割高で売れた → 報酬を強化
- 価格 < VWAP → 割安で売った → 報酬を抑制またはペナルティ
例:報酬ロジック(売建)
reward = np.tanh((entry_price - vwap) / vwap * scaling_factor)
- VWAP より高く売れたほど報酬がプラスに近づく
応用設計案
- 報酬の符号を VWAP 乖離率の符号に一致させる
→ ロングなら (VWAP - Price), ショートなら (Price - VWAP) - 報酬の強さを乖離率の大きさで調整
→ 乖離が大きいほど報酬を強化(ただし tanh で圧縮) - VWAP 乖離が不利な方向ならペナルティ
→ 例:ロングで VWAP より高く買ったら -0.5 固定報酬など
実務での使われ方(参考)
- 機関投資家は VWAP より有利な価格で約定することを目指す
→ VWAP を「執行品質」の基準として使う - アルゴリズム取引では VWAP を「目標価格」として報酬設計に組み込む
→ VWAP 乖離が小さいほど「良い執行」と評価される
参考サイト
- 売買高加重平均価格(VWAP) ─ 用語集 | 日本取引所グループ
- VWAP(ブイワップ)の見方・使い方 | 需給指標 | 指標の見方・使い方 | 投資のノウハウ | 株の達人

0 件のコメント:
コメントを投稿