概要
- RuneScapeのGrand Exchangeでアルゴリズム取引を実装したプロジェクトの説明。
- Grand Exchangeは、すべてのプレイヤーがアイテムを売買できる市場で、アイテムごとに4時間ごとの購入制限がある。
- すべての売却オファーには1%の税金が課され、これはゲーム開発者がインフレを調整するために使われる。
構成要素
- ボットは3つのアプリケーションで構成される。OSRS Wikiのリアルタイムアイテム価格ストリームとやり取りするJavaScript API、キャラクターの行動を制御するJavaクライアント、そして候補オファーの収益性を予測するPython API。
- データパイプラインは2つのcronjobで構成され、それぞれ5分ごとと1時間ごとにOSRS Wiki APIをポーリングしてデータを収集する。
- モデルの損失関数の目標は、1秒あたりに生成されるゴールド量である。
ベースライン手法
- ベースライン手法では、アイテムの直近の価格スプレッドと取引量に基づいてROIと取引量比率を計算する。
- 各アイテムのROI Zスコアと取引量比率 Zスコアを計算し、過去に平均ゴールド毎秒が負だったアイテムを除外する。
機械学習手法
- ベースライン手法と、ランダムフォレスト、ニューラルネットワーク回帰モデルを比較する1週間の実験を実施。
- 結果は平均時間当たり利益を基準に並べられている。
- ランダムフォレストモデルが最も高い収益を記録。
- ニューラルネットワークモデルがそれに続き、ベースライン手法が最も低い収益を記録。
結論
- 機械学習手法はベースライン手法よりも高い性能を示した。
- ランダムフォレストモデルが最も高い収益を記録し、これはモデルの検証損失とも一致していた。
GN⁺のまとめ
- RuneScapeのGrand Exchangeにおけるアルゴリズム取引は、ゲーム内経済を理解し、機械学習によって収益を最大化する興味深いプロジェクトである。
- ランダムフォレストモデルがニューラルネットワークよりも良い性能を示したことから、データの変動性が低く、予測が高頻度かつ低ROIであることが分かる。
- このプロジェクトは、ゲーム内経済システムを理解し、機械学習を実践するうえで有用である可能性がある。
- 類似の機能を持つプロジェクトとして、株式市場におけるアルゴリズム取引がある。
1件のコメント
Hacker Newsのコメント
Google Sheetを使ってWikiのAPI経由でデータを分析した経験の共有。時間当たりの利益は低いとのこと。市場およびカテゴリレベルでの価格トレンド分析の必要性にも言及。個人の収益性スプレッドシートも共有。
Runescapeの全盛期には、GEで同じレアアイテムに対して買い注文と売り注文を同時に出して利益を得ていたという説明。これを「マーケットメイク」と呼んでいる。
World of Warcraftのモバイルアプリでオークションハウスを閲覧し、アイテムの売買ができた経験を共有。APIをリバースエンジニアリングしてオークションハウス用ボットを書いたことがあり、それがアプリ終了の一因だったのではないかと推測。
Runescapeに対する好意的な意見。20年以上にわたってアップデートが続いているゲームであることを強調。コミュニティによる所有権をめぐる不満はあるものの、今でも新しい武器やクエストが追加されている。
Runescapeとの主な関わり方がプログラミングだという経験の共有。カラーボットや基本的なクリッカーボットを使用。
pyautoguiを使った100行のPythonコードで、ゲーム内の面倒な部分を自動化している。Hypixelでの経験を共有。さまざまなクラフトレシピの入力価格と出力価格を監視し、利益が一定水準に達したらクラフトを実行していた。ゲームの奥深さはそれほどなく退屈になったが、楽しく遊べたとのこと。
2つのcronjobを使ってOSRS Wiki APIとやり取りする方法の説明。5分ごとと1時間ごとにデータを取得する理由について疑問を呈している。
RunescapeでGE導入前の取引により約1,000 GBPを稼いだ経験の共有。パーティーハットを安く買って高く売る方式だったという。ゲームをやめてから、eBayですべてを売却した経験も語っている。
モデリングへの理解不足を詫びつつ、5分間隔の価格データを収集しているのか、それとも時間枠全体にわたるパターンを探しているのかという疑問を提起。
EVEの市場で同様の実験をした人がいるかどうかという質問。