Help us understand the problem. What is going on with this article?

Quantopianチュートリアル LESSON 10

More than 3 years have passed since last update.

前回 の続きです。

LESSON 10 Managing Orders

Quantopianのスリッページモデルを使用していると、出した注文が必ずしもすべて約定するとは限りません。未約定の注文は約定またはキャンセルされるまで残るため、このような状態を考慮する必要があります。

order_target_percent() は未約定の注文を考慮しません。当日の引けで注文はキャンセルされますが、1日の間に未約定の注文が残ったまま追加の注文を出すと、元の資金をオーバして取引してしまいます(オーバオーダ)。

オーバオーダを回避するためには get_open_orders() 関数を用いて未約定の注文を確認します。引数に銘柄のインスタンスを渡すことで、対象銘柄の未約定注文を辞書型で返します。

下記の例では未約定の注文が存在しない状態で、且つ取引可能である場合にXTLをロングしています。コードは こちら からcloneできます。

def initialize(context):
    # Relatively illiquid stock.
    context.xtl = sid(40768)

def handle_data(context, data):
    # Get all open orders.
    open_orders = get_open_orders()

    if context.xtl not in open_orders and data.can_trade(context.xtl):
        order_target_percent(context.xtl, 1.0)

LESSON 11 Putting It All Together

LESSON 9 <--> LESSON 11

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away