官术网_书友最值得收藏!

Placing a simple REGULAR order

This recipe demonstrates how to place a REGULAR order on the exchange via the broker. REGULAR orders are the simplest types of orders. After trying out this recipe, check your broking account by logging into the broker's website; you will find that an order has been placed there. You can match the order ID with the one that's returned in the last code snippet shown in this recipe.

Getting ready

Make sure the broker_connection object is available in your Python namespace. Refer to the first recipe of this chapter to learn how to set up this object.

How to do it…

We execute the following steps to complete this recipe:

  1. Import the necessary constants from pyalgotrading:
>>> from pyalgotrading.constants import *
  1. Fetch an instrument for a specific trading symbol and exchange:
>>> instrument = broker_connection.get_instrument(segment='NSE', 
tradingsymbol='TATASTEEL')
  1. Place a simple regular order – a BUY, REGULAR, INTRADAY, MARKET order:
>>> order_id = broker_connection.place_order(
instrument=instrument,
order_transaction_type= \
BrokerOrderTransactionTypeConstants.BUY,
order_type=BrokerOrderTypeConstants.REGULAR,
order_code=BrokerOrderCodeConstants.INTRADAY,
order_variety= \
BrokerOrderVarietyConstants.MARKET,
quantity=1)
>>> order_id

We'll get the following output:

191209000001676

How it works…

In step 1, you import constants from pyalgotrading. In step 2, you fetch the financial instrument with segment = 'NSE' and tradingsymbol = 'TATASTEEL' using the get_instrument() method of broker_connection. In step 3, you place a REGULAR order using the place_order() method of broker_connection. The descriptions of the parameters accepted by the place_order() method are as follows: 

  • instrument: The financial instrument for which the order must be placed. Should an instance of the Instrument class. You pass instrument here.
  • order_transaction_type: The order transaction type. Should be an enum of type BrokerOrderTransactionTypeConstants. You pass BrokerOrderTransactionTypeConstants.BUY here.
  • order_type: The order type. Should be an enum of type BrokerOrderTypeConstants. You pass BrokerOrderTypeConstants.REGULAR here.
  • order_code: The order code. Should be an enum of type BrokerOrderCodeConstants. You pass BrokerOrderCodeConstants.INTRADAY here.
  • order_variety: The order variety. Should be an enum of type BrokerOrderVarietyConstants. You pass BrokerOrderVarietyConstants.MARKET here.
  • quantity: The number of shares to be traded for the given instrument. Should be a positive integer. We pass 1 here.

If the order placement is successful, the method returns an order ID which you can use at any point in time later on for querying the status of the order.

A detailed explanation of the different types of parameters will be covered in Chapter 6, Placing Trading Orders on the Exchange. This recipe is intended to give you an idea of how to place a REGULAR order, one of the various types of possible orders.

主站蜘蛛池模板: 呼伦贝尔市| 当阳市| 平原县| 忻州市| 东源县| 津南区| 沈丘县| 新营市| 宜州市| 陇西县| 乌审旗| 始兴县| 凤翔县| 新和县| 永修县| 景德镇市| 泽库县| 桃园市| 二连浩特市| 德钦县| 得荣县| 克拉玛依市| 确山县| 太仓市| 榆中县| 道孚县| 仁化县| 大城县| 佛冈县| 柞水县| 莆田市| 温宿县| 郸城县| 娱乐| 富民县| 师宗县| 锡林浩特市| 密云县| 咸宁市| 涞源县| 邓州市|