2

現在、私は Python から R に切り替えており、Jeff Ryan の Ibrokers パッケージを使用してポートフォリオの価格を設定する簡単なコードを書こうとしています。twsconnオブジェクトの 1 つにクラスのフィールドを持ちたい

setClass( "MktAsset",
  representation( IB.id = "character",
                          asset.type = "factor",
              ccy = "factor",
              IB.conn = "twsconn") )

しかし、システムはそれについて満足していないようです

メッセージは

.completeClassSlots(ClassDef, where) : "MktAsset" の定義で未定義のスロット クラス: IB.connection(class "twsconn")

しかし、twsのクラスを尋ねると(で初期化されtws <- twsConnect()、返されます

[1] "twsconn"     "environment"

コードを調べてクラスの存在を確認しようとしましたtwsconnが、何も見つかりませんでした。

誰か助けてくれませんか?

どうもありがとう

4

1 に答える 1

3

問題は S4 中の S3 です。これはうまくいくはずです:

setOldClass("twsconn")  # this is what you are missing
setClass( "MktAsset",
  representation( IB.id = "character",
                     asset.type = "factor",
         ccy = "factor",
         IB.conn = "twsconn") )

# [1] "MktAsset"

a <- new("MktAsset")

ibg <- ibgConnect() # connect to IB Gateway

a@IB.conn <- ibg
a

An object of class "MktAsset"
Slot "IB.id":
character(0)

Slot "asset.type":
factor(0)
Levels:

Slot "ccy":
factor(0)
Levels:

Slot "IB.conn":
<twsConnection,1 @ 20110325 13:15:22 CST, nextId=1>

4 月にシカゴの R/Finance www.RinFinance.comにお越しいただければ、金曜日の朝 (4 月 29 日) に IBroker (および R を使用したアルゴリズム取引全般) に関する 2 時間のワークショップを行う予定です。興味深いと思います。

于 2011-03-25T18:31:15.817 に答える