Agent class

Description

Agent クラスはすべてのトレーダ・エージェントの基底クラスを担う. このクラスは特別な取引戦略をもたない.

Agent クラスは,エージェントに注文の意思決定を実行させる役割を担うメソッド submitOrders(...) をもつ. プログラマは submitOrders(...) をオーバーライドし,任意の取引戦略を実装できる. Agent クラスは,トレーダに共通する情報として,現金の総額と資産の数量をフィールドとしてもつ.

Model

なし.

Parameters

  JSON keyword Field variable  
  markets 取引銘柄
  cashAmount cashAmount 現金の総額
  assetVolumes assetVolumes(s) 資産の数量(銘柄 s)

Complete JSON example

"My-Agent": {
    "class": "Agent",
    "numAgents": 100,

    "MEMO": "Agent class",
    "markets": ["Market-A", "Market-B"],
    "assetVolumes": 0,
    "cashAmount": 0
}

Parameter setup from JSON

markets

エージェントが取引対象とする銘柄(マーケット)のリストを指定する.

例)

{  "markets": ["Market-A", "Market-B"]  }

cashAmount

エージェントの初期現金の総額を指定する.

例)

{  "cashAmount": 10000  }

assetVolumes

エージェントの初期の資産の数量を指定する.

例)辞書型を用いて個別銘柄ごとに数量を指定できる.

{  "assetVolumes": { "Market-A": 100, "Market-B": 200 }  }

例)単一の整数を指定した場合,すべての銘柄(markets)にその値が設定される.

{  "assetVolumes": 100  }

Fields & Methods

submitOrders(List[Market]) → List[Order]

エージェントによる注文の意思決定を実装するメソッドである.

註)Agent クラスの submitOrders(...) は抽象メソッドではない. テストを容易にする意図で,現在の市場価格の周りでランダムに買い/売り注文をだすよう実装されている.

isMarketAccessible(Market) → Boolean

エージェントの取引対象とする銘柄(マーケット)かどうかを返す.

註)メソッド getAssetVolume(m) など資産情報にアクセスする場合,isMarketAccessible(m) == true でなければアサーションエラーとなる.

setMarketAccessible(Market), setMarketsAccessible(List[Market])

ある銘柄(マーケット)を取引対象に指定する.

註)メソッド getAssetVolume(m) など資産情報にアクセスする場合,setMarketAccessible(m) を実行した後なければアサーションエラーとなる.

References

なし.