diff --git a/.github/workflows/go-test.yml b/.github/workflows/go-test.yml new file mode 100644 index 0000000..1cb615f --- /dev/null +++ b/.github/workflows/go-test.yml @@ -0,0 +1,33 @@ +name: Go Test + +on: + push: + branches: [master, develop] + pull_request: + branches: [master, develop] + +jobs: + test: + strategy: + matrix: + go-version: ["1.21", "1.22", "1.23", "1.24"] + platform: [ubuntu-latest] + + runs-on: ${{ matrix.platform }} + + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go-version }} + check-latest: true + + - name: Run Go Vet + run: go vet ./... + + - name: Run Go Test + run: go test -v ./... diff --git a/.gitignore b/.gitignore index d162ba4..80d9a36 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -.chglog \ No newline at end of file +.chglog +.env +.vscode \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..bb5989c --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "mock_responses"] + path = mock_responses + url = https://github.com/zerodha/kiteconnect-mocks diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 56352f3..0000000 --- a/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -language: go -go: - - 1.9.x - - 1.10.x - - 1.11.x - - 1.12.x - - 1.13.x - -install: go get -t -v . -script: go test -v -cover . diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 2ade13e..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,71 +0,0 @@ - -## [Unreleased] - - - -## [v3.1.0] - 2019-09-09 -### Chore -- update examples and changelog -- modify examples -- add go 1.11 to travis config - -### Feat -- implement gtt orders api -- add models for gtt - -### Fix -- travis config, update go versions -- change type of instrument token in orders response struct to uint32 -- access token and api key getting appended multiple times in ticker -- ticker SetRootURL() method didn't set root URL - -### Test -- fix test for Cancel Order - -### Tests -- update test package, gtt tests - -### Pull Requests -- Merge pull request [#11](https://github.com/zerodhatech/gokiteconnect/issues/11) from rhnvrm/master -- Merge pull request [#10](https://github.com/zerodhatech/gokiteconnect/issues/10) from rhnvrm/master - - - -## v3.0.0 - 2018-09-03 -### Chore -- add travis ci config - -### Connect_test -- Refactor setting up mock responders - -### Feat -- convert package to go module -- fix tests and make struct members of instrument public - -### Fix -- fix goversion in travis -- add custom go get command in travis -- travis config -- remove models.PlainResponse from user and portfolio calls - -### Refactor -- calculate depthitem info -- minor cosmetic change - -### Test -- added tests for errors - -### Tests -- market - -### Pull Requests -- Merge pull request [#7](https://github.com/zerodhatech/gokiteconnect/issues/7) from zerodhatech/gomod -- Merge pull request [#5](https://github.com/zerodhatech/gokiteconnect/issues/5) from rhnvrm/markettest -- Merge pull request [#4](https://github.com/zerodhatech/gokiteconnect/issues/4) from rhnvrm/errors_test -- Merge pull request [#3](https://github.com/zerodhatech/gokiteconnect/issues/3) from rhnvrm/master -- Merge pull request [#1](https://github.com/zerodhatech/gokiteconnect/issues/1) from mr-karan/tests -- Merge pull request [#2](https://github.com/zerodhatech/gokiteconnect/issues/2) from zerodhatech/travis - - -[Unreleased]: https://github.com/zerodhatech/gokiteconnect/compare/v3.1.0...HEAD -[v3.1.0]: https://github.com/zerodhatech/gokiteconnect/compare/v3.0.0...v3.1.0 diff --git a/README.md b/README.md index b18e74f..089e483 100644 --- a/README.md +++ b/README.md @@ -2,19 +2,22 @@ The official Go client for communicating with the Kite Connect API. -Kite Connect is a set of REST-like APIs that expose many capabilities required to build a complete investment and trading platform. Execute orders in real time, manage user portfolio, stream live market data (WebSockets), and more, with the simple HTTP API collection. +Kite Connect is a set of REST-like APIs that expose many capabilities required +to build a complete investment and trading platform. Execute orders in real +time, manage user portfolio, stream live market data (WebSockets), and more, +with the simple HTTP API collection. -Zerodha Technology (c) 2018. Licensed under the MIT License. +Zerodha Technology (c) 2021. Licensed under the MIT License. ## Documentation -- [Client API documentation - GoDoc](https://godoc.org/github.com/zerodhatech/gokiteconnect) +- [Client API documentation - GoDoc](https://godoc.org/github.com/zerodha/gokiteconnect) - [Kite Connect HTTP API documentation](https://kite.trade/docs/connect/v3) ## Installation ``` -go get github.com/zerodhatech/gokiteconnect +go get github.com/zerodha/gokiteconnect/v4 ``` ## API usage @@ -25,7 +28,7 @@ package main import ( "fmt" - "github.com/zerodhatech/gokiteconnect" + kiteconnect "github.com/zerodha/gokiteconnect/v4" ) const ( @@ -71,14 +74,19 @@ import ( "fmt" "time" - kiteconnect "github.com/zerodhatech/gokiteconnect" - "github.com/zerodhatech/gokiteconnect/ticker" + kiteconnect "github.com/zerodha/gokiteconnect/v4" + kitemodels "github.com/zerodha/gokiteconnect/v4/models" + kiteticker "github.com/zerodha/gokiteconnect/v4/ticker" ) var ( ticker *kiteticker.Ticker ) +var ( + instToken = []uint32{408065, 112129} +) + // Triggered when any error is raised func onError(err error) { fmt.Println("Error: ", err) @@ -92,14 +100,21 @@ func onClose(code int, reason string) { // Triggered when connection is established and ready to send and accept data func onConnect() { fmt.Println("Connected") - err := ticker.Subscribe([]uint32{53718535}) + err := ticker.Subscribe(instToken) if err != nil { fmt.Println("err: ", err) } + // Set subscription mode for the subscribed token + // Default mode is Quote + err = ticker.SetMode(kiteticker.ModeFull, instToken) + if err != nil { + fmt.Println("err: ", err) + } + } // Triggered when tick is recevived -func onTick(tick kiteticker.Tick) { +func onTick(tick kitemodels.Tick) { fmt.Println("Tick: ", tick) } @@ -139,9 +154,9 @@ func main() { } ``` -# Examples +## Examples -Check [examples folder](https://github.com/zerodhatech/gokiteconnect/tree/master/examples) for more examples. +Check [examples folder](https://github.com/zerodha/gokiteconnect/tree/master/examples) for more examples. You can run the following after updating the API Keys in the examples: @@ -149,13 +164,18 @@ You can run the following after updating the API Keys in the examples: go run examples/connect/basic/connect.go ``` -## Run unit tests +## Development + +#### Fetch mock responses for testcases + +This needs to be run initially ``` -go test -v +git submodule update --init --recursive ``` -## Changelog - -[Check CHANGELOG.md](CHANGELOG.md) +#### Run unit tests +``` +go test -v +``` diff --git a/alerts.go b/alerts.go new file mode 100644 index 0000000..bcd515e --- /dev/null +++ b/alerts.go @@ -0,0 +1,280 @@ +package kiteconnect + +import ( + "encoding/json" + "fmt" + "net/http" + "net/url" + + "github.com/zerodha/gokiteconnect/v4/models" +) + +// URI constants for Alerts API +const ( + URIAlerts = "/alerts" + URIAlert = "/alerts/%s" + URIAlertHistory = "/alerts/%s/history" +) + +// AlertType represents the type of alert. +type AlertType string + +const ( + AlertTypeSimple AlertType = "simple" + AlertTypeATO AlertType = "ato" +) + +// AlertStatus represents the status of an alert. +type AlertStatus string + +const ( + AlertStatusEnabled AlertStatus = "enabled" + AlertStatusDisabled AlertStatus = "disabled" + AlertStatusDeleted AlertStatus = "deleted" +) + +// AlertOperator represents the comparison operator. +type AlertOperator string + +const ( + AlertOperatorLE AlertOperator = "<=" + AlertOperatorGE AlertOperator = ">=" + AlertOperatorLT AlertOperator = "<" + AlertOperatorGT AlertOperator = ">" + AlertOperatorEQ AlertOperator = "==" +) + +// Alert represents a market price alert. +type Alert struct { + Type AlertType `json:"type"` + UserID string `json:"user_id"` + UUID string `json:"uuid"` + Name string `json:"name"` + Status AlertStatus `json:"status"` + DisabledReason string `json:"disabled_reason"` + LHSAttribute string `json:"lhs_attribute"` + LHSExchange string `json:"lhs_exchange"` + LHSTradingSymbol string `json:"lhs_tradingsymbol"` + Operator AlertOperator `json:"operator"` + RHSType string `json:"rhs_type"` + RHSAttribute string `json:"rhs_attribute"` + RHSExchange string `json:"rhs_exchange"` + RHSTradingSymbol string `json:"rhs_tradingsymbol"` + RHSConstant float64 `json:"rhs_constant"` + AlertCount int `json:"alert_count"` + CreatedAt models.Time `json:"created_at"` + UpdatedAt models.Time `json:"updated_at"` + Basket *Basket `json:"basket,omitempty"` +} + +// AlertParams represents parameters for creating or modifying an alert. +type AlertParams struct { + Name string // required + Type AlertType // required + LHSExchange string // required + LHSTradingSymbol string // required + LHSAttribute string // required + Operator AlertOperator // required + RHSType string // required ("constant" or "instrument") + RHSConstant float64 // required if RHSType == "constant" + RHSExchange string // required if RHSType == "instrument" + RHSTradingSymbol string // required if RHSType == "instrument" + RHSAttribute string // required if RHSType == "instrument" + Basket *Basket // required if Type == AlertTypeATO +} + +// Basket represents the basket structure for ATO alerts. +type Basket struct { + Name string `json:"name"` + Type string `json:"type"` + Tags []string `json:"tags"` + Items []BasketItem `json:"items"` +} + +// BasketItem represents an item in the basket. +type BasketItem struct { + Type string `json:"type"` + TradingSymbol string `json:"tradingsymbol"` + Exchange string `json:"exchange"` + Weight int `json:"weight"` + Params AlertOrderParams `json:"params"` + ID int `json:"id,omitempty"` + InstrumentToken int `json:"instrument_token,omitempty"` +} + +// AlertOrderParams represents order parameters for a basket item in Alerts API. +type AlertOrderParams struct { + TransactionType string `json:"transaction_type"` + Product string `json:"product"` + OrderType string `json:"order_type"` + Validity string `json:"validity"` + ValidityTTL int `json:"validity_ttl"` + Quantity int `json:"quantity"` + Price float64 `json:"price"` + TriggerPrice float64 `json:"trigger_price"` + DisclosedQuantity int `json:"disclosed_quantity"` + LastPrice float64 `json:"last_price"` + Variety string `json:"variety"` + Tags []string `json:"tags"` + Squareoff float64 `json:"squareoff"` + Stoploss float64 `json:"stoploss"` + TrailingStoploss float64 `json:"trailing_stoploss"` + IcebergLegs int `json:"iceberg_legs"` + MarketProtection float64 `json:"market_protection"` + GTT *OrderGTTParams `json:"gtt,omitempty"` +} + +// OrderGTTParams represents GTT-specific params in order. +type OrderGTTParams struct { + Target float64 `json:"target"` + Stoploss float64 `json:"stoploss"` +} + +// AlertHistory represents a single alert trigger history entry. +type AlertHistory struct { + UUID string `json:"uuid"` + Type AlertType `json:"type"` + Meta []AlertHistoryMeta `json:"meta"` + Condition string `json:"condition"` + CreatedAt models.Time `json:"created_at"` + OrderMeta interface{} `json:"order_meta"` +} + +// AlertHistoryMeta represents meta info for alert history. +type AlertHistoryMeta struct { + InstrumentToken int `json:"instrument_token"` + TradingSymbol string `json:"tradingsymbol"` + Timestamp string `json:"timestamp"` + LastPrice float64 `json:"last_price"` + OHLC models.OHLC `json:"ohlc"` + NetChange float64 `json:"net_change"` + Exchange string `json:"exchange"` + LastTradeTime string `json:"last_trade_time"` + LastQuantity int `json:"last_quantity"` + BuyQuantity int `json:"buy_quantity"` + SellQuantity int `json:"sell_quantity"` + Volume int `json:"volume"` + VolumeTick int `json:"volume_tick"` + AveragePrice float64 `json:"average_price"` + OI int `json:"oi"` + OIDayHigh int `json:"oi_day_high"` + OIDayLow int `json:"oi_day_low"` + LowerCircuitLimit float64 `json:"lower_circuit_limit"` + UpperCircuitLimit float64 `json:"upper_circuit_limit"` +} + +// CreateAlert creates a new alert. +func (c *Client) CreateAlert(params AlertParams) (Alert, error) { + var ( + alert Alert + values = make(url.Values) + ) + + values.Set("name", params.Name) + values.Set("type", string(params.Type)) + values.Set("lhs_exchange", params.LHSExchange) + values.Set("lhs_tradingsymbol", params.LHSTradingSymbol) + values.Set("lhs_attribute", params.LHSAttribute) + values.Set("operator", string(params.Operator)) + values.Set("rhs_type", params.RHSType) + + if params.RHSType == "constant" { + values.Set("rhs_constant", fmt.Sprintf("%v", params.RHSConstant)) + } else if params.RHSType == "instrument" { + values.Set("rhs_exchange", params.RHSExchange) + values.Set("rhs_tradingsymbol", params.RHSTradingSymbol) + values.Set("rhs_attribute", params.RHSAttribute) + } + + if params.Type == AlertTypeATO && params.Basket != nil { + basketJSON, err := json.Marshal(params.Basket) + if err != nil { + return alert, fmt.Errorf("error marshaling basket: %v", err) + } + values.Set("basket", string(basketJSON)) + } + + err := c.doEnvelope(http.MethodPost, URIAlerts, values, nil, &alert) + return alert, err +} + +// GetAlerts retrieves all alerts for a user, with optional filters. +func (c *Client) GetAlerts(filters map[string]string) ([]Alert, error) { + var ( + alerts []Alert + params = url.Values{} + ) + for k, v := range filters { + params.Set(k, v) + } + err := c.doEnvelope(http.MethodGet, URIAlerts, params, nil, &alerts) + return alerts, err +} + +// GetAlert retrieves a specific alert by UUID. +func (c *Client) GetAlert(uuid string) (Alert, error) { + var alert Alert + err := c.doEnvelope(http.MethodGet, fmt.Sprintf(URIAlert, uuid), nil, nil, &alert) + return alert, err +} + +// ModifyAlert modifies an existing alert by UUID. +func (c *Client) ModifyAlert(uuid string, params AlertParams) (Alert, error) { + var ( + alert Alert + values = make(url.Values) + ) + + values.Set("name", params.Name) + values.Set("type", string(params.Type)) + values.Set("lhs_exchange", params.LHSExchange) + values.Set("lhs_tradingsymbol", params.LHSTradingSymbol) + values.Set("lhs_attribute", params.LHSAttribute) + values.Set("operator", string(params.Operator)) + values.Set("rhs_type", params.RHSType) + + if params.RHSType == "constant" { + values.Set("rhs_constant", fmt.Sprintf("%v", params.RHSConstant)) + } else if params.RHSType == "instrument" { + values.Set("rhs_exchange", params.RHSExchange) + values.Set("rhs_tradingsymbol", params.RHSTradingSymbol) + values.Set("rhs_attribute", params.RHSAttribute) + } + + if params.Type == AlertTypeATO && params.Basket != nil { + basketJSON, err := json.Marshal(params.Basket) + if err != nil { + return alert, fmt.Errorf("error marshaling basket: %v", err) + } + values.Set("basket", string(basketJSON)) + } + + err := c.doEnvelope(http.MethodPut, fmt.Sprintf(URIAlert, uuid), values, nil, &alert) + return alert, err +} + +// DeleteAlerts deletes one or more alerts by UUID. +func (c *Client) DeleteAlerts(uuids ...string) error { + if len(uuids) == 0 { + return fmt.Errorf("at least one uuid must be provided") + } + params := url.Values{} + for _, uuid := range uuids { + params.Add("uuid", uuid) + } + // The API returns {"status":"success","data":null} + var resp struct { + Status string `json:"status"` + Data interface{} `json:"data"` + } + deleteURL := URIAlerts + "?" + params.Encode() + err := c.doEnvelope(http.MethodDelete, deleteURL, nil, nil, &resp) + return err +} + +// GetAlertHistory retrieves the history of a specific alert. +func (c *Client) GetAlertHistory(uuid string) ([]AlertHistory, error) { + var history []AlertHistory + err := c.doEnvelope(http.MethodGet, fmt.Sprintf(URIAlertHistory, uuid), nil, nil, &history) + return history, err +} diff --git a/alerts_test.go b/alerts_test.go new file mode 100644 index 0000000..45e42f3 --- /dev/null +++ b/alerts_test.go @@ -0,0 +1,101 @@ +package kiteconnect + +import ( + "testing" +) + +const testUUID = "550e8400-e29b-41d4-a716-446655440000" + +func (ts *TestSuite) TestCreateAlert(t *testing.T) { + t.Parallel() + alert, err := ts.KiteConnect.CreateAlert(AlertParams{ + Name: "NIFTY 50", + Type: AlertTypeSimple, + LHSExchange: "INDICES", + LHSTradingSymbol: "NIFTY 50", + LHSAttribute: "LastTradedPrice", + Operator: AlertOperatorGE, + RHSType: "constant", + RHSConstant: 27000, + }) + if err != nil { + t.Errorf("Error while creating alert: %v", err) + } + if alert.Name != "NIFTY 50" || alert.LHSExchange != "INDICES" { + t.Errorf("Alert fields not parsed correctly: %+v", alert) + } +} + +func (ts *TestSuite) TestGetAlerts(t *testing.T) { + t.Parallel() + alerts, err := ts.KiteConnect.GetAlerts(nil) + if err != nil { + t.Errorf("Error while fetching alerts: %v", err) + } + if len(alerts) == 0 { + t.Errorf("No alerts returned") + } + if alerts[0].UUID == "" || alerts[0].Name == "" { + t.Errorf("Alert fields not parsed correctly: %+v", alerts[0]) + } +} + +func (ts *TestSuite) TestGetAlert(t *testing.T) { + t.Parallel() + alert, err := ts.KiteConnect.GetAlert(testUUID) + if err != nil { + t.Errorf("Error while fetching alert: %v", err) + } + if alert.UUID != testUUID { + t.Errorf("Alert UUID mismatch: got %s, want %s", alert.UUID, testUUID) + } + if alert.Name == "" { + t.Errorf("Alert fields not parsed correctly: %+v", alert) + } +} + +func (ts *TestSuite) TestModifyAlert(t *testing.T) { + t.Parallel() + alert, err := ts.KiteConnect.ModifyAlert(testUUID, AlertParams{ + Name: "NIFTY 50", + Type: AlertTypeSimple, + LHSExchange: "INDICES", + LHSTradingSymbol: "NIFTY 50", + LHSAttribute: "LastTradedPrice", + Operator: AlertOperatorGE, + RHSType: "constant", + RHSConstant: 27500, + }) + if err != nil { + t.Errorf("Error while modifying alert: %v", err) + } + if alert.UUID != testUUID { + t.Errorf("Alert UUID mismatch: got %s, want %s", alert.UUID, testUUID) + } + if alert.RHSConstant != 27500 { + t.Errorf("Alert RHSConstant not updated: got %v, want 27500", alert.RHSConstant) + } +} + +func (ts *TestSuite) TestDeleteAlerts(t *testing.T) { + t.Parallel() + + err := ts.KiteConnect.DeleteAlerts(testUUID) + if err != nil { + t.Errorf("Error while deleting alert: %v", err) + } +} + +func (ts *TestSuite) TestGetAlertHistory(t *testing.T) { + t.Parallel() + history, err := ts.KiteConnect.GetAlertHistory(testUUID) + if err != nil { + t.Errorf("Error while fetching alert history: %v", err) + } + if len(history) == 0 { + t.Errorf("No alert history returned") + } + if history[0].UUID != testUUID { + t.Errorf("Alert history UUID mismatch: got %s, want %s", history[0].UUID, testUUID) + } +} diff --git a/connect.go b/connect.go index fdb4652..581a11c 100644 --- a/connect.go +++ b/connect.go @@ -20,15 +20,16 @@ type Client struct { accessToken string debug bool baseURI string + appName string httpClient HTTPClient } const ( name string = "gokiteconnect" - version string = "3.0.0" + version string = "4.4.x" requestTimeout time.Duration = 7000 * time.Millisecond baseURI string = "https://api.kite.trade" - loginURI string = "https://kite.trade/connect/login?api_key=%s&v=3" + kiteBaseURI string = "https://kite.zerodha.com" // Kite connect header version kiteHeaderVersion string = "3" ) @@ -40,6 +41,8 @@ const ( VarietyAMO = "amo" VarietyBO = "bo" VarietyCO = "co" + VarietyIceberg = "iceberg" + VarietyAuction = "auction" // Products ProductBO = "BO" @@ -47,6 +50,7 @@ const ( ProductMIS = "MIS" ProductCNC = "CNC" ProductNRML = "NRML" + ProductMTF = "MTF" // Order types OrderTypeMarket = "MARKET" @@ -54,9 +58,17 @@ const ( OrderTypeSL = "SL" OrderTypeSLM = "SL-M" + // Market protection + MarketProtectionAuto = -1 + // Validities ValidityDay = "DAY" ValidityIOC = "IOC" + ValidityTTL = "TTL" + + // Position Type + PositionTypeDay = "day" + PositionTypeOvernight = "overnight" // Transaction type TransactionTypeBuy = "BUY" @@ -69,6 +81,7 @@ const ( ExchangeNFO = "NFO" ExchangeBFO = "BFO" ExchangeCDS = "CDS" + ExchangeBCD = "BCD" // Margins segments MarginsEquity = "equity" @@ -86,6 +99,7 @@ const ( URIUserSessionInvalidate string = "/session/token" URIUserSessionRenew string = "/session/refresh_token" URIUserProfile string = "/user/profile" + URIFullUserProfile string = "/user/profile/full" URIUserMargins string = "/user/margins" URIUserMarginsSegment string = "/user/margins/%s" // "/user/margins/{segment}" @@ -97,21 +111,31 @@ const ( URIModifyOrder string = "/orders/%s/%s" // "/orders/{variety}/{order_id}" URICancelOrder string = "/orders/%s/%s" // "/orders/{variety}/{order_id}" - URIGetPositions string = "/portfolio/positions" - URIGetHoldings string = "/portfolio/holdings" - URIConvertPosition string = "/portfolio/positions" + URIGetPositions string = "/portfolio/positions" + URIGetHoldings string = "/portfolio/holdings" + URIGetHoldingsSummary string = "/portfolio/holdings/summary" + URIGetHoldingsCompact string = "/portfolio/holdings/compact" + URIInitHoldingsAuth string = "/portfolio/holdings/authorise" + URIAuctionInstruments string = "/portfolio/holdings/auctions" + URIConvertPosition string = "/portfolio/positions" + + URIOrderMargins string = "/margins/orders" + URIBasketMargins string = "/margins/basket" + URIOrderCharges string = "/charges/orders" // MF endpoints - URIGetMFOrders string = "/mf/orders" - URIGetMFOrderInfo string = "/mf/orders/%s" // "/mf/orders/{order_id}" - URIPlaceMFOrder string = "/mf/orders" - URICancelMFOrder string = "/mf/orders/%s" // "/mf/orders/{order_id}" - URIGetMFSIPs string = "/mf/sips" - URIGetMFSIPInfo string = "/mf/sips/%s" // "/mf/sips/{sip_id}" - URIPlaceMFSIP string = "/mf/sips" - URIModifyMFSIP string = "/mf/sips/%s" // "/mf/sips/{sip_id}" - URICancelMFSIP string = "/mf/sips/%s" // "/mf/sips/{sip_id}" - URIGetMFHoldings string = "/mf/holdings" + URIGetMFOrders string = "/mf/orders" + URIGetMFOrderInfo string = "/mf/orders/%s" // "/mf/orders/{order_id}" + URIPlaceMFOrder string = "/mf/orders" + URICancelMFOrder string = "/mf/orders/%s" // "/mf/orders/{order_id}" + URIGetMFSIPs string = "/mf/sips" + URIGetMFSIPInfo string = "/mf/sips/%s" // "/mf/sips/{sip_id}" + URIPlaceMFSIP string = "/mf/sips" + URIModifyMFSIP string = "/mf/sips/%s" // "/mf/sips/{sip_id}" + URICancelMFSIP string = "/mf/sips/%s" // "/mf/sips/{sip_id}" + URIGetMFHoldings string = "/mf/holdings" + URIGetMFHoldingInfo string = "/mf/holdings/%s" // "/mf/holdings/{isin}" + URIGetAllotedISINs string = "/mf/allotments" // GTT endpoints URIPlaceGTT string = "/gtt/triggers" @@ -176,7 +200,26 @@ func (c *Client) SetAccessToken(accessToken string) { // GetLoginURL gets Kite Connect login endpoint. func (c *Client) GetLoginURL() string { - return fmt.Sprintf(loginURI, c.apiKey) + return fmt.Sprintf("%s/connect/login?api_key=%s&v=%s", kiteBaseURI, c.apiKey, kiteHeaderVersion) +} + +// GetLoginURL gets Kite Connect login endpoint with redirect params appended. +func (c *Client) GetLoginURLWithparams(p url.Values) string { + return fmt.Sprintf("%s/connect/login?api_key=%s&v=%s&redirect_params=%s", + kiteBaseURI, c.apiKey, kiteHeaderVersion, url.QueryEscape(p.Encode())) +} + +// SetAppName sets the application name to the Kite Connect instance. It is used to +// identify the application making the API calls using the user agent. +func (c *Client) SetAppName(appName string) { + c.appName = appName +} + +func (c *Client) userAgent() string { + if c.appName != "" { + return fmt.Sprintf("%s/%s/%s", name, version, c.appName) + } + return fmt.Sprintf("%s/%s", name, version) } func (c *Client) doEnvelope(method, uri string, params url.Values, headers http.Header, v interface{}) error { @@ -191,7 +234,7 @@ func (c *Client) doEnvelope(method, uri string, params url.Values, headers http. // Add Kite Connect version to header headers.Add("X-Kite-Version", kiteHeaderVersion) - headers.Add("User-Agent", name+"/"+version) + headers.Add("User-Agent", c.userAgent()) if c.apiKey != "" && c.accessToken != "" { authHeader := fmt.Sprintf("token %s:%s", c.apiKey, c.accessToken) @@ -211,7 +254,7 @@ func (c *Client) do(method, uri string, params url.Values, headers http.Header) } headers.Add("X-Kite-Version", kiteHeaderVersion) - headers.Add("User-Agent", name+"/"+version) + headers.Add("User-Agent", c.userAgent()) if c.apiKey != "" && c.accessToken != "" { authHeader := fmt.Sprintf("token %s:%s", c.apiKey, c.accessToken) @@ -220,3 +263,19 @@ func (c *Client) do(method, uri string, params url.Values, headers http.Header) return c.httpClient.Do(method, c.baseURI+uri, params, headers) } + +func (c *Client) doRaw(method, uri string, reqBody []byte, headers http.Header) (HTTPResponse, error) { + if headers == nil { + headers = map[string][]string{} + } + + headers.Add("X-Kite-Version", kiteHeaderVersion) + headers.Add("User-Agent", c.userAgent()) + + if c.apiKey != "" && c.accessToken != "" { + authHeader := fmt.Sprintf("token %s:%s", c.apiKey, c.accessToken) + headers.Add("Authorization", authHeader) + } + + return c.httpClient.DoRaw(method, c.baseURI+uri, reqBody, headers) +} diff --git a/connect_test.go b/connect_test.go index fc43ed3..0752f0d 100644 --- a/connect_test.go +++ b/connect_test.go @@ -2,7 +2,6 @@ package kiteconnect import ( "fmt" - "io/ioutil" "net/http" "net/url" "path" @@ -12,12 +11,13 @@ import ( "testing" "time" - httpmock "gopkg.in/jarcoal/httpmock.v1" + "github.com/jarcoal/httpmock" ) const ( uriGetInstrumentsExchangeTest string = "/instruments/nse" uriGetHistoricalTest string = "/instruments/historical/123/myinterval" + uriGetHistoricalWithOITest string = "/instruments/historical/456/myinterval" ) // Test New Kite Connect instance @@ -108,50 +108,80 @@ func TestClientSetters(t *testing.T) { // Following boiler plate is used to implement setup/teardown using Go subtests feature const mockBaseDir = "./mock_responses" -var MockResponders = [][]string{ - // Array of [, , ] +// mockRoute defines a mock HTTP endpoint with its method, URL pattern, and response file. +type mockRoute struct { + method string + route string + filePath string +} +var mockRoutes = []mockRoute{ // GET endpoints - []string{http.MethodGet, URIUserProfile, "profile.json"}, - []string{http.MethodGet, URIUserMargins, "margins.json"}, - []string{http.MethodGet, URIUserMarginsSegment, "margins_equity.json"}, - []string{http.MethodGet, URIGetOrders, "orders.json"}, - []string{http.MethodGet, URIGetTrades, "trades.json"}, - []string{http.MethodGet, URIGetOrderHistory, "order_info.json"}, - []string{http.MethodGet, URIGetOrderTrades, "order_trades.json"}, - []string{http.MethodGet, URIGetPositions, "positions.json"}, - []string{http.MethodGet, URIGetHoldings, "holdings.json"}, - []string{http.MethodGet, URIGetMFOrders, "mf_orders.json"}, - []string{http.MethodGet, URIGetMFOrderInfo, "mf_orders_info.json"}, - []string{http.MethodGet, URIGetMFSIPs, "mf_sips.json"}, - []string{http.MethodGet, URIGetMFSIPInfo, "mf_sip_info.json"}, - []string{http.MethodGet, URIGetMFHoldings, "mf_holdings.json"}, - []string{http.MethodGet, fmt.Sprintf(URIGetGTT, 123), "gtt_get_order.json"}, - []string{http.MethodGet, URIGetGTTs, "gtt_get_orders.json"}, - []string{http.MethodGet, URIGetInstruments, "instruments_all.csv"}, - []string{http.MethodGet, URIGetMFInstruments, "mf_instruments.csv"}, - []string{http.MethodGet, uriGetInstrumentsExchangeTest, "instruments_nse.csv"}, - []string{http.MethodGet, uriGetHistoricalTest, "historical_minute.json"}, - []string{http.MethodGet, URIGetTriggerRange, "trigger_range.json"}, - []string{http.MethodGet, URIGetQuote, "quote.json"}, - []string{http.MethodGet, URIGetLTP, "ltp.json"}, - []string{http.MethodGet, URIGetOHLC, "ohlc.json"}, + {http.MethodGet, URIUserProfile, "profile.json"}, + {http.MethodGet, URIFullUserProfile, "full_profile.json"}, + {http.MethodGet, URIUserMargins, "margins.json"}, + {http.MethodGet, URIUserMarginsSegment, "margins_equity.json"}, + {http.MethodGet, URIGetOrders, "orders.json"}, + {http.MethodGet, URIGetTrades, "trades.json"}, + {http.MethodGet, URIGetOrderHistory, "order_info.json"}, + {http.MethodGet, URIGetOrderTrades, "order_trades.json"}, + {http.MethodGet, URIGetPositions, "positions.json"}, + {http.MethodGet, URIGetHoldings, "holdings.json"}, + {http.MethodGet, URIGetHoldingsSummary, "holdings_summary.json"}, + {http.MethodGet, URIGetHoldingsCompact, "holdings_compact.json"}, + {http.MethodGet, URIGetMFOrders, "mf_orders.json"}, + {http.MethodGet, URIGetMFOrderInfo, "mf_orders_info.json"}, + {http.MethodGet, URIGetMFSIPs, "mf_sips.json"}, + {http.MethodGet, URIGetMFSIPInfo, "mf_sip_info.json"}, + {http.MethodGet, URIGetMFHoldings, "mf_holdings.json"}, + {http.MethodGet, fmt.Sprintf(URIGetGTT, 123), "gtt_get_order.json"}, + {http.MethodGet, URIGetGTTs, "gtt_get_orders.json"}, + {http.MethodGet, URIGetInstruments, "instruments_all.csv"}, + {http.MethodGet, URIGetMFInstruments, "mf_instruments.csv"}, + {http.MethodGet, uriGetInstrumentsExchangeTest, "instruments_nse.csv"}, + {http.MethodGet, uriGetHistoricalTest, "historical_minute.json"}, + {http.MethodGet, uriGetHistoricalWithOITest, "historical_oi.json"}, + {http.MethodGet, URIGetTriggerRange, "trigger_range.json"}, + {http.MethodGet, URIGetQuote, "quote.json"}, + {http.MethodGet, URIGetLTP, "ltp.json"}, + {http.MethodGet, URIGetOHLC, "ohlc.json"}, + {http.MethodGet, URIAuctionInstruments, "auctions_list.json"}, // PUT endpoints - []string{http.MethodPut, URIModifyMFSIP, "mf_sip_info.json"}, - []string{http.MethodPut, URIModifyOrder, "order_response.json"}, - []string{http.MethodPut, URIConvertPosition, "positions.json"}, - []string{http.MethodPut, fmt.Sprintf(URIModifyGTT, 123), "gtt_modify_order.json"}, + {http.MethodPut, URIModifyMFSIP, "mf_sip_info.json"}, + {http.MethodPut, URIModifyOrder, "order_modify.json"}, + {http.MethodPut, URIConvertPosition, "positions.json"}, + {http.MethodPut, fmt.Sprintf(URIModifyGTT, 123), "gtt_modify_order.json"}, // POST endpoints - []string{http.MethodPost, URIPlaceOrder, "order_response.json"}, - []string{http.MethodPost, URIPlaceMFOrder, "order_response.json"}, - []string{http.MethodPost, URIPlaceMFSIP, "mf_order_response.json"}, - []string{http.MethodPost, URIPlaceGTT, "gtt_place_order.json"}, + {http.MethodPost, URIUserSession, "generate_session.json"}, + {http.MethodPost, URIUserSessionRenew, "generate_session.json"}, + {http.MethodPost, URIPlaceOrder, "order_response.json"}, + {http.MethodPost, fmt.Sprintf(URIPlaceOrder, "iceberg"), "order_response.json"}, + {http.MethodPost, fmt.Sprintf(URIPlaceOrder, "co"), "order_response.json"}, + {http.MethodPost, fmt.Sprintf(URIPlaceOrder, "auction"), "order_response.json"}, + {http.MethodPost, fmt.Sprintf(URIPlaceOrder, "autoslice"), "autoslice_response.json"}, + {http.MethodPost, URIPlaceMFOrder, "order_response.json"}, + {http.MethodPost, URIPlaceMFSIP, "mf_sip_place.json"}, + {http.MethodPost, URIPlaceGTT, "gtt_place_order.json"}, + {http.MethodPost, URIOrderMargins, "order_margins.json"}, + {http.MethodPost, URIBasketMargins, "basket_margins.json"}, + {http.MethodPost, URIInitHoldingsAuth, "holdings_auth.json"}, + {http.MethodPost, URIOrderCharges, "virtual_contract_note.json"}, // DELETE endpoints - []string{http.MethodDelete, URICancelOrder, "order_response.json"}, - []string{http.MethodDelete, fmt.Sprintf(URIDeleteGTT, 123), "gtt_modify_order.json"}, + {http.MethodDelete, URICancelOrder, "order_response.json"}, + {http.MethodDelete, URICancelMFSIP, "mf_sip_cancel.json"}, + {http.MethodDelete, fmt.Sprintf(URIDeleteGTT, 123), "gtt_modify_order.json"}, + {http.MethodDelete, URIUserSessionInvalidate, "session_logout.json"}, + + // Alerts API + {http.MethodPost, URIAlerts, "alerts_create.json"}, + {http.MethodGet, URIAlerts, "alerts_get.json"}, + {http.MethodGet, fmt.Sprintf(URIAlert, testUUID), "alerts_get_one.json"}, + {http.MethodPut, fmt.Sprintf(URIAlert, testUUID), "alerts_modify.json"}, + {http.MethodDelete, URIAlerts, "alerts_delete.json"}, + {http.MethodGet, fmt.Sprintf(URIAlertHistory, testUUID), "alerts_history.json"}, } // Test only function prefix with this @@ -162,68 +192,53 @@ type TestSuite struct { KiteConnect *Client } -// Setup the API suit -func (ts *TestSuite) SetupAPITestSuit() { +// SetupAPITestSuit sets up the mock HTTP environment for the test suite. +func (ts *TestSuite) SetupAPITestSuit(t *testing.T) { ts.KiteConnect = New("test_api_key") httpmock.ActivateNonDefault(ts.KiteConnect.httpClient.GetClient().client) - for _, v := range MockResponders { - httpMethod := v[0] - route := v[1] - filePath := v[2] - - resp, err := ioutil.ReadFile(path.Join(mockBaseDir, filePath)) - if err != nil { - panic("Error while reading mock response: " + filePath) - } + // Compile the regex once for replacing URL variables. + re := regexp.MustCompile("%s") + for _, r := range mockRoutes { base, err := url.Parse(ts.KiteConnect.baseURI) if err != nil { - panic("Something went wrong") + t.Fatalf("Failed to parse base URI: %v", err) } + // Replace all url variables with string "test" - re := regexp.MustCompile("%s") - formattedRoute := re.ReplaceAllString(route, "test") + formattedRoute := re.ReplaceAllString(r.route, "test") base.Path = path.Join(base.Path, formattedRoute) - // fmt.Println(base.String()) - // endpoint := path.Join(ts.KiteConnect.baseURI, route) - httpmock.RegisterResponder(httpMethod, base.String(), httpmock.NewBytesResponder(200, resp)) + httpmock.RegisterResponder(r.method, base.String(), + httpmock.NewBytesResponder(200, httpmock.File(path.Join(mockBaseDir, r.filePath)).Bytes())) } + + // Catch any unregistered routes immediately instead of silently failing. + httpmock.RegisterNoResponder(httpmock.NewNotFoundResponder(t.Fatal)) } -// TearDown API suit +// TearDownAPITestSuit cleans up the mock HTTP environment. func (ts *TestSuite) TearDownAPITestSuit() { - // defer httpmock.DeactivateAndReset() + httpmock.DeactivateAndReset() } -// Individual test setup -func (ts *TestSuite) SetupAPITest() {} - -// Individual test teardown -func (ts *TestSuite) TearDownAPITest() {} - /* -Run sets up the suite, runs its test cases and tears it down: - 1. Calls `ts.SetUpSuite` - 2. Seeks for any methods that have `Test` prefix, for each of them it: - a. Calls `SetUp` - b. Calls the test method itself - c. Calls `TearDown` - 3. Calls `ts.TearDownSuite` +RunAPITests sets up the suite, runs its test cases and tears it down: + 1. Calls SetupAPITestSuit + 2. Seeks for any methods that have "Test" prefix, for each of them it + runs the test method as a subtest + 3. Calls TearDownAPITestSuit via t.Cleanup */ func RunAPITests(t *testing.T, ts *TestSuite) { - ts.SetupAPITestSuit() - defer ts.TearDownAPITestSuit() + ts.SetupAPITestSuit(t) + t.Cleanup(ts.TearDownAPITestSuit) suiteType := reflect.TypeOf(ts) for i := 0; i < suiteType.NumMethod(); i++ { m := suiteType.Method(i) if strings.HasPrefix(m.Name, suiteTestMethodPrefix) { t.Run(m.Name, func(t *testing.T) { - ts.SetupAPITest() - defer ts.TearDownAPITest() - in := []reflect.Value{reflect.ValueOf(ts), reflect.ValueOf(t)} m.Func.Call(in) }) diff --git a/errors.go b/errors.go index 570b6e8..edf4945 100644 --- a/errors.go +++ b/errors.go @@ -35,36 +35,44 @@ func (e Error) Error() string { // NewError creates and returns a new instace of Error // with custom error metadata. func NewError(etype string, message string, data interface{}) error { - err := Error{} - err.Message = message - err.ErrorType = etype - err.Data = data + var ( + code = http.StatusInternalServerError + ) switch etype { case GeneralError: - err.Code = http.StatusInternalServerError + code = http.StatusInternalServerError case TokenError: - err.Code = http.StatusForbidden + code = http.StatusForbidden case PermissionError: - err.Code = http.StatusForbidden + code = http.StatusForbidden case UserError: - err.Code = http.StatusForbidden + code = http.StatusForbidden case TwoFAError: - err.Code = http.StatusForbidden + code = http.StatusForbidden case OrderError: - err.Code = http.StatusBadRequest + code = http.StatusBadRequest case InputError: - err.Code = http.StatusBadRequest + code = http.StatusBadRequest case DataError: - err.Code = http.StatusGatewayTimeout + code = http.StatusGatewayTimeout case NetworkError: - err.Code = http.StatusServiceUnavailable + code = http.StatusServiceUnavailable default: - err.Code = http.StatusInternalServerError - err.ErrorType = GeneralError + code = http.StatusInternalServerError + etype = GeneralError } - return err + return newError(etype, message, code, data) +} + +func newError(etype, message string, code int, data interface{}) Error { + return Error{ + Message: message, + ErrorType: etype, + Data: data, + Code: code, + } } // GetErrorName returns an error name given an HTTP code. diff --git a/errors_test.go b/errors_test.go index 5d67e18..4a28ba8 100644 --- a/errors_test.go +++ b/errors_test.go @@ -178,10 +178,8 @@ func TestNewError(t *testing.T) { e := NewError(tt.args.etype, "Test Error", nil) if err, ok := e.(Error); !ok { t.Errorf("NewError() does not implement Error error = %v", e) - } else { - if err.Code != tt.want { - t.Errorf("NewError() error = %v, wantErr %v", err.Code, tt.want) - } + } else if err.Code != tt.want { + t.Errorf("NewError() error = %v, wantErr %v", err.Code, tt.want) } }) } diff --git a/examples/connect/advanced/connect.go b/examples/connect/advanced/connect.go index 181f301..5ee11df 100644 --- a/examples/connect/advanced/connect.go +++ b/examples/connect/advanced/connect.go @@ -6,7 +6,7 @@ import ( "log" "net/http" - kiteconnect "github.com/zerodhatech/gokiteconnect" + kiteconnect "github.com/zerodha/gokiteconnect/v4" ) const ( @@ -54,4 +54,58 @@ func main() { fmt.Printf("Error getting margins: %v", err) } fmt.Println("margins: ", margins) + + // Alerts examples + // Create alert + alert, err := kc.CreateAlert(kiteconnect.AlertParams{ + Name: "NIFTY 50 Alert", + Type: kiteconnect.AlertTypeSimple, + LHSExchange: "INDICES", + LHSTradingSymbol: "NIFTY 50", + LHSAttribute: "LastTradedPrice", + Operator: kiteconnect.AlertOperatorGE, + RHSType: "constant", + RHSConstant: 27000, + }) + if err != nil { + log.Printf("Error creating alert: %v", err) + return + } + fmt.Printf("Created alert: %s (UUID: %s)\n", alert.Name, alert.UUID) + + // Get all alerts + alerts, err := kc.GetAlerts(nil) + if err != nil { + log.Printf("Error fetching alerts: %v", err) + return + } + fmt.Printf("Found %d alerts:\n", len(alerts)) + for _, a := range alerts { + fmt.Printf("- %s (UUID: %s, Status: %s)\n", a.Name, a.UUID, a.Status) + } + + // Modify an alert + modifiedAlert, err := kc.ModifyAlert(alerts[0].UUID, kiteconnect.AlertParams{ + Name: "Modified NIFTY 50 Alert", + Type: kiteconnect.AlertTypeSimple, + LHSExchange: "INDICES", + LHSTradingSymbol: "NIFTY 50", + LHSAttribute: "LastTradedPrice", + Operator: kiteconnect.AlertOperatorLE, + RHSType: "constant", + RHSConstant: 28000, + }) + if err != nil { + log.Printf("Error modifying alert: %v", err) + } else { + fmt.Printf("Modified alert: %s (New threshold: %v)\n", modifiedAlert.Name, modifiedAlert.RHSConstant) + } + + // Delete single alert + err = kc.DeleteAlerts(alerts[0].UUID) + if err != nil { + log.Printf("Error deleting alert: %v", err) + } else { + fmt.Println("Alert deleted successfully") + } } diff --git a/examples/connect/basic/connect.go b/examples/connect/basic/connect.go index f319e04..fc67ee3 100644 --- a/examples/connect/basic/connect.go +++ b/examples/connect/basic/connect.go @@ -3,7 +3,7 @@ package main import ( "fmt" - kiteconnect "github.com/zerodhatech/gokiteconnect" + kiteconnect "github.com/zerodha/gokiteconnect/v4" ) const ( diff --git a/examples/connect/gtt/connect.go b/examples/connect/gtt/connect.go index 36fa1e3..d4ee45d 100644 --- a/examples/connect/gtt/connect.go +++ b/examples/connect/gtt/connect.go @@ -5,7 +5,7 @@ import ( "log" "net/http" - kiteconnect "github.com/zerodhatech/gokiteconnect" + kiteconnect "github.com/zerodha/gokiteconnect/v4" ) const ( diff --git a/examples/ticker/ticker.go b/examples/ticker/ticker.go index 7834234..c010c87 100644 --- a/examples/ticker/ticker.go +++ b/examples/ticker/ticker.go @@ -2,15 +2,19 @@ package main import ( "fmt" + "os" + "strconv" "time" - kiteconnect "github.com/zerodhatech/gokiteconnect" - kiteticker "github.com/zerodhatech/gokiteconnect/ticker" + kiteconnect "github.com/zerodha/gokiteconnect/v4" + kitemodels "github.com/zerodha/gokiteconnect/v4/models" + kiteticker "github.com/zerodha/gokiteconnect/v4/ticker" ) -const ( - apiKey string = "my_api_key" - apiSecret string = "my_api_secret" +var ( + apiKey string = getEnv("KITE_API_KEY", "my_api_key") + apiSecret string = getEnv("KITE_API_SECRET", "my_api_secret") + instToken uint32 = getEnvUint32("KITE_INSTRUMENT_TOKEN", 408065) ) var ( @@ -30,14 +34,21 @@ func onClose(code int, reason string) { // Triggered when connection is established and ready to send and accept data func onConnect() { fmt.Println("Connected") - err := ticker.Subscribe([]uint32{53718535}) + fmt.Println("Subscribing to", instToken) + err := ticker.Subscribe([]uint32{instToken}) + if err != nil { + fmt.Println("err: ", err) + } + // Set subscription mode for given list of tokens + // Default mode is Quote + err = ticker.SetMode(kiteticker.ModeFull, []uint32{instToken}) if err != nil { fmt.Println("err: ", err) } } // Triggered when tick is recevived -func onTick(tick kiteticker.Tick) { +func onTick(tick kitemodels.Tick) { fmt.Println("Tick: ", tick) } @@ -66,6 +77,7 @@ func main() { // Obtained request token after Kite Connect login flow // simulated here by scanning from stdin var requestToken string + fmt.Println("Enter request token:") fmt.Scanf("%s\n", &requestToken) // Get user details and access token @@ -90,3 +102,23 @@ func main() { // Start the connection ticker.Serve() } + +// getEnv returns the value of the environment variable provided. +func getEnv(key, fallback string) string { + if value, ok := os.LookupEnv(key); ok { + return value + } + return fallback +} + +// getEnvUint32 returns the value of the environment variable provided converted as Uint32. +func getEnvUint32(key string, fallback int) uint32 { + if value, ok := os.LookupEnv(key); ok { + i, err := strconv.Atoi(value) + if err != nil { + return uint32(fallback) + } + return uint32(i) + } + return uint32(fallback) +} diff --git a/go.mod b/go.mod index b6ab453..9fba2a8 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,11 @@ -module github.com/zerodhatech/gokiteconnect +module github.com/zerodha/gokiteconnect/v4 + +go 1.14 require ( github.com/gocarina/gocsv v0.0.0-20180809181117-b8c38cb1ba36 github.com/google/go-querystring v1.0.0 - github.com/gorilla/websocket v1.4.0 - gopkg.in/jarcoal/httpmock.v1 v1.0.0-20180719183105-8007e27cdb32 + github.com/gorilla/websocket v1.4.2 + github.com/jarcoal/httpmock v1.4.1 + github.com/stretchr/testify v1.7.0 ) diff --git a/go.sum b/go.sum index bfefd47..88f60d4 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,22 @@ +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/gocarina/gocsv v0.0.0-20180809181117-b8c38cb1ba36 h1:IlBbYij72r3CoD3fKTbP5jD0NJjrvemKsaxkW/QUdGE= github.com/gocarina/gocsv v0.0.0-20180809181117-b8c38cb1ba36/go.mod h1:/oj50ZdPq/cUjA02lMZhijk5kR31SEydKyqah1OgBuo= github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -gopkg.in/jarcoal/httpmock.v1 v1.0.0-20180719183105-8007e27cdb32 h1:30DLrQoRqdUHslVMzxuKUnY4GKJGk1/FJtKy3yx4TKE= -gopkg.in/jarcoal/httpmock.v1 v1.0.0-20180719183105-8007e27cdb32/go.mod h1:d3R+NllX3X5e0zlG1Rful3uLvsGC/Q3OHut5464DEQw= +github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/jarcoal/httpmock v1.4.1 h1:0Ju+VCFuARfFlhVXFc2HxlcQkfB+Xq12/EotHko+x2A= +github.com/jarcoal/httpmock v1.4.1/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0= +github.com/maxatome/go-testdeep v1.14.0 h1:rRlLv1+kI8eOI3OaBXZwb3O7xY3exRzdW5QyX48g9wI= +github.com/maxatome/go-testdeep v1.14.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/gtt.go b/gtt.go index cc6769e..524fefd 100644 --- a/gtt.go +++ b/gtt.go @@ -5,6 +5,8 @@ import ( "fmt" "net/http" "net/url" + + "github.com/zerodha/gokiteconnect/v4/models" ) // GTTType represents the available GTT order types. @@ -40,9 +42,9 @@ type GTT struct { ID int `json:"id"` UserID string `json:"user_id"` Type GTTType `json:"type" url:""` - CreatedAt Time `json:"created_at"` - UpdatedAt Time `json:"updated_at"` - ExpiresAt Time `json:"expires_at"` + CreatedAt models.Time `json:"created_at"` + UpdatedAt models.Time `json:"updated_at"` + ExpiresAt models.Time `json:"expires_at"` Status string `json:"status"` Condition GTTCondition `json:"condition"` Orders []Order `json:"orders"` @@ -107,12 +109,17 @@ type GTTParams struct { Exchange string LastPrice float64 TransactionType string + Product string Trigger Trigger } func newGTT(o GTTParams) GTT { var orders Orders + if o.Product == "" { + o.Product = ProductCNC + } + for i := range o.Trigger.TriggerValues() { orders = append(orders, Order{ Exchange: o.Exchange, @@ -121,7 +128,7 @@ func newGTT(o GTTParams) GTT { Quantity: o.Trigger.Quantities()[i], Price: o.Trigger.LimitPrices()[i], OrderType: OrderTypeLimit, - Product: ProductCNC, + Product: o.Product, }) } return GTT{ diff --git a/http.go b/http.go index 6b67c10..359b1c4 100644 --- a/http.go +++ b/http.go @@ -5,6 +5,7 @@ package kiteconnect */ import ( + "bytes" "encoding/json" "io" "io/ioutil" @@ -12,13 +13,13 @@ import ( "net/http" "net/url" "os" - "strings" "time" ) // HTTPClient represents an HTTP client. type HTTPClient interface { Do(method, rURL string, params url.Values, headers http.Header) (HTTPResponse, error) + DoRaw(method, rURL string, reqBody []byte, headers http.Header) (HTTPResponse, error) DoEnvelope(method, url string, params url.Values, headers http.Header, obj interface{}) error DoJSON(method, url string, params url.Values, headers http.Header, obj interface{}) (HTTPResponse, error) GetClient() *httpClient @@ -72,24 +73,28 @@ func NewHTTPClient(h *http.Client, hLog *log.Logger, debug bool) HTTPClient { } } -// Do executes an HTTP request and returns the response. func (h *httpClient) Do(method, rURL string, params url.Values, headers http.Header) (HTTPResponse, error) { - var ( - resp = HTTPResponse{} - postParams io.Reader - err error - ) - if params == nil { params = url.Values{} } + return h.DoRaw(method, rURL, []byte(params.Encode()), headers) +} + +// Do executes an HTTP request and returns the response. +func (h *httpClient) DoRaw(method, rURL string, reqBody []byte, headers http.Header) (HTTPResponse, error) { + var ( + resp = HTTPResponse{} + err error + postBody io.Reader + ) + // Encode POST / PUT params. if method == http.MethodPost || method == http.MethodPut { - postParams = strings.NewReader(params.Encode()) + postBody = bytes.NewReader(reqBody) } - req, err := http.NewRequest(method, rURL, postParams) + req, err := http.NewRequest(method, rURL, postBody) if err != nil { h.hLog.Printf("Request preparation failed: %v", err) return resp, NewError(NetworkError, "Request preparation failed.", nil) @@ -108,7 +113,7 @@ func (h *httpClient) Do(method, rURL string, params url.Values, headers http.Hea // If the request method is GET or DELETE, add the params as QueryString. if method == http.MethodGet || method == http.MethodDelete { - req.URL.RawQuery = params.Encode() + req.URL.RawQuery = string(reqBody) } r, err := h.client.Do(req) @@ -141,15 +146,25 @@ func (h *httpClient) DoEnvelope(method, url string, params url.Values, headers h return err } + err = readEnvelope(resp, obj) + if err != nil { + if _, ok := err.(Error); !ok { + h.hLog.Printf("Error parsing JSON response: %v", err) + } + } + + return err +} + +func readEnvelope(resp HTTPResponse, obj interface{}) error { // Successful request, but error envelope. if resp.Response.StatusCode >= http.StatusBadRequest { var e errorEnvelope if err := json.Unmarshal(resp.Body, &e); err != nil { - h.hLog.Printf("Error parsing JSON response: %v", err) return NewError(DataError, "Error parsing response.", nil) } - return NewError(e.ErrorType, e.Message, e.Data) + return newError(e.ErrorType, e.Message, resp.Response.StatusCode, e.Data) } // We now unmarshal the body. @@ -157,7 +172,6 @@ func (h *httpClient) DoEnvelope(method, url string, params url.Values, headers h envl.Data = obj if err := json.Unmarshal(resp.Body, &envl); err != nil { - h.hLog.Printf("Error parsing JSON response: %v | %s", err, resp.Body) return NewError(DataError, "Error parsing response.", nil) } diff --git a/margins.go b/margins.go new file mode 100644 index 0000000..d070e27 --- /dev/null +++ b/margins.go @@ -0,0 +1,198 @@ +package kiteconnect + +import ( + "encoding/json" + "net/http" + "net/url" +) + +// OrderMarginParam represents an order in the Margin Calculator API +type OrderMarginParam struct { + Exchange string `json:"exchange"` + Tradingsymbol string `json:"tradingsymbol"` + TransactionType string `json:"transaction_type"` + Variety string `json:"variety"` + Product string `json:"product"` + OrderType string `json:"order_type"` + Quantity float64 `json:"quantity"` + Price float64 `json:"price,omitempty"` + TriggerPrice float64 `json:"trigger_price,omitempty"` +} + +// OrderChargesParam represents an order in the Charges Calculator API +type OrderChargesParam struct { + OrderID string `json:"order_id"` + Exchange string `json:"exchange"` + Tradingsymbol string `json:"tradingsymbol"` + TransactionType string `json:"transaction_type"` + Variety string `json:"variety"` + Product string `json:"product"` + OrderType string `json:"order_type"` + Quantity float64 `json:"quantity"` + AveragePrice float64 `json:"average_price"` +} + +// PNL represents the PNL +type PNL struct { + Realised float64 `json:"realised"` + Unrealised float64 `json:"unrealised"` +} + +// OrdersMargins represents response from the Margin Calculator API. +type OrderMargins struct { + Type string `json:"type"` + TradingSymbol string `json:"tradingsymbol"` + Exchange string `json:"exchange"` + + SPAN float64 `json:"span"` + Exposure float64 `json:"exposure"` + OptionPremium float64 `json:"option_premium"` + Additional float64 `json:"additional"` + BO float64 `json:"bo"` + Cash float64 `json:"cash"` + VAR float64 `json:"var"` + PNL PNL `json:"pnl"` + Leverage float64 `json:"leverage"` + Charges Charges `json:"charges"` + Total float64 `json:"total"` +} + +// OrderCharges represent an item's response from the Charges calculator API +type OrderCharges struct { + Exchange string `json:"exchange"` + Tradingsymbol string `json:"tradingsymbol"` + TransactionType string `json:"transaction_type"` + Variety string `json:"variety"` + Product string `json:"product"` + OrderType string `json:"order_type"` + Quantity float64 `json:"quantity"` + Price float64 `json:"price"` + Charges Charges `json:"charges"` +} + +// Charges represents breakdown of various charges that are applied to an order +type Charges struct { + TransactionTax float64 `json:"transaction_tax"` + TransactionTaxType string `json:"transaction_tax_type"` + ExchangeTurnoverCharge float64 `json:"exchange_turnover_charge"` + SEBITurnoverCharge float64 `json:"sebi_turnover_charge"` + Brokerage float64 `json:"brokerage"` + StampDuty float64 `json:"stamp_duty"` + GST GST `json:"gst"` + Total float64 `json:"total"` +} + +// GST represents the various GST charges +type GST struct { + IGST float64 `json:"igst"` + CGST float64 `json:"cgst"` + SGST float64 `json:"sgst"` + Total float64 `json:"total"` +} + +// BasketMargins represents response from the Margin Calculator API for Basket orders +type BasketMargins struct { + Initial OrderMargins `json:"initial"` + Final OrderMargins `json:"final"` + Orders []OrderMargins `json:"orders"` +} + +type GetMarginParams struct { + OrderParams []OrderMarginParam + Compact bool +} + +type GetBasketParams struct { + OrderParams []OrderMarginParam + Compact bool + ConsiderPositions bool +} + +type GetChargesParams struct { + OrderParams []OrderChargesParam +} + +func (c *Client) GetOrderMargins(marparam GetMarginParams) ([]OrderMargins, error) { + body, err := json.Marshal(marparam.OrderParams) + if err != nil { + return []OrderMargins{}, err + } + + var headers http.Header = map[string][]string{} + headers.Add("Content-Type", "application/json") + + uri := URIOrderMargins + if marparam.Compact { + uri += "?mode=compact" + } + + resp, err := c.doRaw(http.MethodPost, uri, body, headers) + if err != nil { + return []OrderMargins{}, err + } + + var out []OrderMargins + if err := readEnvelope(resp, &out); err != nil { + return []OrderMargins{}, err + } + + return out, nil +} + +func (c *Client) GetBasketMargins(baskparam GetBasketParams) (BasketMargins, error) { + body, err := json.Marshal(baskparam.OrderParams) + if err != nil { + return BasketMargins{}, err + } + + var headers http.Header = map[string][]string{} + headers.Add("Content-Type", "application/json") + + uri := URIBasketMargins + v := url.Values{} + + if baskparam.Compact { + v.Set("mode", "compact") + } + if baskparam.ConsiderPositions { + v.Set("consider_positions", "true") + } + if qp := v.Encode(); qp != "" { + uri += "?" + qp + } + + resp, err := c.doRaw(http.MethodPost, uri, body, headers) + if err != nil { + return BasketMargins{}, err + } + + var out BasketMargins + if err := readEnvelope(resp, &out); err != nil { + return BasketMargins{}, err + } + + return out, nil +} + +func (c *Client) GetOrderCharges(chargeParam GetChargesParams) ([]OrderCharges, error) { + body, err := json.Marshal(chargeParam.OrderParams) + if err != nil { + return []OrderCharges{}, err + } + + var headers http.Header = map[string][]string{} + headers.Add("Content-Type", "application/json") + + uri := URIOrderCharges + resp, err := c.doRaw(http.MethodPost, uri, body, headers) + if err != nil { + return []OrderCharges{}, err + } + + var out []OrderCharges + if err := readEnvelope(resp, &out); err != nil { + return []OrderCharges{}, err + } + + return out, nil +} diff --git a/margins_test.go b/margins_test.go new file mode 100644 index 0000000..e0e2a87 --- /dev/null +++ b/margins_test.go @@ -0,0 +1,158 @@ +package kiteconnect + +import "testing" + +func (ts *TestSuite) TestGetOrderMargins(t *testing.T) { + t.Parallel() + + params := OrderMarginParam{ + Exchange: "NSE", + Tradingsymbol: "INFY", + TransactionType: "BUY", + Variety: "regular", + Product: "CNC", + OrderType: "MARKET", + Quantity: 1, + Price: 0, + TriggerPrice: 0, + } + + compactOrderResp, err := ts.KiteConnect.GetOrderMargins(GetMarginParams{ + OrderParams: []OrderMarginParam{params}, + Compact: true, + }) + if err != nil { + t.Errorf("Error while getting compact order margins: %v", err) + } + + if len(compactOrderResp) != 1 { + t.Errorf("Incorrect response length, expected len(compactOrderResp) to be 1, got: %v", len(compactOrderResp)) + } + + if compactOrderResp[0].TradingSymbol != "INFY" { + t.Errorf("Incorrect tradingsymbol, expected INFY, got: %v", compactOrderResp[0].TradingSymbol) + } + + if compactOrderResp[0].Total == 0 { + t.Errorf("Incorrect compact total margins, got: %v", compactOrderResp[0].Total) + } + + // Detailed order margin tests include charges, leverage + detailOrderResp, err := ts.KiteConnect.GetOrderMargins(GetMarginParams{ + OrderParams: []OrderMarginParam{params}, + Compact: false, + }) + + if err != nil { + t.Errorf("Error while getting detailed order margins: %v", err) + } + + if detailOrderResp[0].Leverage != 1 { + t.Errorf("Incorrect leverage multiplier, expected 1x, got: %v", detailOrderResp[0].TradingSymbol) + } + + if len(detailOrderResp) != 1 { + t.Errorf("Incorrect response, expected len(detailOrderResp) to be 1, got: %v", len(detailOrderResp)) + } + + if detailOrderResp[0].Charges.TransactionTax == 0 { + t.Errorf("Incorrect TransactionTax in detailed order margins, got: %v", detailOrderResp[0].Charges.TransactionTax) + } + + if detailOrderResp[0].Charges.StampDuty == 0 { + t.Errorf("Incorrect StampDuty in detailed order margins, got: %v", detailOrderResp[0].Charges.StampDuty) + } + + if detailOrderResp[0].Charges.GST.Total == 0 { + t.Errorf("Incorrect GST in detailed order margins, got: %v", detailOrderResp[0].Charges.GST.Total) + } + + if detailOrderResp[0].Charges.Total == 0 { + t.Errorf("Incorrect charges total in detailed order margins, got: %v", detailOrderResp[0].Charges.Total) + } + + if detailOrderResp[0].Total == 0 { + t.Errorf("Incorrect total margin in detailed order margins, got: %v", detailOrderResp[0].Total) + } +} + +func (ts *TestSuite) TestGetBasketMargins(t *testing.T) { + t.Parallel() + + params := OrderMarginParam{ + Exchange: "NSE", + Tradingsymbol: "INFY", + TransactionType: "BUY", + Variety: "regular", + Product: "CNC", + OrderType: "MARKET", + Quantity: 1, + Price: 0, + TriggerPrice: 0, + } + + orderResponseBasket, err := ts.KiteConnect.GetBasketMargins(GetBasketParams{ + OrderParams: []OrderMarginParam{params}, + Compact: true, + ConsiderPositions: true, + }) + if err != nil { + t.Errorf("Error while getting compact basket order margins: %v", err) + } + + if len(orderResponseBasket.Orders) != 2 { + t.Errorf("Incorrect response, expected len(orderResponseBasket.Orders) to be 2, got: %v", len(orderResponseBasket.Orders)) + } +} + +func (ts *TestSuite) TestGetOrderCharges(t *testing.T) { + t.Parallel() + + params := + []OrderChargesParam{ + { + Exchange: "SBIN", + Tradingsymbol: "INFY", + TransactionType: "BUY", + Variety: "regular", + Product: "CNC", + OrderType: "MARKET", + Quantity: 1, + AveragePrice: 560, + OrderID: "11111", + }, + { + Exchange: "MCX", + Tradingsymbol: "GOLDPETAL23JULFUT", + TransactionType: "SELL", + Variety: "regular", + Product: "NRML", + OrderType: "LIMIT", + Quantity: 1, + AveragePrice: 5862, + OrderID: "22222", + }, + { + Exchange: "NFO", + Tradingsymbol: "NIFTY2371317900PE", + TransactionType: "BUY", + Variety: "regular", + Product: "NRML", + OrderType: "LIMIT", + Quantity: 100, + AveragePrice: 1.5, + OrderID: "33333", + }, + } + + orderResponseCharges, err := ts.KiteConnect.GetOrderCharges(GetChargesParams{ + OrderParams: params, + }) + if err != nil { + t.Errorf("Error while getting order charges: %v", err) + } + + if len(orderResponseCharges) != 3 { + t.Errorf("Incorrect response, expected len(orderResponseCharges) to be 3, got: %v", len(orderResponseCharges)) + } +} diff --git a/market.go b/market.go index e4f513d..9ebf9fc 100644 --- a/market.go +++ b/market.go @@ -8,6 +8,7 @@ import ( "github.com/gocarina/gocsv" "github.com/google/go-querystring/query" + "github.com/zerodha/gokiteconnect/v4/models" ) type quoteParams struct { @@ -16,51 +17,30 @@ type quoteParams struct { // Quote represents the full quote response. type Quote map[string]struct { - InstrumentToken int `json:"instrument_token"` - Timestamp Time `json:"timestamp"` - LastPrice float64 `json:"last_price"` - LastQuantity int `json:"last_quantity"` - LastTradeTime Time `json:"last_trade_time"` - AveragePrice float64 `json:"average_price"` - Volume int `json:"volume"` - BuyQuantity int `json:"buy_quantity"` - SellQuantity int `json:"sell_quantity"` - OHLC struct { - Open float64 `json:"open"` - High float64 `json:"high"` - Low float64 `json:"low"` - Close float64 `json:"close"` - } `json:"ohlc"` - NetChange float64 `json:"net_change"` - OI float64 `json:"oi"` - OIDayHigh float64 `json:"oi_day_high"` - OIDayLow float64 `json:"oi_day_low"` - LowerCircuitLimit float64 `json:"lower_circuit_limit"` - UpperCircuitLimit float64 `json:"upper_circuit_limit"` - Depth struct { - Buy []struct { - Price float64 `json:"price"` - Quantity int `json:"quantity"` - Orders int `json:"orders"` - } `json:"buy"` - Sell []struct { - Price float64 `json:"price"` - Quantity int `json:"quantity"` - Orders int `json:"orders"` - } `json:"sell"` - } `json:"depth"` + InstrumentToken int `json:"instrument_token"` + Timestamp models.Time `json:"timestamp"` + LastPrice float64 `json:"last_price"` + LastQuantity int `json:"last_quantity"` + LastTradeTime models.Time `json:"last_trade_time"` + AveragePrice float64 `json:"average_price"` + Volume int `json:"volume"` + BuyQuantity int `json:"buy_quantity"` + SellQuantity int `json:"sell_quantity"` + OHLC models.OHLC `json:"ohlc"` + NetChange float64 `json:"net_change"` + OI float64 `json:"oi"` + OIDayHigh float64 `json:"oi_day_high"` + OIDayLow float64 `json:"oi_day_low"` + LowerCircuitLimit float64 `json:"lower_circuit_limit"` + UpperCircuitLimit float64 `json:"upper_circuit_limit"` + Depth models.Depth `json:"depth"` } // QuoteOHLC represents OHLC quote response. type QuoteOHLC map[string]struct { - InstrumentToken int `json:"instrument_token"` - LastPrice float64 `json:"last_price"` - OHLC struct { - Open float64 `json:"open"` - High float64 `json:"high"` - Low float64 `json:"low"` - Close float64 `json:"close"` - } `json:"ohlc"` + InstrumentToken int `json:"instrument_token"` + LastPrice float64 `json:"last_price"` + OHLC models.OHLC `json:"ohlc"` } // QuoteLTP represents last price quote response. @@ -71,12 +51,13 @@ type QuoteLTP map[string]struct { // HistoricalData represents individual historical data response. type HistoricalData struct { - Date Time `json:"date"` - Open float64 `json:"open"` - High float64 `json:"high"` - Low float64 `json:"Low"` - Close float64 `json:"close"` - Volume int `json:"volume"` + Date models.Time `json:"date"` + Open float64 `json:"open"` + High float64 `json:"high"` + Low float64 `json:"low"` + Close float64 `json:"close"` + Volume int `json:"volume"` + OI int `json:"oi"` } type historicalDataReceived struct { @@ -87,24 +68,25 @@ type historicalDataParams struct { FromDate string `url:"from"` ToDate string `url:"to"` Continuous int `url:"continuous"` + OI int `url:"oi"` InstrumentToken int `url:"instrument_token"` Interval string `url:"interval"` } // Instrument represents individual instrument response. type Instrument struct { - InstrumentToken int `csv:"instrument_token"` - ExchangeToken int `csv:"exchange_token"` - Tradingsymbol string `csv:"tradingsymbol"` - Name string `csv:"name"` - LastPrice float64 `csv:"last_price"` - Expiry Time `csv:"expiry"` - StrikePrice float64 `csv:"strike"` - TickSize float64 `csv:"tick_size"` - LotSize float64 `csv:"lot_size"` - InstrumentType string `csv:"instrument_type"` - Segment string `csv:"segment"` - Exchange string `csv:"exchange"` + InstrumentToken int `csv:"instrument_token"` + ExchangeToken int `csv:"exchange_token"` + Tradingsymbol string `csv:"tradingsymbol"` + Name string `csv:"name"` + LastPrice float64 `csv:"last_price"` + Expiry models.Time `csv:"expiry"` + StrikePrice float64 `csv:"strike"` + TickSize float64 `csv:"tick_size"` + LotSize float64 `csv:"lot_size"` + InstrumentType string `csv:"instrument_type"` + Segment string `csv:"segment"` + Exchange string `csv:"exchange"` } // Instruments represents list of instruments. @@ -117,18 +99,18 @@ type MFInstrument struct { LastPrice float64 `csv:"last_price"` AMC string `csv:"amc"` - PurchaseAllowed bool `csv:"purchase_allowed"` - RedemtpionAllowed bool `csv:"redemption_allowed"` - MinimumPurchaseAmount float64 `csv:"minimum_purchase_amount"` - PurchaseAmountMultiplier float64 `csv:"purchase_amount_multiplier"` - MinimumAdditionalPurchaseAmount float64 `csv:"additional_purchase_multiple"` - MinimumRedemptionQuantity float64 `csv:"minimum_redemption_quantity"` - RedemptionQuantityMultiplier float64 `csv:"redemption_quantity_multiplier"` - DividendType string `csv:"dividend_type"` - SchemeType string `csv:"scheme_type"` - Plan string `csv:"plan"` - SettlementType string `csv:"settlement_type"` - LastPriceDate Time `csv:"last_price_date"` + PurchaseAllowed bool `csv:"purchase_allowed"` + RedemtpionAllowed bool `csv:"redemption_allowed"` + MinimumPurchaseAmount float64 `csv:"minimum_purchase_amount"` + PurchaseAmountMultiplier float64 `csv:"purchase_amount_multiplier"` + MinimumAdditionalPurchaseAmount float64 `csv:"additional_purchase_multiple"` + MinimumRedemptionQuantity float64 `csv:"minimum_redemption_quantity"` + RedemptionQuantityMultiplier float64 `csv:"redemption_quantity_multiplier"` + DividendType string `csv:"dividend_type"` + SchemeType string `csv:"scheme_type"` + Plan string `csv:"plan"` + SettlementType string `csv:"settlement_type"` + LastPriceDate models.Time `csv:"last_price_date"` } // MFInstruments represents list of mutualfund instruments. @@ -208,6 +190,7 @@ func (c *Client) formatHistoricalData(inp historicalDataReceived) ([]HistoricalD low float64 close float64 volume int + OI int ok bool ) @@ -238,6 +221,15 @@ func (c *Client) formatHistoricalData(inp historicalDataReceived) ([]HistoricalD } volume = int(v) + // Did we get OI? + if len(i) > 6 { + // Assert OI + OIT, ok := i[6].(float64) + if !ok { + return data, NewError(GeneralError, fmt.Sprintf("Error decoding response `oi`: %v", i[6]), nil) + } + OI = int(OIT) + } // Parse string to date d, err := time.Parse("2006-01-02T15:04:05-0700", ds) @@ -246,12 +238,13 @@ func (c *Client) formatHistoricalData(inp historicalDataReceived) ([]HistoricalD } data = append(data, HistoricalData{ - Date: Time{d}, + Date: models.Time{Time: d}, Open: open, High: high, Low: low, Close: close, Volume: volume, + OI: OI, }) } @@ -259,7 +252,7 @@ func (c *Client) formatHistoricalData(inp historicalDataReceived) ([]HistoricalD } // GetHistoricalData gets list of historical data. -func (c *Client) GetHistoricalData(instrumentToken int, interval string, fromDate time.Time, toDate time.Time, continuous bool) ([]HistoricalData, error) { +func (c *Client) GetHistoricalData(instrumentToken int, interval string, fromDate time.Time, toDate time.Time, continuous bool, OI bool) ([]HistoricalData, error) { var ( err error data []HistoricalData @@ -272,11 +265,16 @@ func (c *Client) GetHistoricalData(instrumentToken int, interval string, fromDat inpParams.FromDate = fromDate.Format("2006-01-02 15:04:05") inpParams.ToDate = toDate.Format("2006-01-02 15:04:05") inpParams.Continuous = 0 + inpParams.OI = 0 if continuous { inpParams.Continuous = 1 } + if OI { + inpParams.OI = 1 + } + if params, err = query.Values(inpParams); err != nil { return data, NewError(InputError, fmt.Sprintf("Error decoding order params: %v", err), nil) } diff --git a/market_test.go b/market_test.go index 81ebac9..d461ca1 100644 --- a/market_test.go +++ b/market_test.go @@ -3,6 +3,8 @@ package kiteconnect import ( "testing" "time" + + "github.com/stretchr/testify/require" ) func (ts *TestSuite) TestGetQuote(t *testing.T) { @@ -39,7 +41,7 @@ func (ts *TestSuite) TestGetLTP(t *testing.T) { func (ts *TestSuite) TestGetHistoricalData(t *testing.T) { t.Parallel() - marketHistorical, err := ts.KiteConnect.GetHistoricalData(123, "myinterval", time.Unix(0, 0), time.Unix(1, 0), true) + marketHistorical, err := ts.KiteConnect.GetHistoricalData(123, "myinterval", time.Unix(0, 0), time.Unix(1, 0), true, false) if err != nil { t.Errorf("Error while fetching MF orders. %v", err) } @@ -52,6 +54,18 @@ func (ts *TestSuite) TestGetHistoricalData(t *testing.T) { } } +func (ts *TestSuite) TestGetHistoricalDataWithOI(t *testing.T) { + t.Parallel() + marketHistorical, err := ts.KiteConnect.GetHistoricalData(456, "myinterval", time.Unix(0, 0), time.Unix(1, 0), true, true) + require.Nil(t, err) + require.Equal(t, 6, len(marketHistorical)) + + for i := 0; i < len(marketHistorical)-1; i++ { + require.Greater(t, marketHistorical[i+1].Date.Unix(), marketHistorical[i].Date.Unix()) + require.NotEqual(t, marketHistorical[i].OI, 0) + } +} + func (ts *TestSuite) TestGetOHLC(t *testing.T) { t.Parallel() marketOHLC, err := ts.KiteConnect.GetOHLC() @@ -79,6 +93,12 @@ func (ts *TestSuite) TestGetInstruments(t *testing.T) { if mInstr.InstrumentToken == 0 { t.Errorf("Incorrect data loaded. %v", err) } + + if mInstr.InstrumentToken == 12074242 { + if mInstr.Expiry.Year() != 2018 { + t.Errorf("Incorrectly parsed timestamp for instruments") + } + } } } diff --git a/mock_responses b/mock_responses new file mode 160000 index 0000000..c7a8123 --- /dev/null +++ b/mock_responses @@ -0,0 +1 @@ +Subproject commit c7a81238f93b4057c07257823b1bfaf30cba9ae5 diff --git a/mock_responses/gtt_delete_order.json b/mock_responses/gtt_delete_order.json deleted file mode 100644 index b6fccbd..0000000 --- a/mock_responses/gtt_delete_order.json +++ /dev/null @@ -1 +0,0 @@ -{"status":"success","data":{"trigger_id":123}} \ No newline at end of file diff --git a/mock_responses/gtt_get_order.json b/mock_responses/gtt_get_order.json deleted file mode 100644 index aaa16b6..0000000 --- a/mock_responses/gtt_get_order.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "status": "success", - "data": { - "id": 123, - "user_id": "XX0000", - "parent_trigger": null, - "type": "two-leg", - "created_at": "2019-09-09 15:13:22", - "updated_at": "2019-09-09 15:15:08", - "expires_at": "2020-01-01 12:00:00", - "status": "triggered", - "condition": { - "exchange": "NSE", - "last_price": 102.6, - "tradingsymbol": "RAIN", - "trigger_values": [ - 102.0, - 103.7 - ], - "instrument_token": 3926273 - }, - "orders": [ - { - "exchange": "NSE", - "tradingsymbol": "RAIN", - "product": "CNC", - "order_type": "LIMIT", - "transaction_type": "SELL", - "quantity": 1, - "price": 1, - "result": null - }, - { - "exchange": "NSE", - "tradingsymbol": "RAIN", - "product": "CNC", - "order_type": "LIMIT", - "transaction_type": "SELL", - "quantity": 1, - "price": 1, - "result": { - "account_id": "XX0000", - "exchange": "NSE", - "tradingsymbol": "RAIN", - "validity": "DAY", - "product": "CNC", - "order_type": "LIMIT", - "transaction_type": "SELL", - "quantity": 1, - "price": 1, - "meta": "{\"app_id\":12617,\"gtt\":105099}", - "timestamp": "2019-09-09 15:15:08", - "triggered_at": 103.7, - "order_result": { - "status": "failed", - "order_id": "", - "rejection_reason": "Your order price is lower than the current lower circuit limit of 70.65. Place an order within the daily range." - } - } - } - ], - "meta": null - } -} \ No newline at end of file diff --git a/mock_responses/gtt_get_orders.json b/mock_responses/gtt_get_orders.json deleted file mode 100644 index 6afc344..0000000 --- a/mock_responses/gtt_get_orders.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "status": "success", - "data": [ - { - "id": 112127, - "user_id": "XX0000", - "parent_trigger": null, - "type": "single", - "created_at": "2019-09-12 13:25:16", - "updated_at": "2019-09-12 13:25:16", - "expires_at": "2020-09-12 13:25:16", - "status": "active", - "condition": { - "exchange": "NSE", - "last_price": 798, - "tradingsymbol": "INFY", - "trigger_values": [ - 702 - ], - "instrument_token": 408065 - }, - "orders": [ - { - "exchange": "NSE", - "tradingsymbol": "INFY", - "product": "CNC", - "order_type": "LIMIT", - "transaction_type": "BUY", - "quantity": 1, - "price": 702.5, - "result": null - } - ], - "meta": {} - }, - { - "id": 105099, - "user_id": "XX0000", - "parent_trigger": null, - "type": "two-leg", - "created_at": "2019-09-09 15:13:22", - "updated_at": "2019-09-09 15:15:08", - "expires_at": "2020-01-01 12:00:00", - "status": "triggered", - "condition": { - "exchange": "NSE", - "last_price": 102.6, - "tradingsymbol": "RAIN", - "trigger_values": [ - 102.0, - 103.7 - ], - "instrument_token": 3926273 - }, - "orders": [ - { - "tradingsymbol": "RAIN", - "product": "CNC", - "order_type": "LIMIT", - "transaction_type": "SELL", - "quantity": 1, - "price": 1, - "result": null - }, - { - "exchange": "NSE", - "tradingsymbol": "RAIN", - "product": "CNC", - "order_type": "LIMIT", - "transaction_type": "SELL", - "quantity": 1, - "price": 1, - "result": { - "account_id": "XX0000", - "exchange": "NSE", - "tradingsymbol": "RAIN", - "validity": "DAY", - "product": "CNC", - "order_type": "LIMIT", - "transaction_type": "SELL", - "quantity": 1, - "price": 1, - "meta": "{\"app_id\":12617,\"gtt\":105099}", - "timestamp": "2019-09-09 15:15:08", - "triggered_at": 103.7, - "order_result": { - "status": "failed", - "order_id": "", - "rejection_reason": "Your order price is lower than the current lower circuit limit of 70.65. Place an order within the daily range." - } - } - } - ], - "meta": null - } - ] -} \ No newline at end of file diff --git a/mock_responses/gtt_modify_order.json b/mock_responses/gtt_modify_order.json deleted file mode 100644 index b6fccbd..0000000 --- a/mock_responses/gtt_modify_order.json +++ /dev/null @@ -1 +0,0 @@ -{"status":"success","data":{"trigger_id":123}} \ No newline at end of file diff --git a/mock_responses/gtt_place_order.json b/mock_responses/gtt_place_order.json deleted file mode 100644 index b6fccbd..0000000 --- a/mock_responses/gtt_place_order.json +++ /dev/null @@ -1 +0,0 @@ -{"status":"success","data":{"trigger_id":123}} \ No newline at end of file diff --git a/mock_responses/historical_minute.json b/mock_responses/historical_minute.json deleted file mode 100644 index 2d627c4..0000000 --- a/mock_responses/historical_minute.json +++ /dev/null @@ -1,24007 +0,0 @@ -{ - "status": "success", - "data": { - "candles": [ - [ - "2017-12-15T09:15:00+0530", - 1704.5, - 1705, - 1699.25, - 1702.8, - 2499 - ], - [ - "2017-12-15T09:16:00+0530", - 1702, - 1702, - 1698.15, - 1698.15, - 1271 - ], - [ - "2017-12-15T09:17:00+0530", - 1698.15, - 1700.25, - 1698, - 1699.25, - 831 - ], - [ - "2017-12-15T09:18:00+0530", - 1700, - 1700, - 1698.3, - 1699, - 771 - ], - [ - "2017-12-15T09:19:00+0530", - 1699, - 1700, - 1698.1, - 1699.8, - 543 - ], - [ - "2017-12-15T09:20:00+0530", - 1699.8, - 1700, - 1696.55, - 1696.9, - 802 - ], - [ - "2017-12-15T09:21:00+0530", - 1696.8, - 1696.8, - 1694, - 1694, - 981 - ], - [ - "2017-12-15T09:22:00+0530", - 1694, - 1694.1, - 1692.4, - 1693.8, - 890 - ], - [ - "2017-12-15T09:23:00+0530", - 1693.3, - 1695, - 1693, - 1695, - 991 - ], - [ - "2017-12-15T09:24:00+0530", - 1695, - 1695.9, - 1694, - 1695, - 874 - ], - [ - "2017-12-15T09:25:00+0530", - 1695, - 1696.7, - 1694.9, - 1695.1, - 729 - ], - [ - "2017-12-15T09:26:00+0530", - 1695.1, - 1696.7, - 1695.1, - 1696.1, - 591 - ], - [ - "2017-12-15T09:27:00+0530", - 1696.1, - 1697.3, - 1696.1, - 1696.15, - 566 - ], - [ - "2017-12-15T09:28:00+0530", - 1696.15, - 1697.8, - 1696.15, - 1697.7, - 157 - ], - [ - "2017-12-15T09:29:00+0530", - 1697.8, - 1700, - 1697.1, - 1700, - 876 - ], - [ - "2017-12-15T09:30:00+0530", - 1699.95, - 1700, - 1698, - 1700, - 309 - ], - [ - "2017-12-15T09:31:00+0530", - 1700, - 1700.95, - 1699.9, - 1700, - 1830 - ], - [ - "2017-12-15T09:32:00+0530", - 1700, - 1700.3, - 1697.1, - 1697.55, - 2253 - ], - [ - "2017-12-15T09:33:00+0530", - 1697.55, - 1697.65, - 1696.65, - 1697.65, - 133 - ], - [ - "2017-12-15T09:34:00+0530", - 1697.65, - 1697.65, - 1696.35, - 1697.5, - 154 - ], - [ - "2017-12-15T09:35:00+0530", - 1697.5, - 1698.5, - 1696.8, - 1698.5, - 144 - ], - [ - "2017-12-15T09:36:00+0530", - 1698.5, - 1698.9, - 1698, - 1698, - 424 - ], - [ - "2017-12-15T09:37:00+0530", - 1698, - 1698.8, - 1698, - 1698, - 532 - ], - [ - "2017-12-15T09:38:00+0530", - 1698, - 1700.95, - 1698, - 1698.95, - 1009 - ], - [ - "2017-12-15T09:39:00+0530", - 1698.95, - 1700, - 1698.95, - 1699.6, - 205 - ], - [ - "2017-12-15T09:40:00+0530", - 1699.6, - 1700.4, - 1699.05, - 1700.25, - 901 - ], - [ - "2017-12-15T09:41:00+0530", - 1700.25, - 1702, - 1700.25, - 1701.8, - 898 - ], - [ - "2017-12-15T09:42:00+0530", - 1701.8, - 1702.9, - 1701.8, - 1702, - 1010 - ], - [ - "2017-12-15T09:43:00+0530", - 1702, - 1705, - 1702, - 1704.85, - 1914 - ], - [ - "2017-12-15T09:44:00+0530", - 1704.75, - 1706, - 1704.75, - 1705.7, - 2440 - ], - [ - "2017-12-15T09:45:00+0530", - 1705.7, - 1707.7, - 1705.5, - 1706.5, - 1764 - ], - [ - "2017-12-15T09:46:00+0530", - 1706.1, - 1707.8, - 1703.1, - 1703.8, - 3344 - ], - [ - "2017-12-15T09:47:00+0530", - 1703.8, - 1704, - 1703.25, - 1704, - 354 - ], - [ - "2017-12-15T09:48:00+0530", - 1704, - 1705.55, - 1703.85, - 1705, - 565 - ], - [ - "2017-12-15T09:49:00+0530", - 1705, - 1705, - 1703.3, - 1703.3, - 283 - ], - [ - "2017-12-15T09:50:00+0530", - 1703.3, - 1703.8, - 1703, - 1703.1, - 327 - ], - [ - "2017-12-15T09:51:00+0530", - 1703.1, - 1703.7, - 1703.1, - 1703.5, - 816 - ], - [ - "2017-12-15T09:52:00+0530", - 1703.8, - 1704, - 1703.5, - 1703.5, - 855 - ], - [ - "2017-12-15T09:53:00+0530", - 1703.8, - 1703.8, - 1700.35, - 1700.6, - 613 - ], - [ - "2017-12-15T09:54:00+0530", - 1700.6, - 1701.95, - 1699.65, - 1701.95, - 3546 - ], - [ - "2017-12-15T09:55:00+0530", - 1702, - 1702.5, - 1701.5, - 1701.5, - 400 - ], - [ - "2017-12-15T09:56:00+0530", - 1701.55, - 1702.8, - 1701.55, - 1702.8, - 1217 - ], - [ - "2017-12-15T09:57:00+0530", - 1702.9, - 1703.1, - 1702.9, - 1703.1, - 623 - ], - [ - "2017-12-15T09:58:00+0530", - 1703.1, - 1703.1, - 1701.9, - 1702.1, - 155 - ], - [ - "2017-12-15T09:59:00+0530", - 1702.1, - 1702.3, - 1701.4, - 1702.05, - 1058 - ], - [ - "2017-12-15T10:00:00+0530", - 1702.05, - 1702.65, - 1701.6, - 1701.65, - 233 - ], - [ - "2017-12-15T10:01:00+0530", - 1701.65, - 1702, - 1701.1, - 1701.35, - 391 - ], - [ - "2017-12-15T10:02:00+0530", - 1701.35, - 1701.95, - 1701.3, - 1701.3, - 494 - ], - [ - "2017-12-15T10:03:00+0530", - 1701.3, - 1701.3, - 1700.15, - 1700.4, - 397 - ], - [ - "2017-12-15T10:04:00+0530", - 1700.4, - 1701.65, - 1700.4, - 1701.35, - 75 - ], - [ - "2017-12-15T10:05:00+0530", - 1701.35, - 1701.35, - 1700.55, - 1700.55, - 77 - ], - [ - "2017-12-15T10:06:00+0530", - 1701.2, - 1701.3, - 1700, - 1700, - 529 - ], - [ - "2017-12-15T10:07:00+0530", - 1700, - 1700, - 1698.05, - 1698.3, - 1201 - ], - [ - "2017-12-15T10:08:00+0530", - 1698.3, - 1699.7, - 1698.2, - 1698.45, - 1205 - ], - [ - "2017-12-15T10:09:00+0530", - 1699, - 1699.6, - 1696.6, - 1697.9, - 375 - ], - [ - "2017-12-15T10:10:00+0530", - 1697.9, - 1697.9, - 1696, - 1696, - 818 - ], - [ - "2017-12-15T10:11:00+0530", - 1695.05, - 1695.55, - 1691.9, - 1691.9, - 5435 - ], - [ - "2017-12-15T10:12:00+0530", - 1691.9, - 1692, - 1689.1, - 1690, - 5801 - ], - [ - "2017-12-15T10:13:00+0530", - 1690, - 1694.05, - 1690, - 1694.05, - 3607 - ], - [ - "2017-12-15T10:14:00+0530", - 1694.5, - 1696.05, - 1694.5, - 1696.05, - 2043 - ], - [ - "2017-12-15T10:15:00+0530", - 1696.05, - 1696.05, - 1694.8, - 1695.3, - 428 - ], - [ - "2017-12-15T10:16:00+0530", - 1694.4, - 1694.4, - 1693.75, - 1694.1, - 1054 - ], - [ - "2017-12-15T10:17:00+0530", - 1694.1, - 1695, - 1694.1, - 1695, - 1033 - ], - [ - "2017-12-15T10:18:00+0530", - 1695, - 1695, - 1694.4, - 1694.85, - 177 - ], - [ - "2017-12-15T10:19:00+0530", - 1694.85, - 1695, - 1691, - 1691.05, - 1854 - ], - [ - "2017-12-15T10:20:00+0530", - 1691.05, - 1693.05, - 1691.05, - 1693.05, - 795 - ], - [ - "2017-12-15T10:21:00+0530", - 1693.05, - 1693.15, - 1692.95, - 1692.95, - 199 - ], - [ - "2017-12-15T10:22:00+0530", - 1692.95, - 1693.15, - 1692, - 1692.05, - 730 - ], - [ - "2017-12-15T10:23:00+0530", - 1692.05, - 1692.05, - 1691.85, - 1691.9, - 753 - ], - [ - "2017-12-15T10:24:00+0530", - 1691.9, - 1692.2, - 1690.1, - 1690.1, - 610 - ], - [ - "2017-12-15T10:25:00+0530", - 1690.1, - 1691.35, - 1690.1, - 1690.3, - 234 - ], - [ - "2017-12-15T10:26:00+0530", - 1690.3, - 1693.5, - 1690.3, - 1693.5, - 969 - ], - [ - "2017-12-15T10:27:00+0530", - 1693.5, - 1696, - 1693.5, - 1695, - 578 - ], - [ - "2017-12-15T10:28:00+0530", - 1695, - 1695, - 1693.25, - 1693.25, - 140 - ], - [ - "2017-12-15T10:29:00+0530", - 1693.25, - 1693.25, - 1690.4, - 1692.6, - 708 - ], - [ - "2017-12-15T10:30:00+0530", - 1692.2, - 1694, - 1691.1, - 1691.3, - 396 - ], - [ - "2017-12-15T10:31:00+0530", - 1691.3, - 1693.1, - 1691.3, - 1693, - 78 - ], - [ - "2017-12-15T10:32:00+0530", - 1693, - 1693, - 1692.15, - 1693, - 50 - ], - [ - "2017-12-15T10:33:00+0530", - 1693, - 1693, - 1692.55, - 1692.55, - 379 - ], - [ - "2017-12-15T10:34:00+0530", - 1692.55, - 1693, - 1692.55, - 1693, - 254 - ], - [ - "2017-12-15T10:35:00+0530", - 1693, - 1693.9, - 1693, - 1693.5, - 225 - ], - [ - "2017-12-15T10:36:00+0530", - 1693.5, - 1693.95, - 1693.25, - 1693.25, - 65 - ], - [ - "2017-12-15T10:37:00+0530", - 1693.25, - 1693.25, - 1693, - 1693.25, - 72 - ], - [ - "2017-12-15T10:38:00+0530", - 1693.25, - 1693.25, - 1693.25, - 1693.25, - 397 - ], - [ - "2017-12-15T10:39:00+0530", - 1693.25, - 1693.6, - 1693, - 1693.6, - 322 - ], - [ - "2017-12-15T10:40:00+0530", - 1693.6, - 1694, - 1693.05, - 1693.5, - 79 - ], - [ - "2017-12-15T10:41:00+0530", - 1693.5, - 1693.5, - 1692.2, - 1693, - 312 - ], - [ - "2017-12-15T10:42:00+0530", - 1693, - 1693, - 1692.95, - 1692.95, - 6 - ], - [ - "2017-12-15T10:43:00+0530", - 1692.95, - 1692.95, - 1692.55, - 1692.55, - 26 - ], - [ - "2017-12-15T10:44:00+0530", - 1692.55, - 1693, - 1692.3, - 1692.3, - 30 - ], - [ - "2017-12-15T10:45:00+0530", - 1692.3, - 1693, - 1692.3, - 1693, - 287 - ], - [ - "2017-12-15T10:46:00+0530", - 1693, - 1693, - 1692.95, - 1692.95, - 19 - ], - [ - "2017-12-15T10:47:00+0530", - 1692.95, - 1692.95, - 1692.3, - 1692.3, - 69 - ], - [ - "2017-12-15T10:48:00+0530", - 1692.3, - 1692.3, - 1690.9, - 1691, - 262 - ], - [ - "2017-12-15T10:49:00+0530", - 1691, - 1691, - 1690.9, - 1690.9, - 160 - ], - [ - "2017-12-15T10:50:00+0530", - 1691, - 1691.7, - 1690.05, - 1690.05, - 143 - ], - [ - "2017-12-15T10:51:00+0530", - 1690.05, - 1692.65, - 1690.05, - 1691, - 400 - ], - [ - "2017-12-15T10:52:00+0530", - 1691, - 1694, - 1691, - 1694, - 1451 - ], - [ - "2017-12-15T10:53:00+0530", - 1694.2, - 1696.9, - 1694.2, - 1695.85, - 1276 - ], - [ - "2017-12-15T10:54:00+0530", - 1695.85, - 1696, - 1695.2, - 1696, - 623 - ], - [ - "2017-12-15T10:55:00+0530", - 1696, - 1697.4, - 1696, - 1697, - 849 - ], - [ - "2017-12-15T10:56:00+0530", - 1697, - 1699.5, - 1697, - 1699.5, - 1021 - ], - [ - "2017-12-15T10:57:00+0530", - 1699.5, - 1699.5, - 1698.2, - 1698.2, - 649 - ], - [ - "2017-12-15T10:58:00+0530", - 1698.2, - 1699, - 1698, - 1699, - 388 - ], - [ - "2017-12-15T10:59:00+0530", - 1699, - 1699.5, - 1699, - 1699, - 549 - ], - [ - "2017-12-15T11:00:00+0530", - 1699, - 1699.2, - 1698.05, - 1698.05, - 474 - ], - [ - "2017-12-15T11:01:00+0530", - 1698.05, - 1698.05, - 1697.25, - 1697.25, - 18 - ], - [ - "2017-12-15T11:02:00+0530", - 1697.25, - 1698.75, - 1697.25, - 1698, - 72 - ], - [ - "2017-12-15T11:03:00+0530", - 1698, - 1698, - 1697.4, - 1697.45, - 74 - ], - [ - "2017-12-15T11:04:00+0530", - 1697.45, - 1697.45, - 1697.05, - 1697.45, - 253 - ], - [ - "2017-12-15T11:05:00+0530", - 1697.45, - 1698, - 1697, - 1697, - 290 - ], - [ - "2017-12-15T11:06:00+0530", - 1697, - 1697, - 1697, - 1697, - 0 - ], - [ - "2017-12-15T11:07:00+0530", - 1697, - 1698, - 1697, - 1698, - 69 - ], - [ - "2017-12-15T11:08:00+0530", - 1698, - 1698, - 1697.9, - 1698, - 66 - ], - [ - "2017-12-15T11:09:00+0530", - 1698, - 1698.5, - 1697.1, - 1697.7, - 575 - ], - [ - "2017-12-15T11:10:00+0530", - 1697.7, - 1698.5, - 1697.7, - 1698.5, - 151 - ], - [ - "2017-12-15T11:11:00+0530", - 1698.5, - 1698.7, - 1698, - 1698, - 184 - ], - [ - "2017-12-15T11:12:00+0530", - 1698.35, - 1698.35, - 1698, - 1698, - 87 - ], - [ - "2017-12-15T11:13:00+0530", - 1698, - 1698, - 1697.3, - 1697.3, - 3 - ], - [ - "2017-12-15T11:14:00+0530", - 1697.3, - 1698, - 1696.95, - 1696.95, - 573 - ], - [ - "2017-12-15T11:15:00+0530", - 1696.95, - 1697.95, - 1696.75, - 1696.85, - 40 - ], - [ - "2017-12-15T11:16:00+0530", - 1696.85, - 1696.85, - 1696.8, - 1696.8, - 25 - ], - [ - "2017-12-15T11:17:00+0530", - 1696.8, - 1696.8, - 1696, - 1696.15, - 47 - ], - [ - "2017-12-15T11:18:00+0530", - 1696.15, - 1696.85, - 1696.15, - 1696.8, - 23 - ], - [ - "2017-12-15T11:19:00+0530", - 1696.8, - 1696.8, - 1696.45, - 1696.45, - 30 - ], - [ - "2017-12-15T11:20:00+0530", - 1696.45, - 1696.45, - 1696, - 1696.15, - 214 - ], - [ - "2017-12-15T11:21:00+0530", - 1696.15, - 1696.15, - 1696, - 1696, - 130 - ], - [ - "2017-12-15T11:22:00+0530", - 1696.15, - 1696.15, - 1696, - 1696, - 117 - ], - [ - "2017-12-15T11:23:00+0530", - 1696.15, - 1699.1, - 1696, - 1698.6, - 1268 - ], - [ - "2017-12-15T11:24:00+0530", - 1698.6, - 1699.6, - 1698.6, - 1699.6, - 1545 - ], - [ - "2017-12-15T11:25:00+0530", - 1699.6, - 1699.9, - 1699.25, - 1699.9, - 532 - ], - [ - "2017-12-15T11:26:00+0530", - 1699.5, - 1699.5, - 1699.2, - 1699.2, - 276 - ], - [ - "2017-12-15T11:27:00+0530", - 1699.2, - 1699.5, - 1698.95, - 1698.95, - 427 - ], - [ - "2017-12-15T11:28:00+0530", - 1698.95, - 1698.95, - 1697.95, - 1697.95, - 91 - ], - [ - "2017-12-15T11:29:00+0530", - 1697, - 1697, - 1697, - 1697, - 46 - ], - [ - "2017-12-15T11:30:00+0530", - 1697, - 1698.4, - 1697, - 1698.4, - 1383 - ], - [ - "2017-12-15T11:31:00+0530", - 1698.4, - 1698.4, - 1697.75, - 1697.75, - 56 - ], - [ - "2017-12-15T11:32:00+0530", - 1697.75, - 1697.75, - 1697, - 1697.75, - 507 - ], - [ - "2017-12-15T11:33:00+0530", - 1697.75, - 1697.75, - 1697.45, - 1697.45, - 16 - ], - [ - "2017-12-15T11:34:00+0530", - 1697.45, - 1698.15, - 1696.9, - 1698.15, - 120 - ], - [ - "2017-12-15T11:35:00+0530", - 1698.15, - 1698.15, - 1698.15, - 1698.15, - 32 - ], - [ - "2017-12-15T11:36:00+0530", - 1698.15, - 1698.15, - 1697.45, - 1697.45, - 1 - ], - [ - "2017-12-15T11:37:00+0530", - 1697.45, - 1698, - 1695.55, - 1695.55, - 524 - ], - [ - "2017-12-15T11:38:00+0530", - 1695.55, - 1697.65, - 1695.55, - 1697.65, - 11 - ], - [ - "2017-12-15T11:39:00+0530", - 1697.65, - 1697.65, - 1696.5, - 1696.5, - 51 - ], - [ - "2017-12-15T11:40:00+0530", - 1696.5, - 1696.5, - 1696.5, - 1696.5, - 0 - ], - [ - "2017-12-15T11:41:00+0530", - 1696.5, - 1696.8, - 1696.5, - 1696.8, - 20 - ], - [ - "2017-12-15T11:42:00+0530", - 1696.8, - 1696.8, - 1696.8, - 1696.8, - 4 - ], - [ - "2017-12-15T11:43:00+0530", - 1696.8, - 1698, - 1696.8, - 1697.95, - 245 - ], - [ - "2017-12-15T11:44:00+0530", - 1697.95, - 1697.95, - 1697, - 1697.15, - 13 - ], - [ - "2017-12-15T11:45:00+0530", - 1697.15, - 1697.95, - 1697.15, - 1697.25, - 174 - ], - [ - "2017-12-15T11:46:00+0530", - 1697.25, - 1698, - 1696.7, - 1698, - 122 - ], - [ - "2017-12-15T11:47:00+0530", - 1698, - 1698, - 1698, - 1698, - 210 - ], - [ - "2017-12-15T11:48:00+0530", - 1698, - 1698, - 1697.4, - 1697.4, - 21 - ], - [ - "2017-12-15T11:49:00+0530", - 1697.4, - 1698, - 1697.4, - 1698, - 28 - ], - [ - "2017-12-15T11:50:00+0530", - 1698, - 1698.4, - 1698, - 1698, - 172 - ], - [ - "2017-12-15T11:51:00+0530", - 1698, - 1698, - 1697.8, - 1698, - 100 - ], - [ - "2017-12-15T11:52:00+0530", - 1698, - 1698, - 1698, - 1698, - 0 - ], - [ - "2017-12-15T11:53:00+0530", - 1698, - 1698, - 1697.8, - 1697.8, - 15 - ], - [ - "2017-12-15T11:54:00+0530", - 1697.8, - 1698.3, - 1696.8, - 1698.25, - 70 - ], - [ - "2017-12-15T11:55:00+0530", - 1698.25, - 1698.25, - 1695.5, - 1695.5, - 1123 - ], - [ - "2017-12-15T11:56:00+0530", - 1695.1, - 1698.2, - 1694.15, - 1698.05, - 549 - ], - [ - "2017-12-15T11:57:00+0530", - 1698.15, - 1698.3, - 1694.65, - 1695, - 475 - ], - [ - "2017-12-15T11:58:00+0530", - 1695, - 1695.5, - 1694.35, - 1695, - 145 - ], - [ - "2017-12-15T11:59:00+0530", - 1695.5, - 1695.75, - 1695, - 1695.75, - 140 - ], - [ - "2017-12-15T12:00:00+0530", - 1695.75, - 1696.7, - 1695.7, - 1696.5, - 59 - ], - [ - "2017-12-15T12:01:00+0530", - 1696.5, - 1696.95, - 1696.45, - 1696.55, - 96 - ], - [ - "2017-12-15T12:02:00+0530", - 1696.55, - 1697.15, - 1695.5, - 1696, - 235 - ], - [ - "2017-12-15T12:03:00+0530", - 1696, - 1696, - 1695.8, - 1695.8, - 319 - ], - [ - "2017-12-15T12:04:00+0530", - 1695.8, - 1695.8, - 1695.05, - 1695.65, - 36 - ], - [ - "2017-12-15T12:05:00+0530", - 1695.65, - 1695.65, - 1695.1, - 1695.1, - 4 - ], - [ - "2017-12-15T12:06:00+0530", - 1695.1, - 1695.1, - 1694.05, - 1694.35, - 241 - ], - [ - "2017-12-15T12:07:00+0530", - 1694.35, - 1694.95, - 1694.35, - 1694.7, - 388 - ], - [ - "2017-12-15T12:08:00+0530", - 1694.7, - 1695, - 1694.7, - 1694.75, - 54 - ], - [ - "2017-12-15T12:09:00+0530", - 1695.6, - 1695.6, - 1694.2, - 1694.2, - 100 - ], - [ - "2017-12-15T12:10:00+0530", - 1694.2, - 1694.2, - 1694.05, - 1694.15, - 16 - ], - [ - "2017-12-15T12:11:00+0530", - 1694.15, - 1694.2, - 1694, - 1694, - 67 - ], - [ - "2017-12-15T12:12:00+0530", - 1694, - 1694.7, - 1694, - 1694.25, - 150 - ], - [ - "2017-12-15T12:13:00+0530", - 1694.3, - 1694.7, - 1694, - 1694.1, - 20 - ], - [ - "2017-12-15T12:14:00+0530", - 1694.1, - 1694.7, - 1694.1, - 1694.7, - 104 - ], - [ - "2017-12-15T12:15:00+0530", - 1694.15, - 1694.65, - 1694.05, - 1694.05, - 35 - ], - [ - "2017-12-15T12:16:00+0530", - 1694.05, - 1694.05, - 1694.05, - 1694.05, - 0 - ], - [ - "2017-12-15T12:17:00+0530", - 1694.05, - 1694.05, - 1693.55, - 1693.55, - 200 - ], - [ - "2017-12-15T12:18:00+0530", - 1693.55, - 1694.1, - 1693.55, - 1694.1, - 139 - ], - [ - "2017-12-15T12:19:00+0530", - 1694.1, - 1694.35, - 1694.1, - 1694.35, - 4 - ], - [ - "2017-12-15T12:20:00+0530", - 1694.35, - 1694.7, - 1694.35, - 1694.35, - 112 - ], - [ - "2017-12-15T12:21:00+0530", - 1694.35, - 1694.65, - 1694.35, - 1694.65, - 74 - ], - [ - "2017-12-15T12:22:00+0530", - 1694.65, - 1694.65, - 1694.65, - 1694.65, - 7 - ], - [ - "2017-12-15T12:23:00+0530", - 1694.65, - 1694.95, - 1694.65, - 1694.7, - 117 - ], - [ - "2017-12-15T12:24:00+0530", - 1694.7, - 1695, - 1694.7, - 1695, - 6 - ], - [ - "2017-12-15T12:25:00+0530", - 1695, - 1696, - 1695, - 1695.65, - 185 - ], - [ - "2017-12-15T12:26:00+0530", - 1695.65, - 1695.65, - 1694.7, - 1694.7, - 200 - ], - [ - "2017-12-15T12:27:00+0530", - 1695.5, - 1695.5, - 1695.4, - 1695.4, - 3 - ], - [ - "2017-12-15T12:28:00+0530", - 1695.4, - 1695.75, - 1695.4, - 1695.75, - 5 - ], - [ - "2017-12-15T12:29:00+0530", - 1695.75, - 1697.05, - 1695.75, - 1697.05, - 171 - ], - [ - "2017-12-15T12:30:00+0530", - 1698, - 1700, - 1698, - 1700, - 2236 - ], - [ - "2017-12-15T12:31:00+0530", - 1700, - 1700, - 1699.5, - 1699.5, - 202 - ], - [ - "2017-12-15T12:32:00+0530", - 1699.5, - 1699.5, - 1699, - 1699, - 486 - ], - [ - "2017-12-15T12:33:00+0530", - 1699, - 1699, - 1697.9, - 1699, - 127 - ], - [ - "2017-12-15T12:34:00+0530", - 1699, - 1699, - 1698.55, - 1698.6, - 208 - ], - [ - "2017-12-15T12:35:00+0530", - 1698.6, - 1698.9, - 1698.6, - 1698.6, - 33 - ], - [ - "2017-12-15T12:36:00+0530", - 1698.6, - 1699, - 1698.6, - 1698.75, - 107 - ], - [ - "2017-12-15T12:37:00+0530", - 1698.75, - 1698.75, - 1697.55, - 1698.6, - 502 - ], - [ - "2017-12-15T12:38:00+0530", - 1698.6, - 1698.65, - 1698.6, - 1698.65, - 2 - ], - [ - "2017-12-15T12:39:00+0530", - 1698.65, - 1698.75, - 1698.65, - 1698.75, - 89 - ], - [ - "2017-12-15T12:40:00+0530", - 1698.7, - 1698.7, - 1698.7, - 1698.7, - 120 - ], - [ - "2017-12-15T12:41:00+0530", - 1698.7, - 1698.7, - 1698.3, - 1698.3, - 53 - ], - [ - "2017-12-15T12:42:00+0530", - 1698.3, - 1698.3, - 1696.8, - 1697.3, - 276 - ], - [ - "2017-12-15T12:43:00+0530", - 1697.3, - 1697.3, - 1696.95, - 1696.95, - 5 - ], - [ - "2017-12-15T12:44:00+0530", - 1696.95, - 1696.95, - 1696.95, - 1696.95, - 0 - ], - [ - "2017-12-15T12:45:00+0530", - 1696.95, - 1696.95, - 1696.7, - 1696.7, - 150 - ], - [ - "2017-12-15T12:46:00+0530", - 1696.7, - 1696.7, - 1695, - 1696.05, - 246 - ], - [ - "2017-12-15T12:47:00+0530", - 1696.05, - 1696.05, - 1695.9, - 1695.9, - 28 - ], - [ - "2017-12-15T12:48:00+0530", - 1695.9, - 1696.4, - 1695.5, - 1695.55, - 118 - ], - [ - "2017-12-15T12:49:00+0530", - 1695.55, - 1695.55, - 1695, - 1695, - 502 - ], - [ - "2017-12-15T12:50:00+0530", - 1695, - 1696.1, - 1695, - 1695.55, - 56 - ], - [ - "2017-12-15T12:51:00+0530", - 1695.55, - 1696.1, - 1695.55, - 1695.65, - 122 - ], - [ - "2017-12-15T12:52:00+0530", - 1695.65, - 1696.05, - 1695.65, - 1696.05, - 87 - ], - [ - "2017-12-15T12:53:00+0530", - 1696.05, - 1696.4, - 1696.05, - 1696.4, - 2 - ], - [ - "2017-12-15T12:54:00+0530", - 1696.4, - 1696.4, - 1696.15, - 1696.4, - 58 - ], - [ - "2017-12-15T12:55:00+0530", - 1696.3, - 1696.4, - 1694.7, - 1695.5, - 518 - ], - [ - "2017-12-15T12:56:00+0530", - 1695.5, - 1697.05, - 1695.5, - 1697, - 299 - ], - [ - "2017-12-15T12:57:00+0530", - 1697, - 1698, - 1697, - 1697.6, - 95 - ], - [ - "2017-12-15T12:58:00+0530", - 1697.6, - 1697.95, - 1697, - 1697, - 248 - ], - [ - "2017-12-15T12:59:00+0530", - 1697, - 1697.55, - 1697, - 1697.55, - 2 - ], - [ - "2017-12-15T13:00:00+0530", - 1697.8, - 1697.9, - 1697.55, - 1697.55, - 82 - ], - [ - "2017-12-15T13:01:00+0530", - 1697.55, - 1697.55, - 1696.05, - 1696.05, - 489 - ], - [ - "2017-12-15T13:02:00+0530", - 1696.05, - 1697.3, - 1695.5, - 1696.95, - 163 - ], - [ - "2017-12-15T13:03:00+0530", - 1696.95, - 1697, - 1695.95, - 1696, - 126 - ], - [ - "2017-12-15T13:04:00+0530", - 1696, - 1696, - 1694.85, - 1694.9, - 263 - ], - [ - "2017-12-15T13:05:00+0530", - 1694.9, - 1695.7, - 1694.9, - 1695.7, - 7 - ], - [ - "2017-12-15T13:06:00+0530", - 1695.7, - 1698, - 1694.15, - 1697.05, - 1335 - ], - [ - "2017-12-15T13:07:00+0530", - 1697.05, - 1697.4, - 1697.05, - 1697.2, - 60 - ], - [ - "2017-12-15T13:08:00+0530", - 1697.2, - 1697.2, - 1696.85, - 1696.85, - 19 - ], - [ - "2017-12-15T13:09:00+0530", - 1696.85, - 1697.4, - 1696.85, - 1697.4, - 87 - ], - [ - "2017-12-15T13:10:00+0530", - 1697.4, - 1697.5, - 1697.4, - 1697.5, - 251 - ], - [ - "2017-12-15T13:11:00+0530", - 1697.5, - 1697.95, - 1696.85, - 1697.95, - 116 - ], - [ - "2017-12-15T13:12:00+0530", - 1697.95, - 1697.95, - 1697.55, - 1697.6, - 114 - ], - [ - "2017-12-15T13:13:00+0530", - 1697.6, - 1697.95, - 1697.25, - 1697.25, - 65 - ], - [ - "2017-12-15T13:14:00+0530", - 1697.25, - 1697.9, - 1697.25, - 1697.9, - 14 - ], - [ - "2017-12-15T13:15:00+0530", - 1697.9, - 1697.9, - 1697.25, - 1697.25, - 109 - ], - [ - "2017-12-15T13:16:00+0530", - 1697.25, - 1697.25, - 1697.25, - 1697.25, - 0 - ], - [ - "2017-12-15T13:17:00+0530", - 1697.25, - 1697.25, - 1695.9, - 1695.9, - 92 - ], - [ - "2017-12-15T13:18:00+0530", - 1695.9, - 1695.9, - 1694, - 1694, - 252 - ], - [ - "2017-12-15T13:19:00+0530", - 1693.6, - 1693.95, - 1693.6, - 1693.75, - 115 - ], - [ - "2017-12-15T13:20:00+0530", - 1693.75, - 1694.9, - 1693.35, - 1694, - 441 - ], - [ - "2017-12-15T13:21:00+0530", - 1694, - 1694, - 1691.1, - 1691.1, - 1088 - ], - [ - "2017-12-15T13:22:00+0530", - 1691.1, - 1695.95, - 1691.1, - 1695.65, - 215 - ], - [ - "2017-12-15T13:23:00+0530", - 1695.65, - 1695.65, - 1694.85, - 1694.85, - 153 - ], - [ - "2017-12-15T13:24:00+0530", - 1694.85, - 1694.85, - 1694.85, - 1694.85, - 0 - ], - [ - "2017-12-15T13:25:00+0530", - 1694.85, - 1696, - 1694.8, - 1696, - 233 - ], - [ - "2017-12-15T13:26:00+0530", - 1696, - 1696, - 1694.5, - 1694.5, - 132 - ], - [ - "2017-12-15T13:27:00+0530", - 1694.5, - 1694.85, - 1694, - 1694.85, - 132 - ], - [ - "2017-12-15T13:28:00+0530", - 1694.85, - 1694.85, - 1694.35, - 1694.75, - 41 - ], - [ - "2017-12-15T13:29:00+0530", - 1695, - 1695, - 1694.75, - 1694.75, - 68 - ], - [ - "2017-12-15T13:30:00+0530", - 1694.75, - 1694.75, - 1692.1, - 1692.1, - 214 - ], - [ - "2017-12-15T13:31:00+0530", - 1692.1, - 1693.35, - 1692, - 1693, - 203 - ], - [ - "2017-12-15T13:32:00+0530", - 1693, - 1694.6, - 1693, - 1694.1, - 87 - ], - [ - "2017-12-15T13:33:00+0530", - 1694.1, - 1694.95, - 1693.6, - 1694.95, - 196 - ], - [ - "2017-12-15T13:34:00+0530", - 1694.95, - 1695.4, - 1693.85, - 1693.85, - 75 - ], - [ - "2017-12-15T13:35:00+0530", - 1693.85, - 1694.4, - 1693.85, - 1694.4, - 10 - ], - [ - "2017-12-15T13:36:00+0530", - 1694.4, - 1696, - 1694.4, - 1696, - 100 - ], - [ - "2017-12-15T13:37:00+0530", - 1696, - 1696, - 1695.2, - 1696, - 300 - ], - [ - "2017-12-15T13:38:00+0530", - 1696, - 1696, - 1695.5, - 1696, - 141 - ], - [ - "2017-12-15T13:39:00+0530", - 1696, - 1696, - 1694, - 1694.8, - 187 - ], - [ - "2017-12-15T13:40:00+0530", - 1694.8, - 1694.8, - 1694, - 1694.15, - 109 - ], - [ - "2017-12-15T13:41:00+0530", - 1694.15, - 1694.15, - 1694.15, - 1694.15, - 0 - ], - [ - "2017-12-15T13:42:00+0530", - 1694.15, - 1695.1, - 1694, - 1694, - 133 - ], - [ - "2017-12-15T13:43:00+0530", - 1694, - 1694, - 1693.65, - 1693.65, - 3 - ], - [ - "2017-12-15T13:44:00+0530", - 1693.65, - 1694.05, - 1693.65, - 1694.05, - 50 - ], - [ - "2017-12-15T13:45:00+0530", - 1694.05, - 1694.25, - 1694, - 1694, - 56 - ], - [ - "2017-12-15T13:46:00+0530", - 1694, - 1694.25, - 1693.95, - 1693.95, - 28 - ], - [ - "2017-12-15T13:47:00+0530", - 1694.25, - 1694.7, - 1693.6, - 1694.7, - 277 - ], - [ - "2017-12-15T13:48:00+0530", - 1694.7, - 1694.7, - 1694.7, - 1694.7, - 22 - ], - [ - "2017-12-15T13:49:00+0530", - 1694.7, - 1695.15, - 1694.7, - 1695.15, - 49 - ], - [ - "2017-12-15T13:50:00+0530", - 1694.9, - 1695.15, - 1694.9, - 1695.15, - 80 - ], - [ - "2017-12-15T13:51:00+0530", - 1695.15, - 1695.75, - 1695.15, - 1695.5, - 84 - ], - [ - "2017-12-15T13:52:00+0530", - 1695.5, - 1695.55, - 1695.5, - 1695.55, - 56 - ], - [ - "2017-12-15T13:53:00+0530", - 1695.55, - 1695.9, - 1695.55, - 1695.85, - 240 - ], - [ - "2017-12-15T13:54:00+0530", - 1695.85, - 1696.35, - 1695.6, - 1696.35, - 117 - ], - [ - "2017-12-15T13:55:00+0530", - 1696.35, - 1697.8, - 1696.35, - 1697.45, - 233 - ], - [ - "2017-12-15T13:56:00+0530", - 1697.45, - 1697.45, - 1696.65, - 1696.95, - 86 - ], - [ - "2017-12-15T13:57:00+0530", - 1696.95, - 1696.95, - 1696.55, - 1696.55, - 23 - ], - [ - "2017-12-15T13:58:00+0530", - 1696.55, - 1698, - 1696.55, - 1697.95, - 363 - ], - [ - "2017-12-15T13:59:00+0530", - 1697.95, - 1698, - 1697.05, - 1698, - 416 - ], - [ - "2017-12-15T14:00:00+0530", - 1698, - 1698.5, - 1697.3, - 1697.6, - 101 - ], - [ - "2017-12-15T14:01:00+0530", - 1697.6, - 1697.6, - 1696.85, - 1696.85, - 37 - ], - [ - "2017-12-15T14:02:00+0530", - 1696.85, - 1697.95, - 1696.65, - 1696.9, - 110 - ], - [ - "2017-12-15T14:03:00+0530", - 1696.9, - 1697.6, - 1696.65, - 1697.4, - 39 - ], - [ - "2017-12-15T14:04:00+0530", - 1697.4, - 1697.9, - 1697, - 1697.45, - 42 - ], - [ - "2017-12-15T14:05:00+0530", - 1697.45, - 1697.45, - 1695, - 1695.55, - 560 - ], - [ - "2017-12-15T14:06:00+0530", - 1695.55, - 1696.25, - 1695.55, - 1695.7, - 68 - ], - [ - "2017-12-15T14:07:00+0530", - 1695.7, - 1697, - 1695.6, - 1696.85, - 171 - ], - [ - "2017-12-15T14:08:00+0530", - 1696.85, - 1697.2, - 1696.85, - 1696.85, - 81 - ], - [ - "2017-12-15T14:09:00+0530", - 1696.85, - 1696.85, - 1696.55, - 1696.8, - 14 - ], - [ - "2017-12-15T14:10:00+0530", - 1696.8, - 1696.8, - 1696.1, - 1696.1, - 46 - ], - [ - "2017-12-15T14:11:00+0530", - 1696.1, - 1697.1, - 1696.1, - 1696.65, - 71 - ], - [ - "2017-12-15T14:12:00+0530", - 1696.65, - 1697.5, - 1695.55, - 1695.55, - 219 - ], - [ - "2017-12-15T14:13:00+0530", - 1695.55, - 1696.6, - 1695.55, - 1696.6, - 41 - ], - [ - "2017-12-15T14:14:00+0530", - 1696.6, - 1696.6, - 1695.55, - 1695.55, - 40 - ], - [ - "2017-12-15T14:15:00+0530", - 1695.55, - 1696.4, - 1695.55, - 1696.4, - 10 - ], - [ - "2017-12-15T14:16:00+0530", - 1696.9, - 1697, - 1696.9, - 1696.9, - 21 - ], - [ - "2017-12-15T14:17:00+0530", - 1696.9, - 1696.9, - 1695.7, - 1695.7, - 84 - ], - [ - "2017-12-15T14:18:00+0530", - 1695.55, - 1695.55, - 1695.55, - 1695.55, - 136 - ], - [ - "2017-12-15T14:19:00+0530", - 1695.55, - 1695.55, - 1695, - 1695, - 77 - ], - [ - "2017-12-15T14:20:00+0530", - 1695, - 1695.55, - 1695, - 1695.1, - 38 - ], - [ - "2017-12-15T14:21:00+0530", - 1695.1, - 1695.1, - 1695.1, - 1695.1, - 0 - ], - [ - "2017-12-15T14:22:00+0530", - 1695.1, - 1695.55, - 1695.1, - 1695.2, - 51 - ], - [ - "2017-12-15T14:23:00+0530", - 1695.2, - 1696.9, - 1695.2, - 1696.65, - 129 - ], - [ - "2017-12-15T14:24:00+0530", - 1696.65, - 1697, - 1695.55, - 1695.55, - 110 - ], - [ - "2017-12-15T14:25:00+0530", - 1695.55, - 1696.45, - 1695.3, - 1696.45, - 38 - ], - [ - "2017-12-15T14:26:00+0530", - 1696.45, - 1696.45, - 1695.25, - 1695.25, - 141 - ], - [ - "2017-12-15T14:27:00+0530", - 1695.85, - 1696.6, - 1695.85, - 1696.55, - 57 - ], - [ - "2017-12-15T14:28:00+0530", - 1696.55, - 1696.6, - 1695.25, - 1696.4, - 157 - ], - [ - "2017-12-15T14:29:00+0530", - 1696.1, - 1696.1, - 1696.1, - 1696.1, - 25 - ], - [ - "2017-12-15T14:30:00+0530", - 1696.1, - 1696.1, - 1695.65, - 1695.65, - 21 - ], - [ - "2017-12-15T14:31:00+0530", - 1695.65, - 1695.65, - 1695.5, - 1695.5, - 121 - ], - [ - "2017-12-15T14:32:00+0530", - 1695.5, - 1695.7, - 1695.5, - 1695.7, - 9 - ], - [ - "2017-12-15T14:33:00+0530", - 1695.7, - 1696.1, - 1695.7, - 1696.1, - 21 - ], - [ - "2017-12-15T14:34:00+0530", - 1696.1, - 1696.4, - 1696.05, - 1696.2, - 20 - ], - [ - "2017-12-15T14:35:00+0530", - 1696.2, - 1697.4, - 1696.05, - 1696.05, - 418 - ], - [ - "2017-12-15T14:36:00+0530", - 1696.05, - 1696.8, - 1696.05, - 1696.8, - 33 - ], - [ - "2017-12-15T14:37:00+0530", - 1696.8, - 1696.8, - 1696.65, - 1696.65, - 67 - ], - [ - "2017-12-15T14:38:00+0530", - 1696.65, - 1696.8, - 1696.65, - 1696.8, - 10 - ], - [ - "2017-12-15T14:39:00+0530", - 1696.8, - 1697, - 1696.8, - 1696.9, - 146 - ], - [ - "2017-12-15T14:40:00+0530", - 1696.9, - 1697, - 1696.9, - 1697, - 12 - ], - [ - "2017-12-15T14:41:00+0530", - 1697, - 1697.9, - 1697, - 1697.4, - 226 - ], - [ - "2017-12-15T14:42:00+0530", - 1697.4, - 1697.8, - 1697.4, - 1697.8, - 40 - ], - [ - "2017-12-15T14:43:00+0530", - 1697.8, - 1697.8, - 1697.55, - 1697.55, - 88 - ], - [ - "2017-12-15T14:44:00+0530", - 1697.55, - 1697.8, - 1695, - 1695, - 672 - ], - [ - "2017-12-15T14:45:00+0530", - 1695, - 1696.6, - 1695, - 1696, - 114 - ], - [ - "2017-12-15T14:46:00+0530", - 1696, - 1696, - 1695, - 1695, - 271 - ], - [ - "2017-12-15T14:47:00+0530", - 1695, - 1695, - 1694.1, - 1694.1, - 143 - ], - [ - "2017-12-15T14:48:00+0530", - 1694.1, - 1695.7, - 1693, - 1693, - 638 - ], - [ - "2017-12-15T14:49:00+0530", - 1693, - 1694.7, - 1693, - 1694.05, - 52 - ], - [ - "2017-12-15T14:50:00+0530", - 1694.05, - 1694.55, - 1693.8, - 1693.8, - 69 - ], - [ - "2017-12-15T14:51:00+0530", - 1693.8, - 1694.85, - 1693.7, - 1694.4, - 556 - ], - [ - "2017-12-15T14:52:00+0530", - 1694.4, - 1694.6, - 1693.85, - 1693.85, - 41 - ], - [ - "2017-12-15T14:53:00+0530", - 1693.85, - 1695.1, - 1693.35, - 1695.1, - 182 - ], - [ - "2017-12-15T14:54:00+0530", - 1695.1, - 1695.25, - 1694.3, - 1694.3, - 200 - ], - [ - "2017-12-15T14:55:00+0530", - 1694.3, - 1694.5, - 1693.35, - 1693.4, - 480 - ], - [ - "2017-12-15T14:56:00+0530", - 1693.35, - 1694.9, - 1693.35, - 1694.9, - 210 - ], - [ - "2017-12-15T14:57:00+0530", - 1694.9, - 1694.9, - 1693.7, - 1694.5, - 207 - ], - [ - "2017-12-15T14:58:00+0530", - 1694.5, - 1694.5, - 1693.05, - 1694, - 66 - ], - [ - "2017-12-15T14:59:00+0530", - 1695, - 1695, - 1693, - 1694.55, - 1401 - ], - [ - "2017-12-15T15:00:00+0530", - 1694.55, - 1697.35, - 1693.55, - 1697.35, - 2393 - ], - [ - "2017-12-15T15:01:00+0530", - 1697.35, - 1697.8, - 1697, - 1697, - 1620 - ], - [ - "2017-12-15T15:02:00+0530", - 1696.65, - 1697, - 1696.6, - 1697, - 1764 - ], - [ - "2017-12-15T15:03:00+0530", - 1696.95, - 1697, - 1696.8, - 1696.85, - 2016 - ], - [ - "2017-12-15T15:04:00+0530", - 1696.85, - 1697.75, - 1696.8, - 1697.7, - 1346 - ], - [ - "2017-12-15T15:05:00+0530", - 1697.7, - 1698, - 1697.6, - 1698, - 2008 - ], - [ - "2017-12-15T15:06:00+0530", - 1697.9, - 1698, - 1696.55, - 1697.75, - 2013 - ], - [ - "2017-12-15T15:07:00+0530", - 1697.5, - 1697.6, - 1694, - 1696.05, - 2588 - ], - [ - "2017-12-15T15:08:00+0530", - 1696.15, - 1696.15, - 1694.55, - 1696, - 1980 - ], - [ - "2017-12-15T15:09:00+0530", - 1695.9, - 1696, - 1695.35, - 1695.6, - 2140 - ], - [ - "2017-12-15T15:10:00+0530", - 1695.75, - 1696.15, - 1695, - 1695.9, - 2086 - ], - [ - "2017-12-15T15:11:00+0530", - 1695.5, - 1695.5, - 1694.2, - 1694.7, - 2329 - ], - [ - "2017-12-15T15:12:00+0530", - 1694.75, - 1694.75, - 1694, - 1694, - 2484 - ], - [ - "2017-12-15T15:13:00+0530", - 1693.95, - 1694.5, - 1693, - 1694.15, - 2920 - ], - [ - "2017-12-15T15:14:00+0530", - 1693.65, - 1695.75, - 1693.65, - 1695.25, - 2514 - ], - [ - "2017-12-15T15:15:00+0530", - 1694.55, - 1695.65, - 1694, - 1695.65, - 1728 - ], - [ - "2017-12-15T15:16:00+0530", - 1694.95, - 1696.1, - 1693.35, - 1695.05, - 3650 - ], - [ - "2017-12-15T15:17:00+0530", - 1695.05, - 1695.65, - 1694.05, - 1694.65, - 1736 - ], - [ - "2017-12-15T15:18:00+0530", - 1694.65, - 1695.9, - 1694.65, - 1695.7, - 1590 - ], - [ - "2017-12-15T15:19:00+0530", - 1695.7, - 1698.3, - 1695.6, - 1698.3, - 3571 - ], - [ - "2017-12-15T15:20:00+0530", - 1698, - 1698.3, - 1697.85, - 1698, - 2450 - ], - [ - "2017-12-15T15:21:00+0530", - 1697.95, - 1698.6, - 1696.95, - 1697.5, - 3352 - ], - [ - "2017-12-15T15:22:00+0530", - 1698, - 1699, - 1696.8, - 1699, - 3271 - ], - [ - "2017-12-15T15:23:00+0530", - 1699, - 1699.55, - 1696.8, - 1698.2, - 3428 - ], - [ - "2017-12-15T15:24:00+0530", - 1698.2, - 1699, - 1697.25, - 1698.65, - 2078 - ], - [ - "2017-12-15T15:25:00+0530", - 1698.8, - 1699.7, - 1697.9, - 1697.9, - 3730 - ], - [ - "2017-12-15T15:26:00+0530", - 1697.2, - 1698, - 1696.5, - 1697.75, - 1957 - ], - [ - "2017-12-15T15:27:00+0530", - 1697.75, - 1698, - 1697, - 1697, - 1770 - ], - [ - "2017-12-15T15:28:00+0530", - 1697, - 1697.95, - 1694.2, - 1694.2, - 665 - ], - [ - "2017-12-15T15:29:00+0530", - 1694.2, - 1698.75, - 1694.1, - 1695.75, - 1651 - ], - [ - "2017-12-18T09:15:00+0530", - 1684.4, - 1684.65, - 1663, - 1665.75, - 1746 - ], - [ - "2017-12-18T09:16:00+0530", - 1663.35, - 1671.65, - 1663.35, - 1664, - 1884 - ], - [ - "2017-12-18T09:17:00+0530", - 1667.35, - 1668, - 1665.35, - 1667.4, - 1364 - ], - [ - "2017-12-18T09:18:00+0530", - 1667.4, - 1671.75, - 1663.05, - 1663.15, - 3223 - ], - [ - "2017-12-18T09:19:00+0530", - 1663.15, - 1663.25, - 1655.5, - 1658.85, - 1890 - ], - [ - "2017-12-18T09:20:00+0530", - 1658.85, - 1660, - 1656, - 1659.95, - 1588 - ], - [ - "2017-12-18T09:21:00+0530", - 1659.95, - 1662.3, - 1659.75, - 1662.3, - 3036 - ], - [ - "2017-12-18T09:22:00+0530", - 1662.3, - 1662.5, - 1658.6, - 1658.6, - 413 - ], - [ - "2017-12-18T09:23:00+0530", - 1658.6, - 1661, - 1657.65, - 1661, - 1966 - ], - [ - "2017-12-18T09:24:00+0530", - 1661, - 1664.8, - 1660.7, - 1664.8, - 4355 - ], - [ - "2017-12-18T09:25:00+0530", - 1664.8, - 1667.45, - 1664.5, - 1667.15, - 2350 - ], - [ - "2017-12-18T09:26:00+0530", - 1667.15, - 1667.5, - 1666, - 1667.25, - 971 - ], - [ - "2017-12-18T09:27:00+0530", - 1667.25, - 1670, - 1667.25, - 1667.75, - 3396 - ], - [ - "2017-12-18T09:28:00+0530", - 1666.05, - 1669.35, - 1666.05, - 1668.05, - 749 - ], - [ - "2017-12-18T09:29:00+0530", - 1668.05, - 1672.9, - 1668.05, - 1672.9, - 1967 - ], - [ - "2017-12-18T09:30:00+0530", - 1672, - 1674.25, - 1672, - 1674, - 2870 - ], - [ - "2017-12-18T09:31:00+0530", - 1673.1, - 1674.55, - 1670, - 1674, - 1013 - ], - [ - "2017-12-18T09:32:00+0530", - 1674, - 1674, - 1672.1, - 1672.85, - 1566 - ], - [ - "2017-12-18T09:33:00+0530", - 1672.1, - 1675.95, - 1670, - 1675.95, - 1800 - ], - [ - "2017-12-18T09:34:00+0530", - 1675.95, - 1680.7, - 1675.95, - 1680, - 1845 - ], - [ - "2017-12-18T09:35:00+0530", - 1680, - 1681.5, - 1676.45, - 1681, - 2540 - ], - [ - "2017-12-18T09:36:00+0530", - 1681.75, - 1681.75, - 1675, - 1676.4, - 2101 - ], - [ - "2017-12-18T09:37:00+0530", - 1676.05, - 1677.85, - 1675.65, - 1676.6, - 1366 - ], - [ - "2017-12-18T09:38:00+0530", - 1676.6, - 1677.5, - 1675.4, - 1677.5, - 816 - ], - [ - "2017-12-18T09:39:00+0530", - 1677.5, - 1679, - 1677, - 1678.5, - 2054 - ], - [ - "2017-12-18T09:40:00+0530", - 1678.5, - 1680, - 1678.5, - 1679.4, - 864 - ], - [ - "2017-12-18T09:41:00+0530", - 1679.4, - 1679.4, - 1676.25, - 1678.9, - 1173 - ], - [ - "2017-12-18T09:42:00+0530", - 1678.9, - 1683.8, - 1678.9, - 1683.8, - 4558 - ], - [ - "2017-12-18T09:43:00+0530", - 1683.8, - 1688, - 1683.5, - 1686, - 3945 - ], - [ - "2017-12-18T09:44:00+0530", - 1686, - 1686, - 1682.9, - 1684, - 1117 - ], - [ - "2017-12-18T09:45:00+0530", - 1684, - 1684, - 1679.3, - 1681, - 1378 - ], - [ - "2017-12-18T09:46:00+0530", - 1681, - 1681, - 1679.9, - 1679.9, - 234 - ], - [ - "2017-12-18T09:47:00+0530", - 1679.9, - 1680, - 1676.9, - 1679.6, - 493 - ], - [ - "2017-12-18T09:48:00+0530", - 1679.6, - 1684.45, - 1676.75, - 1684.45, - 3729 - ], - [ - "2017-12-18T09:49:00+0530", - 1684.5, - 1684.5, - 1677.6, - 1680, - 563 - ], - [ - "2017-12-18T09:50:00+0530", - 1680, - 1680, - 1678.15, - 1680, - 267 - ], - [ - "2017-12-18T09:51:00+0530", - 1680, - 1681.5, - 1678.15, - 1680.85, - 939 - ], - [ - "2017-12-18T09:52:00+0530", - 1680.85, - 1684, - 1680.85, - 1684, - 1038 - ], - [ - "2017-12-18T09:53:00+0530", - 1682.5, - 1682.5, - 1681.3, - 1682.4, - 126 - ], - [ - "2017-12-18T09:54:00+0530", - 1682.4, - 1683.9, - 1682.4, - 1683.5, - 582 - ], - [ - "2017-12-18T09:55:00+0530", - 1683.5, - 1684.5, - 1683.1, - 1684.5, - 1360 - ], - [ - "2017-12-18T09:56:00+0530", - 1684.5, - 1684.5, - 1684, - 1684.3, - 733 - ], - [ - "2017-12-18T09:57:00+0530", - 1684.3, - 1686, - 1684.05, - 1686, - 1603 - ], - [ - "2017-12-18T09:58:00+0530", - 1686, - 1686, - 1685, - 1686, - 695 - ], - [ - "2017-12-18T09:59:00+0530", - 1686, - 1688, - 1686, - 1686.9, - 993 - ], - [ - "2017-12-18T10:00:00+0530", - 1686, - 1687, - 1684, - 1684.5, - 612 - ], - [ - "2017-12-18T10:01:00+0530", - 1684.5, - 1687, - 1684.2, - 1686.65, - 973 - ], - [ - "2017-12-18T10:02:00+0530", - 1686.65, - 1686.85, - 1685.3, - 1685.3, - 72 - ], - [ - "2017-12-18T10:03:00+0530", - 1685.3, - 1688, - 1684, - 1687.25, - 1088 - ], - [ - "2017-12-18T10:04:00+0530", - 1687.25, - 1687.65, - 1685.2, - 1687, - 306 - ], - [ - "2017-12-18T10:05:00+0530", - 1687, - 1688.7, - 1687, - 1688.5, - 421 - ], - [ - "2017-12-18T10:06:00+0530", - 1688, - 1692.9, - 1687.65, - 1692.05, - 2482 - ], - [ - "2017-12-18T10:07:00+0530", - 1692.05, - 1697.1, - 1692, - 1697.1, - 2956 - ], - [ - "2017-12-18T10:08:00+0530", - 1697.1, - 1697.25, - 1695.05, - 1696.15, - 1136 - ], - [ - "2017-12-18T10:09:00+0530", - 1696.15, - 1697, - 1695, - 1695.95, - 875 - ], - [ - "2017-12-18T10:10:00+0530", - 1695.95, - 1696, - 1695.1, - 1695.25, - 825 - ], - [ - "2017-12-18T10:11:00+0530", - 1695.25, - 1695.65, - 1694.3, - 1694.6, - 679 - ], - [ - "2017-12-18T10:12:00+0530", - 1695.4, - 1695.4, - 1693.1, - 1694.05, - 337 - ], - [ - "2017-12-18T10:13:00+0530", - 1694.05, - 1695, - 1694.05, - 1694.2, - 528 - ], - [ - "2017-12-18T10:14:00+0530", - 1694.2, - 1694.2, - 1687.4, - 1687.4, - 1054 - ], - [ - "2017-12-18T10:15:00+0530", - 1685.75, - 1691.45, - 1685.75, - 1688.65, - 898 - ], - [ - "2017-12-18T10:16:00+0530", - 1688.65, - 1693, - 1688.65, - 1693, - 686 - ], - [ - "2017-12-18T10:17:00+0530", - 1693, - 1693, - 1691, - 1691, - 499 - ], - [ - "2017-12-18T10:18:00+0530", - 1691, - 1692.5, - 1691, - 1692.5, - 483 - ], - [ - "2017-12-18T10:19:00+0530", - 1692.5, - 1692.6, - 1691.3, - 1692.45, - 557 - ], - [ - "2017-12-18T10:20:00+0530", - 1692.45, - 1692.45, - 1691.25, - 1692, - 218 - ], - [ - "2017-12-18T10:21:00+0530", - 1692, - 1692, - 1688, - 1691.9, - 510 - ], - [ - "2017-12-18T10:22:00+0530", - 1691.9, - 1691.9, - 1689.95, - 1690, - 155 - ], - [ - "2017-12-18T10:23:00+0530", - 1690, - 1690, - 1687.25, - 1688.9, - 422 - ], - [ - "2017-12-18T10:24:00+0530", - 1688.9, - 1689.1, - 1688, - 1688.85, - 263 - ], - [ - "2017-12-18T10:25:00+0530", - 1688.85, - 1689.95, - 1688.15, - 1688.15, - 404 - ], - [ - "2017-12-18T10:26:00+0530", - 1688.15, - 1690, - 1688, - 1688.1, - 642 - ], - [ - "2017-12-18T10:27:00+0530", - 1688.1, - 1689.4, - 1688.1, - 1689, - 167 - ], - [ - "2017-12-18T10:28:00+0530", - 1689, - 1690.7, - 1688.1, - 1688.8, - 642 - ], - [ - "2017-12-18T10:29:00+0530", - 1688.8, - 1690.55, - 1687.25, - 1689, - 339 - ], - [ - "2017-12-18T10:30:00+0530", - 1689, - 1690, - 1689, - 1689.75, - 166 - ], - [ - "2017-12-18T10:31:00+0530", - 1690, - 1692, - 1688.9, - 1688.9, - 1952 - ], - [ - "2017-12-18T10:32:00+0530", - 1688.9, - 1690, - 1688.75, - 1689, - 124 - ], - [ - "2017-12-18T10:33:00+0530", - 1689, - 1689.45, - 1688.4, - 1688.4, - 69 - ], - [ - "2017-12-18T10:34:00+0530", - 1688.4, - 1689, - 1688.35, - 1689, - 192 - ], - [ - "2017-12-18T10:35:00+0530", - 1689, - 1689, - 1687.6, - 1688.55, - 353 - ], - [ - "2017-12-18T10:36:00+0530", - 1688.55, - 1688.55, - 1687, - 1687, - 146 - ], - [ - "2017-12-18T10:37:00+0530", - 1687, - 1688.25, - 1687, - 1687, - 75 - ], - [ - "2017-12-18T10:38:00+0530", - 1687, - 1687.8, - 1687, - 1687.2, - 46 - ], - [ - "2017-12-18T10:39:00+0530", - 1687.2, - 1687.2, - 1683.35, - 1684.05, - 3164 - ], - [ - "2017-12-18T10:40:00+0530", - 1684.05, - 1684.7, - 1683, - 1684.7, - 330 - ], - [ - "2017-12-18T10:41:00+0530", - 1684.7, - 1685, - 1683.6, - 1684.8, - 400 - ], - [ - "2017-12-18T10:42:00+0530", - 1684.8, - 1685, - 1684.7, - 1685, - 237 - ], - [ - "2017-12-18T10:43:00+0530", - 1685, - 1685, - 1684.2, - 1684.2, - 1351 - ], - [ - "2017-12-18T10:44:00+0530", - 1684.2, - 1684.9, - 1684, - 1684.9, - 603 - ], - [ - "2017-12-18T10:45:00+0530", - 1684.9, - 1684.9, - 1684, - 1684.5, - 329 - ], - [ - "2017-12-18T10:46:00+0530", - 1684.5, - 1685.75, - 1684.5, - 1685.65, - 411 - ], - [ - "2017-12-18T10:47:00+0530", - 1685.65, - 1687.6, - 1685.65, - 1687.5, - 763 - ], - [ - "2017-12-18T10:48:00+0530", - 1687.5, - 1690, - 1687.5, - 1690, - 411 - ], - [ - "2017-12-18T10:49:00+0530", - 1690, - 1690, - 1689, - 1689, - 125 - ], - [ - "2017-12-18T10:50:00+0530", - 1689, - 1690, - 1689, - 1690, - 159 - ], - [ - "2017-12-18T10:51:00+0530", - 1690, - 1690.2, - 1690, - 1690.2, - 360 - ], - [ - "2017-12-18T10:52:00+0530", - 1690.2, - 1691, - 1690.2, - 1691, - 286 - ], - [ - "2017-12-18T10:53:00+0530", - 1691, - 1691, - 1690.3, - 1690.7, - 58 - ], - [ - "2017-12-18T10:54:00+0530", - 1690.7, - 1693.1, - 1690.7, - 1693.1, - 846 - ], - [ - "2017-12-18T10:55:00+0530", - 1693.1, - 1693.5, - 1691, - 1692.5, - 796 - ], - [ - "2017-12-18T10:56:00+0530", - 1692.5, - 1693, - 1692.4, - 1692.4, - 153 - ], - [ - "2017-12-18T10:57:00+0530", - 1692.4, - 1692.4, - 1690.25, - 1691, - 438 - ], - [ - "2017-12-18T10:58:00+0530", - 1691, - 1691.45, - 1689.6, - 1690.95, - 261 - ], - [ - "2017-12-18T10:59:00+0530", - 1690.95, - 1691, - 1690.95, - 1691, - 280 - ], - [ - "2017-12-18T11:00:00+0530", - 1691, - 1691.35, - 1689.95, - 1689.95, - 120 - ], - [ - "2017-12-18T11:01:00+0530", - 1689.95, - 1691, - 1689.95, - 1690, - 183 - ], - [ - "2017-12-18T11:02:00+0530", - 1690, - 1691.5, - 1690, - 1691.5, - 106 - ], - [ - "2017-12-18T11:03:00+0530", - 1691.5, - 1692.25, - 1691.4, - 1692.25, - 307 - ], - [ - "2017-12-18T11:04:00+0530", - 1692.25, - 1692.4, - 1692, - 1692.3, - 159 - ], - [ - "2017-12-18T11:05:00+0530", - 1692.3, - 1693, - 1692.1, - 1693, - 515 - ], - [ - "2017-12-18T11:06:00+0530", - 1693.3, - 1694.05, - 1693.05, - 1693.05, - 648 - ], - [ - "2017-12-18T11:07:00+0530", - 1693.05, - 1694.15, - 1693, - 1693.95, - 190 - ], - [ - "2017-12-18T11:08:00+0530", - 1693.95, - 1693.95, - 1692, - 1692, - 525 - ], - [ - "2017-12-18T11:09:00+0530", - 1692, - 1693.3, - 1691.4, - 1693.25, - 646 - ], - [ - "2017-12-18T11:10:00+0530", - 1693.25, - 1693.3, - 1692, - 1692.75, - 103 - ], - [ - "2017-12-18T11:11:00+0530", - 1692.75, - 1692.85, - 1691.4, - 1692.85, - 263 - ], - [ - "2017-12-18T11:12:00+0530", - 1692.85, - 1692.85, - 1691.4, - 1691.4, - 74 - ], - [ - "2017-12-18T11:13:00+0530", - 1691.4, - 1692.5, - 1691.4, - 1692.5, - 344 - ], - [ - "2017-12-18T11:14:00+0530", - 1692.1, - 1692.1, - 1690.1, - 1690.1, - 523 - ], - [ - "2017-12-18T11:15:00+0530", - 1690, - 1691.4, - 1689.95, - 1691.4, - 130 - ], - [ - "2017-12-18T11:16:00+0530", - 1691.4, - 1691.4, - 1690.5, - 1691, - 319 - ], - [ - "2017-12-18T11:17:00+0530", - 1691, - 1691, - 1690.45, - 1690.45, - 207 - ], - [ - "2017-12-18T11:18:00+0530", - 1690.45, - 1690.45, - 1688, - 1688, - 675 - ], - [ - "2017-12-18T11:19:00+0530", - 1688, - 1688, - 1686, - 1686.8, - 412 - ], - [ - "2017-12-18T11:20:00+0530", - 1686.8, - 1686.8, - 1686, - 1686, - 134 - ], - [ - "2017-12-18T11:21:00+0530", - 1686, - 1688.75, - 1686, - 1688.75, - 282 - ], - [ - "2017-12-18T11:22:00+0530", - 1688.75, - 1689.5, - 1686.4, - 1687.35, - 513 - ], - [ - "2017-12-18T11:23:00+0530", - 1687.35, - 1689.4, - 1687.35, - 1689.4, - 63 - ], - [ - "2017-12-18T11:24:00+0530", - 1689.4, - 1689.4, - 1688.9, - 1688.9, - 126 - ], - [ - "2017-12-18T11:25:00+0530", - 1688.9, - 1691, - 1688.9, - 1690, - 325 - ], - [ - "2017-12-18T11:26:00+0530", - 1690, - 1690.8, - 1689.85, - 1690.8, - 86 - ], - [ - "2017-12-18T11:27:00+0530", - 1690.8, - 1690.8, - 1690.5, - 1690.5, - 556 - ], - [ - "2017-12-18T11:28:00+0530", - 1690.5, - 1690.8, - 1690.45, - 1690.8, - 155 - ], - [ - "2017-12-18T11:29:00+0530", - 1691.9, - 1691.9, - 1690.65, - 1691, - 331 - ], - [ - "2017-12-18T11:30:00+0530", - 1691, - 1692, - 1691, - 1691.6, - 990 - ], - [ - "2017-12-18T11:31:00+0530", - 1691.6, - 1694.7, - 1691.6, - 1692, - 4488 - ], - [ - "2017-12-18T11:32:00+0530", - 1692, - 1693.95, - 1692, - 1692, - 12833 - ], - [ - "2017-12-18T11:33:00+0530", - 1692, - 1694, - 1692, - 1693.95, - 1146 - ], - [ - "2017-12-18T11:34:00+0530", - 1694, - 1694.75, - 1693.95, - 1694, - 642 - ], - [ - "2017-12-18T11:35:00+0530", - 1694, - 1694, - 1693.9, - 1693.9, - 285 - ], - [ - "2017-12-18T11:36:00+0530", - 1693.9, - 1693.9, - 1693.15, - 1693.15, - 105 - ], - [ - "2017-12-18T11:37:00+0530", - 1693.15, - 1694.5, - 1692.35, - 1694.5, - 160 - ], - [ - "2017-12-18T11:38:00+0530", - 1694.5, - 1694.8, - 1694.15, - 1694.8, - 924 - ], - [ - "2017-12-18T11:39:00+0530", - 1694.8, - 1694.8, - 1694, - 1694.8, - 215 - ], - [ - "2017-12-18T11:40:00+0530", - 1693.65, - 1695, - 1693.65, - 1693.8, - 517 - ], - [ - "2017-12-18T11:41:00+0530", - 1693.8, - 1693.9, - 1693.8, - 1693.9, - 10 - ], - [ - "2017-12-18T11:42:00+0530", - 1693.9, - 1694.6, - 1693.8, - 1694.45, - 128 - ], - [ - "2017-12-18T11:43:00+0530", - 1694.45, - 1694.6, - 1693.4, - 1693.4, - 61 - ], - [ - "2017-12-18T11:44:00+0530", - 1693.4, - 1693.95, - 1693.4, - 1693.95, - 112 - ], - [ - "2017-12-18T11:45:00+0530", - 1693.95, - 1693.95, - 1692, - 1693.95, - 506 - ], - [ - "2017-12-18T11:46:00+0530", - 1693.95, - 1694, - 1693.7, - 1693.8, - 22 - ], - [ - "2017-12-18T11:47:00+0530", - 1693.8, - 1693.8, - 1692.3, - 1693.7, - 142 - ], - [ - "2017-12-18T11:48:00+0530", - 1693.7, - 1693.7, - 1692.45, - 1692.45, - 3 - ], - [ - "2017-12-18T11:49:00+0530", - 1692, - 1692.45, - 1692, - 1692.45, - 291 - ], - [ - "2017-12-18T11:50:00+0530", - 1692.45, - 1693, - 1692.45, - 1693, - 115 - ], - [ - "2017-12-18T11:51:00+0530", - 1693, - 1693.2, - 1692.55, - 1693.2, - 24 - ], - [ - "2017-12-18T11:52:00+0530", - 1693.2, - 1693.2, - 1689, - 1689, - 486 - ], - [ - "2017-12-18T11:53:00+0530", - 1689, - 1691, - 1689, - 1691, - 1205 - ], - [ - "2017-12-18T11:54:00+0530", - 1691.1, - 1691.1, - 1689.6, - 1690, - 2607 - ], - [ - "2017-12-18T11:55:00+0530", - 1690, - 1691.6, - 1690, - 1691.1, - 1957 - ], - [ - "2017-12-18T11:56:00+0530", - 1691.1, - 1693, - 1691, - 1693, - 96 - ], - [ - "2017-12-18T11:57:00+0530", - 1693, - 1693, - 1692, - 1692, - 100 - ], - [ - "2017-12-18T11:58:00+0530", - 1692, - 1693, - 1691.95, - 1691.95, - 122 - ], - [ - "2017-12-18T11:59:00+0530", - 1692.85, - 1693, - 1691.9, - 1691.9, - 114 - ], - [ - "2017-12-18T12:00:00+0530", - 1691.9, - 1692.65, - 1691.05, - 1692.65, - 68 - ], - [ - "2017-12-18T12:01:00+0530", - 1692.65, - 1693, - 1692.65, - 1692.65, - 197 - ], - [ - "2017-12-18T12:02:00+0530", - 1692.65, - 1693, - 1692.65, - 1693, - 168 - ], - [ - "2017-12-18T12:03:00+0530", - 1693, - 1693.25, - 1692.65, - 1693.25, - 1468 - ], - [ - "2017-12-18T12:04:00+0530", - 1693, - 1693.8, - 1692.9, - 1692.9, - 4041 - ], - [ - "2017-12-18T12:05:00+0530", - 1692.9, - 1694.05, - 1692.9, - 1694.05, - 352 - ], - [ - "2017-12-18T12:06:00+0530", - 1694.05, - 1694.65, - 1694.05, - 1694.65, - 28 - ], - [ - "2017-12-18T12:07:00+0530", - 1694.65, - 1694.65, - 1693, - 1693, - 200284 - ], - [ - "2017-12-18T12:08:00+0530", - 1693, - 1693.65, - 1693, - 1693.65, - 69 - ], - [ - "2017-12-18T12:09:00+0530", - 1693.65, - 1694.3, - 1693.6, - 1694.3, - 263 - ], - [ - "2017-12-18T12:10:00+0530", - 1694.3, - 1695, - 1694.3, - 1695, - 769 - ], - [ - "2017-12-18T12:11:00+0530", - 1695, - 1695, - 1691.85, - 1692.8, - 5883 - ], - [ - "2017-12-18T12:12:00+0530", - 1692.8, - 1700.45, - 1692.8, - 1700, - 7803 - ], - [ - "2017-12-18T12:13:00+0530", - 1700, - 1701, - 1697.5, - 1700.85, - 2916 - ], - [ - "2017-12-18T12:14:00+0530", - 1700.85, - 1703, - 1700.8, - 1702.8, - 2738 - ], - [ - "2017-12-18T12:15:00+0530", - 1702.85, - 1705, - 1702.85, - 1704.4, - 4764 - ], - [ - "2017-12-18T12:16:00+0530", - 1704.4, - 1704.9, - 1702.7, - 1702.9, - 1318 - ], - [ - "2017-12-18T12:17:00+0530", - 1702.9, - 1704, - 1702, - 1702.7, - 492 - ], - [ - "2017-12-18T12:18:00+0530", - 1702.7, - 1702.7, - 1701.45, - 1702.6, - 297 - ], - [ - "2017-12-18T12:19:00+0530", - 1702.6, - 1702.6, - 1702, - 1702, - 231 - ], - [ - "2017-12-18T12:20:00+0530", - 1702, - 1702.5, - 1701.25, - 1702.5, - 177 - ], - [ - "2017-12-18T12:21:00+0530", - 1702.5, - 1703, - 1702.05, - 1702.5, - 542 - ], - [ - "2017-12-18T12:22:00+0530", - 1702.5, - 1702.85, - 1702.45, - 1702.45, - 140 - ], - [ - "2017-12-18T12:23:00+0530", - 1702.45, - 1704, - 1702.45, - 1702.6, - 308 - ], - [ - "2017-12-18T12:24:00+0530", - 1702.6, - 1702.95, - 1700.7, - 1701.1, - 675 - ], - [ - "2017-12-18T12:25:00+0530", - 1701, - 1701.05, - 1700.6, - 1701, - 424 - ], - [ - "2017-12-18T12:26:00+0530", - 1701, - 1701, - 1700.25, - 1700.25, - 348 - ], - [ - "2017-12-18T12:27:00+0530", - 1700.3, - 1700.95, - 1700.3, - 1700.3, - 233 - ], - [ - "2017-12-18T12:28:00+0530", - 1700.3, - 1700.3, - 1696.5, - 1696.5, - 2274 - ], - [ - "2017-12-18T12:29:00+0530", - 1696.5, - 1699.95, - 1696.5, - 1699, - 667 - ], - [ - "2017-12-18T12:30:00+0530", - 1699, - 1699.95, - 1699, - 1699, - 571 - ], - [ - "2017-12-18T12:31:00+0530", - 1699, - 1702, - 1699, - 1699.95, - 655 - ], - [ - "2017-12-18T12:32:00+0530", - 1699.95, - 1700, - 1699.95, - 1700, - 57 - ], - [ - "2017-12-18T12:33:00+0530", - 1700, - 1700.7, - 1700, - 1700.7, - 97 - ], - [ - "2017-12-18T12:34:00+0530", - 1700.7, - 1701.4, - 1700.05, - 1700.05, - 127 - ], - [ - "2017-12-18T12:35:00+0530", - 1700.05, - 1701, - 1700.05, - 1701, - 462 - ], - [ - "2017-12-18T12:36:00+0530", - 1701, - 1704, - 1701, - 1703.95, - 1953 - ], - [ - "2017-12-18T12:37:00+0530", - 1704.7, - 1708.55, - 1704.7, - 1708.15, - 9521 - ], - [ - "2017-12-18T12:38:00+0530", - 1708.15, - 1708.15, - 1703, - 1703, - 4984 - ], - [ - "2017-12-18T12:39:00+0530", - 1703, - 1703, - 1702.2, - 1702.2, - 80 - ], - [ - "2017-12-18T12:40:00+0530", - 1702.2, - 1703, - 1702, - 1702, - 273 - ], - [ - "2017-12-18T12:41:00+0530", - 1702, - 1702.9, - 1701.7, - 1702.05, - 2572 - ], - [ - "2017-12-18T12:42:00+0530", - 1702.9, - 1703, - 1702.25, - 1703, - 524 - ], - [ - "2017-12-18T12:43:00+0530", - 1703, - 1703.95, - 1703, - 1703.95, - 438 - ], - [ - "2017-12-18T12:44:00+0530", - 1703.95, - 1703.95, - 1702.6, - 1702.6, - 122 - ], - [ - "2017-12-18T12:45:00+0530", - 1702.6, - 1703.7, - 1702.6, - 1703.7, - 257 - ], - [ - "2017-12-18T12:46:00+0530", - 1703.7, - 1703.7, - 1702.55, - 1702.95, - 115 - ], - [ - "2017-12-18T12:47:00+0530", - 1702.95, - 1702.95, - 1702, - 1702.05, - 113 - ], - [ - "2017-12-18T12:48:00+0530", - 1702.05, - 1702.85, - 1702.05, - 1702.8, - 143 - ], - [ - "2017-12-18T12:49:00+0530", - 1702.8, - 1703.5, - 1702.25, - 1702.25, - 320 - ], - [ - "2017-12-18T12:50:00+0530", - 1702.25, - 1703, - 1701, - 1701.85, - 1362 - ], - [ - "2017-12-18T12:51:00+0530", - 1701.85, - 1702, - 1701, - 1701, - 357 - ], - [ - "2017-12-18T12:52:00+0530", - 1702, - 1702, - 1701, - 1701, - 361 - ], - [ - "2017-12-18T12:53:00+0530", - 1701, - 1701.95, - 1700.9, - 1701, - 377 - ], - [ - "2017-12-18T12:54:00+0530", - 1701, - 1702.55, - 1701, - 1701.5, - 222 - ], - [ - "2017-12-18T12:55:00+0530", - 1701, - 1701.5, - 1701, - 1701.5, - 179 - ], - [ - "2017-12-18T12:56:00+0530", - 1701.5, - 1701.55, - 1700.75, - 1700.75, - 88 - ], - [ - "2017-12-18T12:57:00+0530", - 1700.75, - 1700.75, - 1700.3, - 1700.45, - 16 - ], - [ - "2017-12-18T12:58:00+0530", - 1701.6, - 1701.6, - 1700.25, - 1700.25, - 199 - ], - [ - "2017-12-18T12:59:00+0530", - 1700.25, - 1701.05, - 1700.25, - 1701.05, - 303 - ], - [ - "2017-12-18T13:00:00+0530", - 1701.05, - 1701.05, - 1699.75, - 1699.8, - 490 - ], - [ - "2017-12-18T13:01:00+0530", - 1698, - 1699.15, - 1697.3, - 1699.15, - 300 - ], - [ - "2017-12-18T13:02:00+0530", - 1699.15, - 1699.15, - 1695.1, - 1696, - 1529 - ], - [ - "2017-12-18T13:03:00+0530", - 1696, - 1696.1, - 1695.1, - 1695.1, - 221 - ], - [ - "2017-12-18T13:04:00+0530", - 1695.1, - 1696.4, - 1694.95, - 1695.15, - 1099 - ], - [ - "2017-12-18T13:05:00+0530", - 1695.35, - 1696.35, - 1695.2, - 1695.2, - 689 - ], - [ - "2017-12-18T13:06:00+0530", - 1695.2, - 1695.2, - 1693, - 1693, - 461 - ], - [ - "2017-12-18T13:07:00+0530", - 1693, - 1695.8, - 1693, - 1695.8, - 315 - ], - [ - "2017-12-18T13:08:00+0530", - 1695.8, - 1695.8, - 1694.55, - 1694.55, - 275 - ], - [ - "2017-12-18T13:09:00+0530", - 1694.55, - 1696.55, - 1694, - 1696.55, - 110 - ], - [ - "2017-12-18T13:10:00+0530", - 1696.55, - 1696.55, - 1692, - 1692.45, - 858 - ], - [ - "2017-12-18T13:11:00+0530", - 1692.45, - 1694, - 1692.45, - 1693.55, - 344 - ], - [ - "2017-12-18T13:12:00+0530", - 1695.25, - 1695.6, - 1694.25, - 1694.25, - 356 - ], - [ - "2017-12-18T13:13:00+0530", - 1694.25, - 1695, - 1694.25, - 1695, - 130 - ], - [ - "2017-12-18T13:14:00+0530", - 1695, - 1695.6, - 1694.7, - 1695.6, - 600 - ], - [ - "2017-12-18T13:15:00+0530", - 1695.6, - 1696.5, - 1695.6, - 1696, - 518 - ], - [ - "2017-12-18T13:16:00+0530", - 1696, - 1696, - 1695.2, - 1696, - 223 - ], - [ - "2017-12-18T13:17:00+0530", - 1696, - 1696, - 1695.2, - 1696, - 113 - ], - [ - "2017-12-18T13:18:00+0530", - 1696, - 1696, - 1695, - 1695.05, - 334 - ], - [ - "2017-12-18T13:19:00+0530", - 1695.05, - 1696.3, - 1694.05, - 1694.15, - 314 - ], - [ - "2017-12-18T13:20:00+0530", - 1694.15, - 1694.15, - 1692, - 1692, - 1505 - ], - [ - "2017-12-18T13:21:00+0530", - 1692, - 1693.4, - 1691.65, - 1692.9, - 404 - ], - [ - "2017-12-18T13:22:00+0530", - 1692.9, - 1695.9, - 1692.9, - 1695.85, - 481 - ], - [ - "2017-12-18T13:23:00+0530", - 1695.85, - 1697.25, - 1695.85, - 1696, - 576 - ], - [ - "2017-12-18T13:24:00+0530", - 1696, - 1697.2, - 1695.9, - 1695.9, - 196 - ], - [ - "2017-12-18T13:25:00+0530", - 1695.9, - 1696.4, - 1695.9, - 1695.9, - 30 - ], - [ - "2017-12-18T13:26:00+0530", - 1695.9, - 1695.9, - 1695, - 1695, - 100 - ], - [ - "2017-12-18T13:27:00+0530", - 1695, - 1695, - 1693.9, - 1694.3, - 465 - ], - [ - "2017-12-18T13:28:00+0530", - 1694.3, - 1694.35, - 1693.4, - 1693.5, - 454 - ], - [ - "2017-12-18T13:29:00+0530", - 1693.5, - 1693.5, - 1693.3, - 1693.3, - 90 - ], - [ - "2017-12-18T13:30:00+0530", - 1693.3, - 1694.2, - 1693.3, - 1694.2, - 49 - ], - [ - "2017-12-18T13:31:00+0530", - 1694.2, - 1696.6, - 1694.2, - 1696.6, - 915 - ], - [ - "2017-12-18T13:32:00+0530", - 1696.6, - 1696.8, - 1695.25, - 1695.25, - 377 - ], - [ - "2017-12-18T13:33:00+0530", - 1695.25, - 1696.95, - 1695.25, - 1696.95, - 7 - ], - [ - "2017-12-18T13:34:00+0530", - 1696.95, - 1698, - 1695.15, - 1698, - 362 - ], - [ - "2017-12-18T13:35:00+0530", - 1698, - 1699, - 1696.75, - 1697.95, - 326 - ], - [ - "2017-12-18T13:36:00+0530", - 1697.95, - 1697.95, - 1695.15, - 1696.05, - 553 - ], - [ - "2017-12-18T13:37:00+0530", - 1696.05, - 1697.95, - 1695.9, - 1696.35, - 159 - ], - [ - "2017-12-18T13:38:00+0530", - 1696.35, - 1697.35, - 1696.05, - 1697.35, - 101 - ], - [ - "2017-12-18T13:39:00+0530", - 1697.35, - 1697.35, - 1697.05, - 1697.35, - 89 - ], - [ - "2017-12-18T13:40:00+0530", - 1697.05, - 1697.05, - 1697.05, - 1697.05, - 50 - ], - [ - "2017-12-18T13:41:00+0530", - 1697.05, - 1697.35, - 1697.05, - 1697.35, - 27 - ], - [ - "2017-12-18T13:42:00+0530", - 1697.4, - 1697.4, - 1697.05, - 1697.4, - 30 - ], - [ - "2017-12-18T13:43:00+0530", - 1697.75, - 1697.75, - 1697.05, - 1697.15, - 265 - ], - [ - "2017-12-18T13:44:00+0530", - 1697.15, - 1697.95, - 1697.15, - 1697.2, - 20 - ], - [ - "2017-12-18T13:45:00+0530", - 1697.2, - 1699.6, - 1697.2, - 1698.85, - 680 - ], - [ - "2017-12-18T13:46:00+0530", - 1698.85, - 1698.85, - 1698.8, - 1698.8, - 48 - ], - [ - "2017-12-18T13:47:00+0530", - 1698.8, - 1698.8, - 1698.7, - 1698.7, - 42 - ], - [ - "2017-12-18T13:48:00+0530", - 1698.65, - 1698.75, - 1698, - 1698, - 259 - ], - [ - "2017-12-18T13:49:00+0530", - 1698, - 1698.75, - 1698, - 1698.45, - 12 - ], - [ - "2017-12-18T13:50:00+0530", - 1698.45, - 1698.75, - 1697.9, - 1697.9, - 8 - ], - [ - "2017-12-18T13:51:00+0530", - 1697.9, - 1698.6, - 1697.9, - 1698.6, - 6 - ], - [ - "2017-12-18T13:52:00+0530", - 1699, - 1699, - 1698.1, - 1698.1, - 76 - ], - [ - "2017-12-18T13:53:00+0530", - 1698.1, - 1698.3, - 1698.05, - 1698.3, - 224 - ], - [ - "2017-12-18T13:54:00+0530", - 1698.3, - 1698.95, - 1698.3, - 1698.4, - 39 - ], - [ - "2017-12-18T13:55:00+0530", - 1698.4, - 1698.6, - 1698.4, - 1698.6, - 96 - ], - [ - "2017-12-18T13:56:00+0530", - 1698.6, - 1698.9, - 1698.05, - 1698.05, - 1014 - ], - [ - "2017-12-18T13:57:00+0530", - 1698.05, - 1698.05, - 1697.75, - 1697.75, - 22 - ], - [ - "2017-12-18T13:58:00+0530", - 1697.75, - 1697.75, - 1697.4, - 1697.4, - 20 - ], - [ - "2017-12-18T13:59:00+0530", - 1697.4, - 1698.3, - 1697.4, - 1698.3, - 576 - ], - [ - "2017-12-18T14:00:00+0530", - 1698.9, - 1699, - 1698.25, - 1698.25, - 171 - ], - [ - "2017-12-18T14:01:00+0530", - 1698.25, - 1698.95, - 1698.25, - 1698.95, - 10 - ], - [ - "2017-12-18T14:02:00+0530", - 1698.3, - 1698.95, - 1698.3, - 1698.95, - 15 - ], - [ - "2017-12-18T14:03:00+0530", - 1698.95, - 1698.95, - 1698.25, - 1698.25, - 55 - ], - [ - "2017-12-18T14:04:00+0530", - 1698.25, - 1698.85, - 1698.25, - 1698.6, - 111 - ], - [ - "2017-12-18T14:05:00+0530", - 1698.6, - 1698.6, - 1698, - 1698.55, - 522 - ], - [ - "2017-12-18T14:06:00+0530", - 1698.55, - 1699, - 1698.55, - 1698.9, - 153 - ], - [ - "2017-12-18T14:07:00+0530", - 1698.9, - 1699.9, - 1698.4, - 1698.4, - 453 - ], - [ - "2017-12-18T14:08:00+0530", - 1698.4, - 1699.95, - 1698.4, - 1698.9, - 59 - ], - [ - "2017-12-18T14:09:00+0530", - 1698.05, - 1698.9, - 1697.95, - 1698.9, - 105 - ], - [ - "2017-12-18T14:10:00+0530", - 1698.9, - 1699.8, - 1698.9, - 1699.8, - 10 - ], - [ - "2017-12-18T14:11:00+0530", - 1699.8, - 1699.8, - 1697.95, - 1697.95, - 259 - ], - [ - "2017-12-18T14:12:00+0530", - 1697.95, - 1697.95, - 1697.95, - 1697.95, - 0 - ], - [ - "2017-12-18T14:13:00+0530", - 1697.95, - 1697.95, - 1697.95, - 1697.95, - 0 - ], - [ - "2017-12-18T14:14:00+0530", - 1697.95, - 1697.95, - 1697, - 1697, - 170 - ], - [ - "2017-12-18T14:15:00+0530", - 1697, - 1697, - 1696.5, - 1696.5, - 93 - ], - [ - "2017-12-18T14:16:00+0530", - 1696.5, - 1696.5, - 1693.05, - 1695.25, - 1072 - ], - [ - "2017-12-18T14:17:00+0530", - 1695.25, - 1695.5, - 1694, - 1694, - 121 - ], - [ - "2017-12-18T14:18:00+0530", - 1694, - 1694, - 1693, - 1693.15, - 111 - ], - [ - "2017-12-18T14:19:00+0530", - 1693.15, - 1694, - 1693.15, - 1694, - 30 - ], - [ - "2017-12-18T14:20:00+0530", - 1694, - 1694, - 1694, - 1694, - 194 - ], - [ - "2017-12-18T14:21:00+0530", - 1694.1, - 1696.4, - 1694.1, - 1696.4, - 126 - ], - [ - "2017-12-18T14:22:00+0530", - 1696.4, - 1696.4, - 1695.25, - 1695.25, - 22 - ], - [ - "2017-12-18T14:23:00+0530", - 1695.25, - 1695.4, - 1695.25, - 1695.4, - 11 - ], - [ - "2017-12-18T14:24:00+0530", - 1695.4, - 1695.6, - 1695.25, - 1695.25, - 139 - ], - [ - "2017-12-18T14:25:00+0530", - 1695.25, - 1695.25, - 1693.55, - 1693.65, - 220 - ], - [ - "2017-12-18T14:26:00+0530", - 1693.65, - 1694.75, - 1693.3, - 1693.3, - 488 - ], - [ - "2017-12-18T14:27:00+0530", - 1693.3, - 1696.95, - 1693.3, - 1695.05, - 243 - ], - [ - "2017-12-18T14:28:00+0530", - 1695.05, - 1696.95, - 1695.05, - 1696.9, - 178 - ], - [ - "2017-12-18T14:29:00+0530", - 1696.9, - 1697.6, - 1696.55, - 1696.55, - 736 - ], - [ - "2017-12-18T14:30:00+0530", - 1696.55, - 1699.35, - 1696, - 1699, - 1870 - ], - [ - "2017-12-18T14:31:00+0530", - 1699, - 1699, - 1698.2, - 1698.2, - 46 - ], - [ - "2017-12-18T14:32:00+0530", - 1698.2, - 1698.2, - 1697.7, - 1698.15, - 128 - ], - [ - "2017-12-18T14:33:00+0530", - 1698.15, - 1698.5, - 1696.75, - 1698.5, - 499 - ], - [ - "2017-12-18T14:34:00+0530", - 1698.5, - 1698.5, - 1697.65, - 1697.65, - 64 - ], - [ - "2017-12-18T14:35:00+0530", - 1697.65, - 1698.95, - 1697.65, - 1698.5, - 415 - ], - [ - "2017-12-18T14:36:00+0530", - 1698.5, - 1698.5, - 1698.5, - 1698.5, - 0 - ], - [ - "2017-12-18T14:37:00+0530", - 1698.5, - 1698.5, - 1696.1, - 1696.1, - 70 - ], - [ - "2017-12-18T14:38:00+0530", - 1696.1, - 1698, - 1696.1, - 1698, - 190 - ], - [ - "2017-12-18T14:39:00+0530", - 1697.05, - 1697.8, - 1696.2, - 1697.45, - 142 - ], - [ - "2017-12-18T14:40:00+0530", - 1697.45, - 1697.45, - 1696.4, - 1696.55, - 145 - ], - [ - "2017-12-18T14:41:00+0530", - 1696.55, - 1697.25, - 1696.55, - 1697.1, - 16 - ], - [ - "2017-12-18T14:42:00+0530", - 1697.1, - 1697.1, - 1696.4, - 1696.4, - 132 - ], - [ - "2017-12-18T14:43:00+0530", - 1696.4, - 1698.75, - 1696.4, - 1698.75, - 506 - ], - [ - "2017-12-18T14:44:00+0530", - 1698.75, - 1698.75, - 1697, - 1697.1, - 97 - ], - [ - "2017-12-18T14:45:00+0530", - 1697.1, - 1699, - 1697.1, - 1699, - 777 - ], - [ - "2017-12-18T14:46:00+0530", - 1699, - 1699.45, - 1698.75, - 1699, - 102 - ], - [ - "2017-12-18T14:47:00+0530", - 1699, - 1700, - 1699, - 1699.2, - 1027 - ], - [ - "2017-12-18T14:48:00+0530", - 1699.2, - 1699.2, - 1698.45, - 1699, - 1070 - ], - [ - "2017-12-18T14:49:00+0530", - 1699, - 1699, - 1698.35, - 1699, - 1008 - ], - [ - "2017-12-18T14:50:00+0530", - 1699, - 1699.1, - 1698.6, - 1699.1, - 69 - ], - [ - "2017-12-18T14:51:00+0530", - 1699.1, - 1699.1, - 1697.7, - 1698, - 401 - ], - [ - "2017-12-18T14:52:00+0530", - 1698, - 1698, - 1697.7, - 1697.7, - 31 - ], - [ - "2017-12-18T14:53:00+0530", - 1697.7, - 1697.85, - 1697, - 1697, - 67 - ], - [ - "2017-12-18T14:54:00+0530", - 1697, - 1697.15, - 1696.1, - 1697.05, - 445 - ], - [ - "2017-12-18T14:55:00+0530", - 1697.05, - 1697.05, - 1695, - 1695, - 1016 - ], - [ - "2017-12-18T14:56:00+0530", - 1695, - 1696, - 1693.75, - 1696, - 2129 - ], - [ - "2017-12-18T14:57:00+0530", - 1696, - 1696, - 1693, - 1693, - 1385 - ], - [ - "2017-12-18T14:58:00+0530", - 1693, - 1696, - 1692.9, - 1692.9, - 1168 - ], - [ - "2017-12-18T14:59:00+0530", - 1692.9, - 1693.9, - 1692.9, - 1693.25, - 1166 - ], - [ - "2017-12-18T15:00:00+0530", - 1693.25, - 1695.25, - 1693.25, - 1695, - 741 - ], - [ - "2017-12-18T15:01:00+0530", - 1695, - 1697.95, - 1695, - 1697.95, - 1336 - ], - [ - "2017-12-18T15:02:00+0530", - 1696.85, - 1697.9, - 1695, - 1696, - 2391 - ], - [ - "2017-12-18T15:03:00+0530", - 1696, - 1696.7, - 1695, - 1695.3, - 1589 - ], - [ - "2017-12-18T15:04:00+0530", - 1695.3, - 1696.15, - 1693.95, - 1696.15, - 1300 - ], - [ - "2017-12-18T15:05:00+0530", - 1696.15, - 1698, - 1695.3, - 1696.85, - 1075 - ], - [ - "2017-12-18T15:06:00+0530", - 1696.85, - 1697.9, - 1695.7, - 1697.7, - 927 - ], - [ - "2017-12-18T15:07:00+0530", - 1697.7, - 1697.9, - 1697, - 1697.85, - 1409 - ], - [ - "2017-12-18T15:08:00+0530", - 1697.85, - 1697.85, - 1696, - 1696.95, - 1090 - ], - [ - "2017-12-18T15:09:00+0530", - 1696.95, - 1696.95, - 1695.5, - 1695.85, - 1165 - ], - [ - "2017-12-18T15:10:00+0530", - 1695.85, - 1697.95, - 1695.85, - 1697.95, - 1304 - ], - [ - "2017-12-18T15:11:00+0530", - 1697.95, - 1697.95, - 1695.9, - 1697.7, - 1143 - ], - [ - "2017-12-18T15:12:00+0530", - 1697.7, - 1697.9, - 1696.55, - 1697.1, - 1754 - ], - [ - "2017-12-18T15:13:00+0530", - 1697.1, - 1697.7, - 1696.15, - 1696.75, - 1425 - ], - [ - "2017-12-18T15:14:00+0530", - 1696.4, - 1698, - 1696.4, - 1697.8, - 1484 - ], - [ - "2017-12-18T15:15:00+0530", - 1697.8, - 1697.8, - 1695.3, - 1696.9, - 1980 - ], - [ - "2017-12-18T15:16:00+0530", - 1695.65, - 1697.8, - 1695.65, - 1696.55, - 2482 - ], - [ - "2017-12-18T15:17:00+0530", - 1696.55, - 1698, - 1695.35, - 1696.9, - 2034 - ], - [ - "2017-12-18T15:18:00+0530", - 1696.9, - 1696.9, - 1695.3, - 1696, - 1512 - ], - [ - "2017-12-18T15:19:00+0530", - 1696, - 1696.9, - 1694.15, - 1695.35, - 1415 - ], - [ - "2017-12-18T15:20:00+0530", - 1695.35, - 1696.75, - 1695.05, - 1695.2, - 1802 - ], - [ - "2017-12-18T15:21:00+0530", - 1696.6, - 1696.75, - 1693.55, - 1693.55, - 2206 - ], - [ - "2017-12-18T15:22:00+0530", - 1693.5, - 1697.05, - 1693.3, - 1695.15, - 3252 - ], - [ - "2017-12-18T15:23:00+0530", - 1695.15, - 1698.55, - 1695.15, - 1696.05, - 149689 - ], - [ - "2017-12-18T15:24:00+0530", - 1696.05, - 1698.15, - 1696.05, - 1696.5, - 1389 - ], - [ - "2017-12-18T15:25:00+0530", - 1696.5, - 1697.65, - 1695.65, - 1695.65, - 1645 - ], - [ - "2017-12-18T15:26:00+0530", - 1695.65, - 1697.25, - 1695, - 1697, - 2610 - ], - [ - "2017-12-18T15:27:00+0530", - 1696.85, - 1696.85, - 1695, - 1696.45, - 1882 - ], - [ - "2017-12-18T15:28:00+0530", - 1696.45, - 1696.45, - 1695, - 1695, - 2832 - ], - [ - "2017-12-18T15:29:00+0530", - 1696.3, - 1699.3, - 1695.05, - 1699.3, - 1423 - ], - [ - "2017-12-19T09:15:00+0530", - 1704.8, - 1704.8, - 1700.35, - 1704.5, - 689 - ], - [ - "2017-12-19T09:16:00+0530", - 1704.5, - 1705.05, - 1701.05, - 1703.05, - 1641 - ], - [ - "2017-12-19T09:17:00+0530", - 1703.05, - 1703.25, - 1700.05, - 1703.25, - 1173 - ], - [ - "2017-12-19T09:18:00+0530", - 1703.25, - 1703.25, - 1701.85, - 1701.85, - 419 - ], - [ - "2017-12-19T09:19:00+0530", - 1701, - 1702.65, - 1700, - 1701.9, - 571 - ], - [ - "2017-12-19T09:20:00+0530", - 1701.9, - 1703, - 1700, - 1703, - 1091 - ], - [ - "2017-12-19T09:21:00+0530", - 1702.95, - 1703.25, - 1702, - 1702.65, - 493 - ], - [ - "2017-12-19T09:22:00+0530", - 1702.65, - 1703.7, - 1702.65, - 1703.7, - 228 - ], - [ - "2017-12-19T09:23:00+0530", - 1702.45, - 1704, - 1702, - 1702.55, - 352 - ], - [ - "2017-12-19T09:24:00+0530", - 1702.55, - 1703.65, - 1702.55, - 1702.95, - 148 - ], - [ - "2017-12-19T09:25:00+0530", - 1702.95, - 1704, - 1702.95, - 1704, - 91 - ], - [ - "2017-12-19T09:26:00+0530", - 1704, - 1708, - 1703.95, - 1707.8, - 1114 - ], - [ - "2017-12-19T09:27:00+0530", - 1707.85, - 1709.95, - 1707.6, - 1708.8, - 5129 - ], - [ - "2017-12-19T09:28:00+0530", - 1708.8, - 1709.8, - 1706.1, - 1706.1, - 1124 - ], - [ - "2017-12-19T09:29:00+0530", - 1706.1, - 1706.3, - 1704, - 1704, - 693 - ], - [ - "2017-12-19T09:30:00+0530", - 1704, - 1705.6, - 1703.4, - 1705.6, - 701 - ], - [ - "2017-12-19T09:31:00+0530", - 1705.6, - 1707, - 1703.5, - 1706.45, - 985 - ], - [ - "2017-12-19T09:32:00+0530", - 1706.45, - 1707.25, - 1705.65, - 1705.65, - 635 - ], - [ - "2017-12-19T09:33:00+0530", - 1706, - 1706.7, - 1705.5, - 1705.5, - 410 - ], - [ - "2017-12-19T09:34:00+0530", - 1705.6, - 1707, - 1705.4, - 1707, - 386 - ], - [ - "2017-12-19T09:35:00+0530", - 1706.25, - 1706.55, - 1705.4, - 1706, - 200 - ], - [ - "2017-12-19T09:36:00+0530", - 1706, - 1706, - 1703.75, - 1704.5, - 245 - ], - [ - "2017-12-19T09:37:00+0530", - 1704.5, - 1707, - 1704.5, - 1707, - 566 - ], - [ - "2017-12-19T09:38:00+0530", - 1707, - 1707, - 1704.55, - 1706.05, - 657 - ], - [ - "2017-12-19T09:39:00+0530", - 1706.05, - 1707.95, - 1706.05, - 1707.95, - 269 - ], - [ - "2017-12-19T09:40:00+0530", - 1707.95, - 1708.85, - 1707.25, - 1708.8, - 461 - ], - [ - "2017-12-19T09:41:00+0530", - 1708.85, - 1710, - 1708.15, - 1710, - 1223 - ], - [ - "2017-12-19T09:42:00+0530", - 1709.95, - 1710, - 1707.3, - 1709.75, - 703 - ], - [ - "2017-12-19T09:43:00+0530", - 1709.75, - 1712, - 1709.75, - 1711.95, - 2045 - ], - [ - "2017-12-19T09:44:00+0530", - 1711, - 1713, - 1711, - 1712.9, - 2591 - ], - [ - "2017-12-19T09:45:00+0530", - 1712.9, - 1715, - 1712, - 1714.3, - 3196 - ], - [ - "2017-12-19T09:46:00+0530", - 1714.3, - 1718.9, - 1714.3, - 1717.2, - 4696 - ], - [ - "2017-12-19T09:47:00+0530", - 1717.2, - 1718.9, - 1717, - 1718.9, - 1779 - ], - [ - "2017-12-19T09:48:00+0530", - 1718.9, - 1718.95, - 1714.35, - 1714.7, - 3474 - ], - [ - "2017-12-19T09:49:00+0530", - 1714.7, - 1716, - 1714.7, - 1716, - 976 - ], - [ - "2017-12-19T09:50:00+0530", - 1716, - 1717, - 1715.9, - 1717, - 1231 - ], - [ - "2017-12-19T09:51:00+0530", - 1716.1, - 1717, - 1716, - 1716, - 679 - ], - [ - "2017-12-19T09:52:00+0530", - 1716, - 1716.65, - 1715, - 1716, - 1054 - ], - [ - "2017-12-19T09:53:00+0530", - 1716, - 1716, - 1713.9, - 1713.9, - 1416 - ], - [ - "2017-12-19T09:54:00+0530", - 1713.9, - 1714.45, - 1713, - 1713, - 585 - ], - [ - "2017-12-19T09:55:00+0530", - 1714, - 1714, - 1712.2, - 1713.85, - 929 - ], - [ - "2017-12-19T09:56:00+0530", - 1714, - 1714, - 1714, - 1714, - 147 - ], - [ - "2017-12-19T09:57:00+0530", - 1714, - 1715, - 1713.85, - 1714.75, - 421 - ], - [ - "2017-12-19T09:58:00+0530", - 1714.75, - 1714.75, - 1712.5, - 1713.65, - 266 - ], - [ - "2017-12-19T09:59:00+0530", - 1713.65, - 1713.65, - 1712.5, - 1713.2, - 367 - ], - [ - "2017-12-19T10:00:00+0530", - 1713.2, - 1714, - 1713.2, - 1714, - 112 - ], - [ - "2017-12-19T10:01:00+0530", - 1714, - 1714, - 1713.85, - 1713.9, - 71 - ], - [ - "2017-12-19T10:02:00+0530", - 1713.9, - 1713.9, - 1713.75, - 1713.85, - 301 - ], - [ - "2017-12-19T10:03:00+0530", - 1713.85, - 1713.85, - 1713.75, - 1713.75, - 101 - ], - [ - "2017-12-19T10:04:00+0530", - 1713.75, - 1713.8, - 1712.05, - 1712.05, - 833 - ], - [ - "2017-12-19T10:05:00+0530", - 1712.05, - 1713.8, - 1712.05, - 1713.1, - 195 - ], - [ - "2017-12-19T10:06:00+0530", - 1713.1, - 1713.45, - 1712, - 1712.6, - 333 - ], - [ - "2017-12-19T10:07:00+0530", - 1712.6, - 1713.8, - 1712, - 1713, - 228 - ], - [ - "2017-12-19T10:08:00+0530", - 1713, - 1713, - 1712, - 1712.85, - 272 - ], - [ - "2017-12-19T10:09:00+0530", - 1712.85, - 1712.85, - 1710.35, - 1710.35, - 597 - ], - [ - "2017-12-19T10:10:00+0530", - 1710.35, - 1712.15, - 1710.3, - 1710.65, - 253 - ], - [ - "2017-12-19T10:11:00+0530", - 1710.65, - 1711.9, - 1710.55, - 1710.55, - 113 - ], - [ - "2017-12-19T10:12:00+0530", - 1710.55, - 1710.6, - 1710.1, - 1710.1, - 1244 - ], - [ - "2017-12-19T10:13:00+0530", - 1709.45, - 1710, - 1708.25, - 1710, - 941 - ], - [ - "2017-12-19T10:14:00+0530", - 1710, - 1710, - 1709.1, - 1709.6, - 307 - ], - [ - "2017-12-19T10:15:00+0530", - 1709.6, - 1710.65, - 1709.6, - 1709.6, - 2716 - ], - [ - "2017-12-19T10:16:00+0530", - 1709.65, - 1710, - 1709.15, - 1709.15, - 351 - ], - [ - "2017-12-19T10:17:00+0530", - 1709.15, - 1709.85, - 1708.95, - 1709.6, - 268 - ], - [ - "2017-12-19T10:18:00+0530", - 1709.6, - 1709.6, - 1709.05, - 1709.5, - 55 - ], - [ - "2017-12-19T10:19:00+0530", - 1709.5, - 1710, - 1709.5, - 1709.85, - 2307 - ], - [ - "2017-12-19T10:20:00+0530", - 1709.85, - 1709.85, - 1709.1, - 1709.8, - 334 - ], - [ - "2017-12-19T10:21:00+0530", - 1709.8, - 1709.8, - 1709.8, - 1709.8, - 9 - ], - [ - "2017-12-19T10:22:00+0530", - 1709.8, - 1709.8, - 1709.1, - 1709.1, - 84 - ], - [ - "2017-12-19T10:23:00+0530", - 1709.1, - 1709.85, - 1708.4, - 1708.4, - 1885 - ], - [ - "2017-12-19T10:24:00+0530", - 1708.4, - 1708.4, - 1707, - 1707.45, - 639 - ], - [ - "2017-12-19T10:25:00+0530", - 1707.45, - 1707.45, - 1706.25, - 1706.5, - 348 - ], - [ - "2017-12-19T10:26:00+0530", - 1706.5, - 1708.5, - 1705.8, - 1705.8, - 945 - ], - [ - "2017-12-19T10:27:00+0530", - 1705.8, - 1706.75, - 1703.55, - 1705, - 2334 - ], - [ - "2017-12-19T10:28:00+0530", - 1705, - 1705.8, - 1704.1, - 1705.8, - 1247 - ], - [ - "2017-12-19T10:29:00+0530", - 1705.8, - 1705.8, - 1705, - 1705.1, - 205 - ], - [ - "2017-12-19T10:30:00+0530", - 1705.1, - 1706, - 1705.1, - 1706, - 570 - ], - [ - "2017-12-19T10:31:00+0530", - 1706, - 1706, - 1705.35, - 1705.5, - 41 - ], - [ - "2017-12-19T10:32:00+0530", - 1705.5, - 1706, - 1705.5, - 1705.95, - 184 - ], - [ - "2017-12-19T10:33:00+0530", - 1705.95, - 1706, - 1705.6, - 1706, - 248 - ], - [ - "2017-12-19T10:34:00+0530", - 1706, - 1706.55, - 1706, - 1706.55, - 542 - ], - [ - "2017-12-19T10:35:00+0530", - 1706.55, - 1707.35, - 1706, - 1707.35, - 147 - ], - [ - "2017-12-19T10:36:00+0530", - 1707.45, - 1708.95, - 1707.45, - 1708.3, - 233 - ], - [ - "2017-12-19T10:37:00+0530", - 1709.5, - 1709.5, - 1709.05, - 1709.15, - 559 - ], - [ - "2017-12-19T10:38:00+0530", - 1709.15, - 1710.05, - 1709.15, - 1709.3, - 717 - ], - [ - "2017-12-19T10:39:00+0530", - 1709.3, - 1709.3, - 1708.3, - 1708.3, - 26 - ], - [ - "2017-12-19T10:40:00+0530", - 1708.3, - 1708.3, - 1708, - 1708, - 102 - ], - [ - "2017-12-19T10:41:00+0530", - 1708, - 1708.05, - 1708, - 1708, - 35 - ], - [ - "2017-12-19T10:42:00+0530", - 1708, - 1708.05, - 1708, - 1708.05, - 70 - ], - [ - "2017-12-19T10:43:00+0530", - 1708.05, - 1708.7, - 1708.05, - 1708.4, - 12 - ], - [ - "2017-12-19T10:44:00+0530", - 1708.4, - 1710, - 1708.4, - 1710, - 410 - ], - [ - "2017-12-19T10:45:00+0530", - 1710, - 1710, - 1709, - 1709.55, - 41 - ], - [ - "2017-12-19T10:46:00+0530", - 1709.55, - 1709.55, - 1709, - 1709, - 30 - ], - [ - "2017-12-19T10:47:00+0530", - 1709, - 1709.5, - 1709, - 1709, - 122 - ], - [ - "2017-12-19T10:48:00+0530", - 1709, - 1709.35, - 1709, - 1709, - 69 - ], - [ - "2017-12-19T10:49:00+0530", - 1709, - 1709, - 1709, - 1709, - 40 - ], - [ - "2017-12-19T10:50:00+0530", - 1709, - 1709.1, - 1708.7, - 1708.75, - 317 - ], - [ - "2017-12-19T10:51:00+0530", - 1708.75, - 1709.55, - 1708.75, - 1708.9, - 198 - ], - [ - "2017-12-19T10:52:00+0530", - 1708.9, - 1708.9, - 1708.9, - 1708.9, - 19 - ], - [ - "2017-12-19T10:53:00+0530", - 1708.9, - 1708.9, - 1708.9, - 1708.9, - 22 - ], - [ - "2017-12-19T10:54:00+0530", - 1708.9, - 1709.95, - 1708.8, - 1708.95, - 140 - ], - [ - "2017-12-19T10:55:00+0530", - 1708.95, - 1709.55, - 1708.95, - 1709.55, - 10 - ], - [ - "2017-12-19T10:56:00+0530", - 1709.55, - 1709.55, - 1709.05, - 1709.05, - 37 - ], - [ - "2017-12-19T10:57:00+0530", - 1709.05, - 1709.05, - 1709, - 1709, - 43 - ], - [ - "2017-12-19T10:58:00+0530", - 1709, - 1709.55, - 1708.95, - 1709.05, - 128 - ], - [ - "2017-12-19T10:59:00+0530", - 1709.05, - 1709.05, - 1708.05, - 1708.05, - 85 - ], - [ - "2017-12-19T11:00:00+0530", - 1708.05, - 1708.05, - 1707.5, - 1707.5, - 368 - ], - [ - "2017-12-19T11:01:00+0530", - 1707.5, - 1708.5, - 1707, - 1708, - 168 - ], - [ - "2017-12-19T11:02:00+0530", - 1708.1, - 1710, - 1708.1, - 1708.8, - 220 - ], - [ - "2017-12-19T11:03:00+0530", - 1708.8, - 1710, - 1708.8, - 1709.5, - 530 - ], - [ - "2017-12-19T11:04:00+0530", - 1709.5, - 1710.05, - 1709.5, - 1710, - 1926 - ], - [ - "2017-12-19T11:05:00+0530", - 1710, - 1710.35, - 1709.5, - 1710.2, - 7830 - ], - [ - "2017-12-19T11:06:00+0530", - 1710, - 1710.35, - 1708.8, - 1710.1, - 1785 - ], - [ - "2017-12-19T11:07:00+0530", - 1710.1, - 1710.1, - 1709.95, - 1709.95, - 2 - ], - [ - "2017-12-19T11:08:00+0530", - 1709.95, - 1709.95, - 1708.35, - 1708.35, - 67 - ], - [ - "2017-12-19T11:09:00+0530", - 1708.35, - 1709.75, - 1708.15, - 1709.75, - 86 - ], - [ - "2017-12-19T11:10:00+0530", - 1709.75, - 1709.75, - 1709.05, - 1709.35, - 31 - ], - [ - "2017-12-19T11:11:00+0530", - 1709.35, - 1709.35, - 1708.15, - 1708.25, - 128 - ], - [ - "2017-12-19T11:12:00+0530", - 1708.25, - 1708.25, - 1708.15, - 1708.15, - 67 - ], - [ - "2017-12-19T11:13:00+0530", - 1708.15, - 1708.15, - 1708.15, - 1708.15, - 29 - ], - [ - "2017-12-19T11:14:00+0530", - 1708.1, - 1708.2, - 1708.1, - 1708.2, - 107 - ], - [ - "2017-12-19T11:15:00+0530", - 1708.2, - 1708.2, - 1708.2, - 1708.2, - 3 - ], - [ - "2017-12-19T11:16:00+0530", - 1708.6, - 1709.4, - 1708.6, - 1709.3, - 35 - ], - [ - "2017-12-19T11:17:00+0530", - 1709.3, - 1709.3, - 1709.3, - 1709.3, - 0 - ], - [ - "2017-12-19T11:18:00+0530", - 1708.5, - 1709.55, - 1708.5, - 1708.75, - 66 - ], - [ - "2017-12-19T11:19:00+0530", - 1708.75, - 1709.1, - 1708.5, - 1708.5, - 16 - ], - [ - "2017-12-19T11:20:00+0530", - 1708.9, - 1708.9, - 1708.5, - 1708.85, - 260 - ], - [ - "2017-12-19T11:21:00+0530", - 1708.5, - 1709.4, - 1708.05, - 1709.4, - 481 - ], - [ - "2017-12-19T11:22:00+0530", - 1709.4, - 1710.1, - 1709.4, - 1710, - 2124 - ], - [ - "2017-12-19T11:23:00+0530", - 1709.9, - 1709.9, - 1707.05, - 1708.55, - 886 - ], - [ - "2017-12-19T11:24:00+0530", - 1708.55, - 1708.55, - 1707.5, - 1708.05, - 487 - ], - [ - "2017-12-19T11:25:00+0530", - 1708.3, - 1708.85, - 1708.05, - 1708.4, - 757 - ], - [ - "2017-12-19T11:26:00+0530", - 1708.4, - 1709.8, - 1708.1, - 1709.8, - 7 - ], - [ - "2017-12-19T11:27:00+0530", - 1708.6, - 1709.2, - 1708.35, - 1709.2, - 10 - ], - [ - "2017-12-19T11:28:00+0530", - 1709.8, - 1709.8, - 1709.1, - 1709.1, - 113 - ], - [ - "2017-12-19T11:29:00+0530", - 1709.1, - 1709.1, - 1708.7, - 1708.75, - 63 - ], - [ - "2017-12-19T11:30:00+0530", - 1708.75, - 1708.75, - 1708.35, - 1708.75, - 41 - ], - [ - "2017-12-19T11:31:00+0530", - 1708.75, - 1708.75, - 1708.3, - 1708.3, - 14 - ], - [ - "2017-12-19T11:32:00+0530", - 1708.25, - 1708.7, - 1708.25, - 1708.7, - 26 - ], - [ - "2017-12-19T11:33:00+0530", - 1708.35, - 1708.35, - 1708.35, - 1708.35, - 21 - ], - [ - "2017-12-19T11:34:00+0530", - 1708.35, - 1708.35, - 1708.35, - 1708.35, - 21 - ], - [ - "2017-12-19T11:35:00+0530", - 1708.35, - 1708.8, - 1708.35, - 1708.8, - 75 - ], - [ - "2017-12-19T11:36:00+0530", - 1708.6, - 1708.6, - 1708.6, - 1708.6, - 2 - ], - [ - "2017-12-19T11:37:00+0530", - 1708.6, - 1708.65, - 1708.6, - 1708.65, - 36 - ], - [ - "2017-12-19T11:38:00+0530", - 1708.65, - 1709.7, - 1708.65, - 1709.7, - 72 - ], - [ - "2017-12-19T11:39:00+0530", - 1708.65, - 1709.55, - 1708.65, - 1709.55, - 71 - ], - [ - "2017-12-19T11:40:00+0530", - 1708.95, - 1709.2, - 1708.95, - 1709.05, - 642 - ], - [ - "2017-12-19T11:41:00+0530", - 1709.05, - 1709.05, - 1709, - 1709, - 76 - ], - [ - "2017-12-19T11:42:00+0530", - 1709, - 1709, - 1708.55, - 1708.55, - 70 - ], - [ - "2017-12-19T11:43:00+0530", - 1708.55, - 1709, - 1708.05, - 1708.05, - 141 - ], - [ - "2017-12-19T11:44:00+0530", - 1708.05, - 1708.05, - 1708, - 1708, - 138 - ], - [ - "2017-12-19T11:45:00+0530", - 1707.7, - 1708, - 1707, - 1707, - 451 - ], - [ - "2017-12-19T11:46:00+0530", - 1706.6, - 1707, - 1706.6, - 1707, - 807 - ], - [ - "2017-12-19T11:47:00+0530", - 1707, - 1707, - 1706.55, - 1707, - 103 - ], - [ - "2017-12-19T11:48:00+0530", - 1706.7, - 1707, - 1706.7, - 1707, - 13 - ], - [ - "2017-12-19T11:49:00+0530", - 1707, - 1707, - 1706.4, - 1706.4, - 1680 - ], - [ - "2017-12-19T11:50:00+0530", - 1706.4, - 1706.4, - 1706, - 1706, - 122 - ], - [ - "2017-12-19T11:51:00+0530", - 1706, - 1706.55, - 1706, - 1706.55, - 100 - ], - [ - "2017-12-19T11:52:00+0530", - 1706.55, - 1707, - 1706.2, - 1707, - 70 - ], - [ - "2017-12-19T11:53:00+0530", - 1706.55, - 1706.95, - 1706.5, - 1706.5, - 201 - ], - [ - "2017-12-19T11:54:00+0530", - 1706.5, - 1706.9, - 1706.5, - 1706.9, - 327 - ], - [ - "2017-12-19T11:55:00+0530", - 1706.5, - 1706.9, - 1706.5, - 1706.9, - 195 - ], - [ - "2017-12-19T11:56:00+0530", - 1706.5, - 1707, - 1706.5, - 1707, - 66 - ], - [ - "2017-12-19T11:57:00+0530", - 1707, - 1707, - 1707, - 1707, - 17 - ], - [ - "2017-12-19T11:58:00+0530", - 1706.5, - 1706.8, - 1706.5, - 1706.55, - 8 - ], - [ - "2017-12-19T11:59:00+0530", - 1706.5, - 1706.55, - 1706.5, - 1706.55, - 94 - ], - [ - "2017-12-19T12:00:00+0530", - 1706.5, - 1706.5, - 1706.5, - 1706.5, - 21 - ], - [ - "2017-12-19T12:01:00+0530", - 1706.5, - 1707, - 1706.5, - 1707, - 1084 - ], - [ - "2017-12-19T12:02:00+0530", - 1706.7, - 1707, - 1706.7, - 1707, - 47 - ], - [ - "2017-12-19T12:03:00+0530", - 1706.7, - 1707, - 1706.7, - 1707, - 183 - ], - [ - "2017-12-19T12:04:00+0530", - 1707, - 1707, - 1706.7, - 1706.7, - 22 - ], - [ - "2017-12-19T12:05:00+0530", - 1706.75, - 1707, - 1706.75, - 1706.95, - 366 - ], - [ - "2017-12-19T12:06:00+0530", - 1706.95, - 1707, - 1706.95, - 1707, - 922 - ], - [ - "2017-12-19T12:07:00+0530", - 1706.95, - 1706.95, - 1706.95, - 1706.95, - 7 - ], - [ - "2017-12-19T12:08:00+0530", - 1706.95, - 1707, - 1706.95, - 1707, - 480 - ], - [ - "2017-12-19T12:09:00+0530", - 1707, - 1707, - 1706.95, - 1707, - 789 - ], - [ - "2017-12-19T12:10:00+0530", - 1707, - 1707.05, - 1707, - 1707, - 797 - ], - [ - "2017-12-19T12:11:00+0530", - 1707, - 1707.25, - 1706.5, - 1706.5, - 2441 - ], - [ - "2017-12-19T12:12:00+0530", - 1706.5, - 1706.5, - 1706, - 1706.1, - 280 - ], - [ - "2017-12-19T12:13:00+0530", - 1706.1, - 1706.3, - 1706.1, - 1706.1, - 51 - ], - [ - "2017-12-19T12:14:00+0530", - 1706.1, - 1706.3, - 1706.1, - 1706.1, - 42 - ], - [ - "2017-12-19T12:15:00+0530", - 1706.1, - 1706.1, - 1705.35, - 1705.45, - 221 - ], - [ - "2017-12-19T12:16:00+0530", - 1705.45, - 1705.6, - 1705.3, - 1705.3, - 339 - ], - [ - "2017-12-19T12:17:00+0530", - 1705.3, - 1707, - 1705.3, - 1706.2, - 126 - ], - [ - "2017-12-19T12:18:00+0530", - 1706.35, - 1707, - 1706.35, - 1706.45, - 619 - ], - [ - "2017-12-19T12:19:00+0530", - 1706.45, - 1706.5, - 1706.1, - 1706.5, - 446 - ], - [ - "2017-12-19T12:20:00+0530", - 1706.1, - 1706.3, - 1705, - 1705.8, - 135 - ], - [ - "2017-12-19T12:21:00+0530", - 1705.8, - 1705.8, - 1705.7, - 1705.7, - 72 - ], - [ - "2017-12-19T12:22:00+0530", - 1705.7, - 1705.7, - 1705.1, - 1705.1, - 55 - ], - [ - "2017-12-19T12:23:00+0530", - 1705, - 1705.5, - 1705, - 1705, - 389 - ], - [ - "2017-12-19T12:24:00+0530", - 1705, - 1705, - 1705, - 1705, - 46 - ], - [ - "2017-12-19T12:25:00+0530", - 1705, - 1707.5, - 1705, - 1705, - 702 - ], - [ - "2017-12-19T12:26:00+0530", - 1705, - 1705, - 1704.9, - 1704.9, - 102 - ], - [ - "2017-12-19T12:27:00+0530", - 1704.5, - 1705.5, - 1704.5, - 1705.5, - 165 - ], - [ - "2017-12-19T12:28:00+0530", - 1705.5, - 1706.1, - 1705.5, - 1706.1, - 152 - ], - [ - "2017-12-19T12:29:00+0530", - 1705.5, - 1705.5, - 1705.5, - 1705.5, - 24 - ], - [ - "2017-12-19T12:30:00+0530", - 1705.5, - 1705.9, - 1705.5, - 1705.9, - 24 - ], - [ - "2017-12-19T12:31:00+0530", - 1705.9, - 1706.05, - 1705.9, - 1705.95, - 101 - ], - [ - "2017-12-19T12:32:00+0530", - 1705.95, - 1705.95, - 1704, - 1705.45, - 6000 - ], - [ - "2017-12-19T12:33:00+0530", - 1704.6, - 1705.55, - 1704.6, - 1704.9, - 603 - ], - [ - "2017-12-19T12:34:00+0530", - 1704.85, - 1705.95, - 1704.5, - 1704.8, - 1500 - ], - [ - "2017-12-19T12:35:00+0530", - 1705.75, - 1705.75, - 1704.5, - 1705, - 3084 - ], - [ - "2017-12-19T12:36:00+0530", - 1704.65, - 1706.7, - 1704.65, - 1706, - 15219 - ], - [ - "2017-12-19T12:37:00+0530", - 1706, - 1706.45, - 1705, - 1705.85, - 2249 - ], - [ - "2017-12-19T12:38:00+0530", - 1705.65, - 1708.7, - 1705.65, - 1708.7, - 230 - ], - [ - "2017-12-19T12:39:00+0530", - 1708.7, - 1711.15, - 1707.95, - 1710.5, - 2037 - ], - [ - "2017-12-19T12:40:00+0530", - 1710.05, - 1712.35, - 1710.05, - 1711.05, - 863 - ], - [ - "2017-12-19T12:41:00+0530", - 1711.05, - 1711.5, - 1711, - 1711.2, - 214 - ], - [ - "2017-12-19T12:42:00+0530", - 1711.2, - 1711.5, - 1711, - 1711, - 190 - ], - [ - "2017-12-19T12:43:00+0530", - 1711, - 1712.9, - 1710.55, - 1712, - 1457 - ], - [ - "2017-12-19T12:44:00+0530", - 1712, - 1712, - 1710, - 1711.5, - 888 - ], - [ - "2017-12-19T12:45:00+0530", - 1710.5, - 1711.35, - 1709.65, - 1710.1, - 736 - ], - [ - "2017-12-19T12:46:00+0530", - 1710.1, - 1710.1, - 1709.15, - 1710.05, - 106 - ], - [ - "2017-12-19T12:47:00+0530", - 1709.25, - 1710.05, - 1709.25, - 1710, - 115 - ], - [ - "2017-12-19T12:48:00+0530", - 1710, - 1710.4, - 1709.4, - 1710, - 798 - ], - [ - "2017-12-19T12:49:00+0530", - 1710, - 1710.95, - 1709.3, - 1710.95, - 36 - ], - [ - "2017-12-19T12:50:00+0530", - 1710, - 1711, - 1710, - 1711, - 145 - ], - [ - "2017-12-19T12:51:00+0530", - 1709.95, - 1709.95, - 1709.7, - 1709.7, - 91 - ], - [ - "2017-12-19T12:52:00+0530", - 1709.7, - 1710.4, - 1709.7, - 1710.4, - 403 - ], - [ - "2017-12-19T12:53:00+0530", - 1711, - 1711.5, - 1709.45, - 1710.9, - 1306 - ], - [ - "2017-12-19T12:54:00+0530", - 1710.9, - 1710.9, - 1710.05, - 1710.3, - 63 - ], - [ - "2017-12-19T12:55:00+0530", - 1710.1, - 1710.1, - 1710.1, - 1710.1, - 52 - ], - [ - "2017-12-19T12:56:00+0530", - 1710, - 1710.75, - 1710, - 1710.75, - 30 - ], - [ - "2017-12-19T12:57:00+0530", - 1710.05, - 1710.8, - 1710.05, - 1710.25, - 35 - ], - [ - "2017-12-19T12:58:00+0530", - 1710.25, - 1711.2, - 1710, - 1710, - 718 - ], - [ - "2017-12-19T12:59:00+0530", - 1710.1, - 1710.1, - 1710.1, - 1710.1, - 2 - ], - [ - "2017-12-19T13:00:00+0530", - 1711.35, - 1711.35, - 1710.2, - 1710.2, - 12 - ], - [ - "2017-12-19T13:01:00+0530", - 1710.05, - 1710.25, - 1710.05, - 1710.25, - 25 - ], - [ - "2017-12-19T13:02:00+0530", - 1710.25, - 1710.25, - 1709.1, - 1709.1, - 256 - ], - [ - "2017-12-19T13:03:00+0530", - 1709.1, - 1709.8, - 1708.35, - 1708.35, - 74 - ], - [ - "2017-12-19T13:04:00+0530", - 1708.35, - 1709, - 1708, - 1708.95, - 465 - ], - [ - "2017-12-19T13:05:00+0530", - 1708.25, - 1709.75, - 1708.25, - 1709.75, - 28 - ], - [ - "2017-12-19T13:06:00+0530", - 1709.15, - 1709.65, - 1708.8, - 1709.65, - 228 - ], - [ - "2017-12-19T13:07:00+0530", - 1708.6, - 1708.6, - 1708.6, - 1708.6, - 2 - ], - [ - "2017-12-19T13:08:00+0530", - 1708.6, - 1709, - 1708.05, - 1708.25, - 44 - ], - [ - "2017-12-19T13:09:00+0530", - 1708.25, - 1708.25, - 1708.15, - 1708.15, - 88 - ], - [ - "2017-12-19T13:10:00+0530", - 1708.15, - 1709.9, - 1708.15, - 1709.9, - 456 - ], - [ - "2017-12-19T13:11:00+0530", - 1709.9, - 1709.9, - 1709.1, - 1709.1, - 37 - ], - [ - "2017-12-19T13:12:00+0530", - 1709.1, - 1709.9, - 1709.1, - 1709.5, - 28 - ], - [ - "2017-12-19T13:13:00+0530", - 1709.4, - 1709.4, - 1709.4, - 1709.4, - 21 - ], - [ - "2017-12-19T13:14:00+0530", - 1709.35, - 1709.9, - 1708, - 1708, - 189 - ], - [ - "2017-12-19T13:15:00+0530", - 1708.1, - 1709.8, - 1708.1, - 1709.5, - 137 - ], - [ - "2017-12-19T13:16:00+0530", - 1709.15, - 1709.5, - 1709, - 1709, - 171 - ], - [ - "2017-12-19T13:17:00+0530", - 1709, - 1709.95, - 1709, - 1709, - 84 - ], - [ - "2017-12-19T13:18:00+0530", - 1709, - 1709.9, - 1708.95, - 1709.7, - 223 - ], - [ - "2017-12-19T13:19:00+0530", - 1709, - 1709.75, - 1708.95, - 1708.95, - 60 - ], - [ - "2017-12-19T13:20:00+0530", - 1708.95, - 1710.25, - 1708.95, - 1708.95, - 85 - ], - [ - "2017-12-19T13:21:00+0530", - 1709.15, - 1710.45, - 1709.15, - 1710.2, - 63 - ], - [ - "2017-12-19T13:22:00+0530", - 1711, - 1711, - 1709.35, - 1710.25, - 120 - ], - [ - "2017-12-19T13:23:00+0530", - 1709.4, - 1710.9, - 1709.4, - 1710.9, - 117 - ], - [ - "2017-12-19T13:24:00+0530", - 1709.9, - 1709.9, - 1709.9, - 1709.9, - 3 - ], - [ - "2017-12-19T13:25:00+0530", - 1710, - 1711, - 1710, - 1710.45, - 222 - ], - [ - "2017-12-19T13:26:00+0530", - 1710.35, - 1711.5, - 1710.35, - 1710.35, - 91 - ], - [ - "2017-12-19T13:27:00+0530", - 1711.5, - 1711.5, - 1710.35, - 1710.95, - 127 - ], - [ - "2017-12-19T13:28:00+0530", - 1710.95, - 1710.95, - 1709.55, - 1709.95, - 174 - ], - [ - "2017-12-19T13:29:00+0530", - 1710, - 1710, - 1709.55, - 1710, - 71 - ], - [ - "2017-12-19T13:30:00+0530", - 1709.6, - 1710, - 1709.5, - 1710, - 166 - ], - [ - "2017-12-19T13:31:00+0530", - 1709.55, - 1710, - 1709.55, - 1709.65, - 95 - ], - [ - "2017-12-19T13:32:00+0530", - 1709.6, - 1709.65, - 1709.55, - 1709.55, - 122 - ], - [ - "2017-12-19T13:33:00+0530", - 1709.55, - 1710.85, - 1709.55, - 1709.95, - 146 - ], - [ - "2017-12-19T13:34:00+0530", - 1709.95, - 1710.9, - 1709.95, - 1710.5, - 236 - ], - [ - "2017-12-19T13:35:00+0530", - 1710.5, - 1710.5, - 1710, - 1710.5, - 59 - ], - [ - "2017-12-19T13:36:00+0530", - 1710, - 1710.9, - 1710, - 1710.9, - 116 - ], - [ - "2017-12-19T13:37:00+0530", - 1710, - 1710.95, - 1710, - 1710, - 106 - ], - [ - "2017-12-19T13:38:00+0530", - 1710, - 1710.9, - 1710, - 1710.9, - 109 - ], - [ - "2017-12-19T13:39:00+0530", - 1710.25, - 1710.9, - 1710.25, - 1710.9, - 59 - ], - [ - "2017-12-19T13:40:00+0530", - 1710.25, - 1710.95, - 1710.25, - 1710.9, - 216 - ], - [ - "2017-12-19T13:41:00+0530", - 1710.25, - 1711.15, - 1710.25, - 1711.15, - 1135 - ], - [ - "2017-12-19T13:42:00+0530", - 1711.3, - 1711.9, - 1711.3, - 1711.5, - 88 - ], - [ - "2017-12-19T13:43:00+0530", - 1711.5, - 1712, - 1711.45, - 1712, - 181 - ], - [ - "2017-12-19T13:44:00+0530", - 1712, - 1714.95, - 1711.9, - 1714.95, - 1240 - ], - [ - "2017-12-19T13:45:00+0530", - 1714.95, - 1714.95, - 1713.85, - 1714, - 470 - ], - [ - "2017-12-19T13:46:00+0530", - 1714, - 1714, - 1713.7, - 1713.85, - 214 - ], - [ - "2017-12-19T13:47:00+0530", - 1712.8, - 1713, - 1712.45, - 1713, - 251 - ], - [ - "2017-12-19T13:48:00+0530", - 1712.8, - 1713.45, - 1712.8, - 1713.4, - 126 - ], - [ - "2017-12-19T13:49:00+0530", - 1713.85, - 1713.9, - 1713.15, - 1713.3, - 508 - ], - [ - "2017-12-19T13:50:00+0530", - 1713.15, - 1713.9, - 1713.15, - 1713.55, - 187 - ], - [ - "2017-12-19T13:51:00+0530", - 1713.55, - 1714.95, - 1713.3, - 1713.6, - 250 - ], - [ - "2017-12-19T13:52:00+0530", - 1713.6, - 1713.6, - 1713.55, - 1713.6, - 127 - ], - [ - "2017-12-19T13:53:00+0530", - 1713.6, - 1714.5, - 1713.55, - 1713.55, - 126 - ], - [ - "2017-12-19T13:54:00+0530", - 1713.55, - 1714.5, - 1713.3, - 1714.5, - 476 - ], - [ - "2017-12-19T13:55:00+0530", - 1713.5, - 1714.9, - 1713.5, - 1714.9, - 273 - ], - [ - "2017-12-19T13:56:00+0530", - 1714.5, - 1714.5, - 1713.5, - 1714.5, - 117 - ], - [ - "2017-12-19T13:57:00+0530", - 1714.5, - 1714.5, - 1713.45, - 1714, - 469 - ], - [ - "2017-12-19T13:58:00+0530", - 1714, - 1714.85, - 1713.3, - 1714, - 373 - ], - [ - "2017-12-19T13:59:00+0530", - 1713.55, - 1716, - 1713.55, - 1715.5, - 1360 - ], - [ - "2017-12-19T14:00:00+0530", - 1715.5, - 1716, - 1715.5, - 1715.5, - 172 - ], - [ - "2017-12-19T14:01:00+0530", - 1715.5, - 1716.75, - 1715.5, - 1716.05, - 1410 - ], - [ - "2017-12-19T14:02:00+0530", - 1716.05, - 1716.5, - 1716.05, - 1716.5, - 431 - ], - [ - "2017-12-19T14:03:00+0530", - 1716.05, - 1716.6, - 1716.05, - 1716.1, - 756 - ], - [ - "2017-12-19T14:04:00+0530", - 1716.1, - 1717, - 1716, - 1716, - 720 - ], - [ - "2017-12-19T14:05:00+0530", - 1716, - 1716.9, - 1716, - 1716.9, - 127 - ], - [ - "2017-12-19T14:06:00+0530", - 1716.05, - 1716.05, - 1716, - 1716, - 32 - ], - [ - "2017-12-19T14:07:00+0530", - 1716, - 1716.5, - 1716, - 1716, - 269 - ], - [ - "2017-12-19T14:08:00+0530", - 1716, - 1716.05, - 1714.5, - 1715.9, - 1173 - ], - [ - "2017-12-19T14:09:00+0530", - 1715.9, - 1715.9, - 1714.45, - 1715, - 127 - ], - [ - "2017-12-19T14:10:00+0530", - 1715, - 1715, - 1714.45, - 1714.5, - 139 - ], - [ - "2017-12-19T14:11:00+0530", - 1714.5, - 1714.5, - 1714.05, - 1714.05, - 318 - ], - [ - "2017-12-19T14:12:00+0530", - 1714.05, - 1715.35, - 1714, - 1714.05, - 185 - ], - [ - "2017-12-19T14:13:00+0530", - 1714.05, - 1715.9, - 1714.05, - 1715.45, - 206 - ], - [ - "2017-12-19T14:14:00+0530", - 1714.2, - 1715.7, - 1714.2, - 1715.7, - 59 - ], - [ - "2017-12-19T14:15:00+0530", - 1714.25, - 1716, - 1714.2, - 1715.9, - 210 - ], - [ - "2017-12-19T14:16:00+0530", - 1715.9, - 1716, - 1715.8, - 1715.8, - 232 - ], - [ - "2017-12-19T14:17:00+0530", - 1715.8, - 1716, - 1715, - 1715, - 136 - ], - [ - "2017-12-19T14:18:00+0530", - 1714.7, - 1715.7, - 1714.6, - 1715.7, - 45 - ], - [ - "2017-12-19T14:19:00+0530", - 1714.65, - 1716, - 1714.55, - 1714.75, - 220 - ], - [ - "2017-12-19T14:20:00+0530", - 1714.75, - 1715.95, - 1714.75, - 1715.9, - 150 - ], - [ - "2017-12-19T14:21:00+0530", - 1715.15, - 1715.9, - 1715.15, - 1715.5, - 236 - ], - [ - "2017-12-19T14:22:00+0530", - 1715.4, - 1716, - 1715.4, - 1716, - 378 - ], - [ - "2017-12-19T14:23:00+0530", - 1715.55, - 1716, - 1715.55, - 1716, - 159 - ], - [ - "2017-12-19T14:24:00+0530", - 1716, - 1716, - 1715.45, - 1715.9, - 126 - ], - [ - "2017-12-19T14:25:00+0530", - 1715.45, - 1715.9, - 1715.45, - 1715.9, - 99 - ], - [ - "2017-12-19T14:26:00+0530", - 1715.45, - 1716.5, - 1715.45, - 1716.5, - 506 - ], - [ - "2017-12-19T14:27:00+0530", - 1716.5, - 1717.1, - 1715.75, - 1716, - 274 - ], - [ - "2017-12-19T14:28:00+0530", - 1716, - 1717.5, - 1716, - 1717.4, - 301 - ], - [ - "2017-12-19T14:29:00+0530", - 1717.5, - 1717.65, - 1717.35, - 1717.35, - 925 - ], - [ - "2017-12-19T14:30:00+0530", - 1717.35, - 1717.95, - 1716.95, - 1717.95, - 331 - ], - [ - "2017-12-19T14:31:00+0530", - 1717.95, - 1718.6, - 1717.05, - 1718.2, - 2218 - ], - [ - "2017-12-19T14:32:00+0530", - 1718.2, - 1720, - 1718.1, - 1718.7, - 3441 - ], - [ - "2017-12-19T14:33:00+0530", - 1718.7, - 1721, - 1718.7, - 1721, - 1661 - ], - [ - "2017-12-19T14:34:00+0530", - 1721.6, - 1723, - 1721.6, - 1722, - 2315 - ], - [ - "2017-12-19T14:35:00+0530", - 1721, - 1721.9, - 1720.15, - 1720.5, - 1289 - ], - [ - "2017-12-19T14:36:00+0530", - 1719.7, - 1721, - 1719.7, - 1720.7, - 1002 - ], - [ - "2017-12-19T14:37:00+0530", - 1720.9, - 1721.2, - 1720.7, - 1721, - 676 - ], - [ - "2017-12-19T14:38:00+0530", - 1720.95, - 1721, - 1720.5, - 1720.5, - 1366 - ], - [ - "2017-12-19T14:39:00+0530", - 1720.8, - 1720.95, - 1720.5, - 1720.5, - 958 - ], - [ - "2017-12-19T14:40:00+0530", - 1720.15, - 1720.5, - 1720, - 1720, - 677 - ], - [ - "2017-12-19T14:41:00+0530", - 1720, - 1720.4, - 1719.85, - 1720.4, - 2110 - ], - [ - "2017-12-19T14:42:00+0530", - 1719.95, - 1720.35, - 1719.8, - 1719.95, - 763 - ], - [ - "2017-12-19T14:43:00+0530", - 1720, - 1720.75, - 1720, - 1720.75, - 1215 - ], - [ - "2017-12-19T14:44:00+0530", - 1720.75, - 1723, - 1720.75, - 1722.85, - 1117 - ], - [ - "2017-12-19T14:45:00+0530", - 1722.9, - 1724.4, - 1722.9, - 1724, - 1839 - ], - [ - "2017-12-19T14:46:00+0530", - 1724.25, - 1724.35, - 1723.2, - 1723.35, - 1418 - ], - [ - "2017-12-19T14:47:00+0530", - 1723.35, - 1724, - 1722.9, - 1723.7, - 841 - ], - [ - "2017-12-19T14:48:00+0530", - 1723.5, - 1723.9, - 1723, - 1723.9, - 782 - ], - [ - "2017-12-19T14:49:00+0530", - 1723.85, - 1725.5, - 1723.85, - 1725.4, - 4940 - ], - [ - "2017-12-19T14:50:00+0530", - 1725.35, - 1727.45, - 1725.25, - 1726.9, - 5052 - ], - [ - "2017-12-19T14:51:00+0530", - 1727, - 1728.15, - 1727, - 1728.15, - 3821 - ], - [ - "2017-12-19T14:52:00+0530", - 1728.2, - 1729.65, - 1728.2, - 1729.65, - 3444 - ], - [ - "2017-12-19T14:53:00+0530", - 1729.7, - 1731.95, - 1729.7, - 1731.25, - 5146 - ], - [ - "2017-12-19T14:54:00+0530", - 1730.1, - 1730.1, - 1728.2, - 1728.45, - 1599 - ], - [ - "2017-12-19T14:55:00+0530", - 1728.4, - 1728.9, - 1727.3, - 1727.7, - 920 - ], - [ - "2017-12-19T14:56:00+0530", - 1727.35, - 1727.55, - 1725.2, - 1725.6, - 1132 - ], - [ - "2017-12-19T14:57:00+0530", - 1725.55, - 1727.05, - 1725, - 1726.2, - 3696 - ], - [ - "2017-12-19T14:58:00+0530", - 1726.2, - 1728, - 1726.2, - 1727.95, - 841 - ], - [ - "2017-12-19T14:59:00+0530", - 1727.9, - 1729.15, - 1727.9, - 1729.05, - 1264 - ], - [ - "2017-12-19T15:00:00+0530", - 1729.15, - 1729.15, - 1728.1, - 1728.4, - 949 - ], - [ - "2017-12-19T15:01:00+0530", - 1728.45, - 1728.9, - 1728.45, - 1728.7, - 1569 - ], - [ - "2017-12-19T15:02:00+0530", - 1728.65, - 1729.05, - 1728.65, - 1728.65, - 818 - ], - [ - "2017-12-19T15:03:00+0530", - 1728.65, - 1728.65, - 1728.2, - 1728.45, - 1162 - ], - [ - "2017-12-19T15:04:00+0530", - 1728.5, - 1729.1, - 1728.45, - 1729.1, - 1180 - ], - [ - "2017-12-19T15:05:00+0530", - 1729.05, - 1729.2, - 1729.05, - 1729.1, - 1115 - ], - [ - "2017-12-19T15:06:00+0530", - 1729.1, - 1730.5, - 1729.1, - 1730.5, - 2069 - ], - [ - "2017-12-19T15:07:00+0530", - 1730.45, - 1731.95, - 1730.45, - 1731.95, - 868 - ], - [ - "2017-12-19T15:08:00+0530", - 1732, - 1733.35, - 1732, - 1733, - 2155 - ], - [ - "2017-12-19T15:09:00+0530", - 1732.9, - 1733.6, - 1732.9, - 1733.45, - 1514 - ], - [ - "2017-12-19T15:10:00+0530", - 1733.4, - 1733.4, - 1729.05, - 1729.2, - 2064 - ], - [ - "2017-12-19T15:11:00+0530", - 1729.2, - 1730, - 1728.65, - 1728.75, - 1002 - ], - [ - "2017-12-19T15:12:00+0530", - 1728.75, - 1728.9, - 1728.65, - 1728.8, - 1051 - ], - [ - "2017-12-19T15:13:00+0530", - 1728.7, - 1729.25, - 1727.8, - 1727.95, - 1664 - ], - [ - "2017-12-19T15:14:00+0530", - 1727.95, - 1728.9, - 1726.55, - 1727.1, - 2272 - ], - [ - "2017-12-19T15:15:00+0530", - 1727.1, - 1728.05, - 1726, - 1728.05, - 636 - ], - [ - "2017-12-19T15:16:00+0530", - 1728.05, - 1730, - 1728.05, - 1729.2, - 1880 - ], - [ - "2017-12-19T15:17:00+0530", - 1729.2, - 1729.35, - 1729.2, - 1729.35, - 680 - ], - [ - "2017-12-19T15:18:00+0530", - 1729.4, - 1729.9, - 1729.35, - 1729.9, - 1481 - ], - [ - "2017-12-19T15:19:00+0530", - 1729.9, - 1730.95, - 1729.8, - 1730.95, - 1323 - ], - [ - "2017-12-19T15:20:00+0530", - 1730.95, - 1731, - 1730.9, - 1730.9, - 1413 - ], - [ - "2017-12-19T15:21:00+0530", - 1730.9, - 1731, - 1730.9, - 1730.95, - 1316 - ], - [ - "2017-12-19T15:22:00+0530", - 1730.95, - 1733, - 1730.9, - 1732.7, - 2481 - ], - [ - "2017-12-19T15:23:00+0530", - 1732.7, - 1733.9, - 1732.65, - 1732.75, - 1626 - ], - [ - "2017-12-19T15:24:00+0530", - 1732.75, - 1732.75, - 1731.45, - 1731.75, - 1481 - ], - [ - "2017-12-19T15:25:00+0530", - 1731.4, - 1731.4, - 1730.4, - 1731, - 3229 - ], - [ - "2017-12-19T15:26:00+0530", - 1731, - 1731.85, - 1731, - 1731.2, - 1893 - ], - [ - "2017-12-19T15:27:00+0530", - 1731.25, - 1731.7, - 1729.95, - 1729.95, - 3772 - ], - [ - "2017-12-19T15:28:00+0530", - 1729.95, - 1730.35, - 1727.2, - 1730, - 300 - ], - [ - "2017-12-19T15:29:00+0530", - 1730, - 1731, - 1726, - 1726, - 882 - ], - [ - "2017-12-20T09:15:00+0530", - 1726.95, - 1727.05, - 1723, - 1724.35, - 932 - ], - [ - "2017-12-20T09:16:00+0530", - 1724.35, - 1726, - 1722.1, - 1725, - 1601 - ], - [ - "2017-12-20T09:17:00+0530", - 1724.05, - 1726.8, - 1723.8, - 1726.5, - 1063 - ], - [ - "2017-12-20T09:18:00+0530", - 1726.5, - 1726.5, - 1724.3, - 1726, - 261 - ], - [ - "2017-12-20T09:19:00+0530", - 1726, - 1726.45, - 1724.5, - 1725.4, - 1075 - ], - [ - "2017-12-20T09:20:00+0530", - 1724.95, - 1726, - 1724.05, - 1726, - 242 - ], - [ - "2017-12-20T09:21:00+0530", - 1726, - 1728, - 1725.55, - 1728, - 1321 - ], - [ - "2017-12-20T09:22:00+0530", - 1728, - 1729.45, - 1727.6, - 1729.45, - 718 - ], - [ - "2017-12-20T09:23:00+0530", - 1729.45, - 1730, - 1728, - 1728.95, - 253 - ], - [ - "2017-12-20T09:24:00+0530", - 1728.95, - 1731.8, - 1728.95, - 1730.7, - 1442 - ], - [ - "2017-12-20T09:25:00+0530", - 1730.7, - 1733.2, - 1730.7, - 1732.1, - 1718 - ], - [ - "2017-12-20T09:26:00+0530", - 1732.1, - 1739.9, - 1732.1, - 1736.8, - 4137 - ], - [ - "2017-12-20T09:27:00+0530", - 1736.8, - 1737.15, - 1735.9, - 1735.9, - 1235 - ], - [ - "2017-12-20T09:28:00+0530", - 1735.05, - 1736, - 1734.75, - 1734.75, - 497 - ], - [ - "2017-12-20T09:29:00+0530", - 1734.75, - 1736, - 1734, - 1736, - 953 - ], - [ - "2017-12-20T09:30:00+0530", - 1735.15, - 1735.75, - 1734.05, - 1734.25, - 677 - ], - [ - "2017-12-20T09:31:00+0530", - 1734.25, - 1737.05, - 1734.25, - 1736.9, - 1765 - ], - [ - "2017-12-20T09:32:00+0530", - 1736.85, - 1736.85, - 1734.95, - 1736, - 846 - ], - [ - "2017-12-20T09:33:00+0530", - 1736, - 1736.95, - 1736, - 1736.85, - 339 - ], - [ - "2017-12-20T09:34:00+0530", - 1736.85, - 1736.85, - 1735.3, - 1735.3, - 26 - ], - [ - "2017-12-20T09:35:00+0530", - 1735, - 1735.7, - 1734.1, - 1734.1, - 511 - ], - [ - "2017-12-20T09:36:00+0530", - 1734.1, - 1734.85, - 1734, - 1734.85, - 511 - ], - [ - "2017-12-20T09:37:00+0530", - 1734.85, - 1736, - 1734, - 1736, - 595 - ], - [ - "2017-12-20T09:38:00+0530", - 1736, - 1736, - 1735, - 1735.25, - 329 - ], - [ - "2017-12-20T09:39:00+0530", - 1735, - 1736, - 1735, - 1735.25, - 562 - ], - [ - "2017-12-20T09:40:00+0530", - 1735.25, - 1735.95, - 1735, - 1735, - 195 - ], - [ - "2017-12-20T09:41:00+0530", - 1734.85, - 1735.8, - 1734.1, - 1734.1, - 260 - ], - [ - "2017-12-20T09:42:00+0530", - 1734.1, - 1734.5, - 1734, - 1734, - 454 - ], - [ - "2017-12-20T09:43:00+0530", - 1734, - 1734, - 1731.25, - 1733, - 490 - ], - [ - "2017-12-20T09:44:00+0530", - 1733, - 1733.5, - 1733, - 1733.5, - 53 - ], - [ - "2017-12-20T09:45:00+0530", - 1734.45, - 1734.45, - 1731.65, - 1734, - 628 - ], - [ - "2017-12-20T09:46:00+0530", - 1734, - 1734, - 1733.9, - 1733.9, - 446 - ], - [ - "2017-12-20T09:47:00+0530", - 1733.9, - 1734, - 1733, - 1733, - 453 - ], - [ - "2017-12-20T09:48:00+0530", - 1733, - 1734.05, - 1733, - 1734.05, - 163 - ], - [ - "2017-12-20T09:49:00+0530", - 1733.05, - 1733.7, - 1733.05, - 1733.2, - 88 - ], - [ - "2017-12-20T09:50:00+0530", - 1733.2, - 1733.8, - 1733, - 1733.65, - 118 - ], - [ - "2017-12-20T09:51:00+0530", - 1733, - 1733.1, - 1733, - 1733, - 603 - ], - [ - "2017-12-20T09:52:00+0530", - 1733, - 1733.65, - 1733, - 1733, - 125 - ], - [ - "2017-12-20T09:53:00+0530", - 1733, - 1733.1, - 1732.05, - 1732.05, - 557 - ], - [ - "2017-12-20T09:54:00+0530", - 1732.05, - 1732.05, - 1732, - 1732, - 193 - ], - [ - "2017-12-20T09:55:00+0530", - 1732, - 1732, - 1731.05, - 1731.25, - 601 - ], - [ - "2017-12-20T09:56:00+0530", - 1731.25, - 1731.25, - 1730.05, - 1730.05, - 620 - ], - [ - "2017-12-20T09:57:00+0530", - 1730.05, - 1730.5, - 1730, - 1730.5, - 562 - ], - [ - "2017-12-20T09:58:00+0530", - 1730.5, - 1731.05, - 1730.5, - 1731.05, - 146 - ], - [ - "2017-12-20T09:59:00+0530", - 1731.05, - 1732, - 1731, - 1731, - 10 - ], - [ - "2017-12-20T10:00:00+0530", - 1731, - 1732, - 1731, - 1731.05, - 182 - ], - [ - "2017-12-20T10:01:00+0530", - 1731.05, - 1732.85, - 1730.5, - 1732.85, - 340 - ], - [ - "2017-12-20T10:02:00+0530", - 1732.85, - 1732.85, - 1731.8, - 1731.8, - 90 - ], - [ - "2017-12-20T10:03:00+0530", - 1731.8, - 1733, - 1731.25, - 1732.9, - 382 - ], - [ - "2017-12-20T10:04:00+0530", - 1732.9, - 1732.9, - 1732.9, - 1732.9, - 0 - ], - [ - "2017-12-20T10:05:00+0530", - 1732.9, - 1733, - 1732.75, - 1733, - 61 - ], - [ - "2017-12-20T10:06:00+0530", - 1733, - 1733, - 1732.85, - 1732.95, - 50 - ], - [ - "2017-12-20T10:07:00+0530", - 1732.95, - 1732.95, - 1732, - 1732, - 1 - ], - [ - "2017-12-20T10:08:00+0530", - 1732, - 1732, - 1732, - 1732, - 0 - ], - [ - "2017-12-20T10:09:00+0530", - 1732, - 1732.85, - 1732, - 1732, - 20 - ], - [ - "2017-12-20T10:10:00+0530", - 1732, - 1732, - 1732, - 1732, - 75 - ], - [ - "2017-12-20T10:11:00+0530", - 1732, - 1732, - 1731.25, - 1731.25, - 24 - ], - [ - "2017-12-20T10:12:00+0530", - 1731.25, - 1731.95, - 1731.25, - 1731.95, - 102 - ], - [ - "2017-12-20T10:13:00+0530", - 1731.95, - 1731.95, - 1731.9, - 1731.9, - 2 - ], - [ - "2017-12-20T10:14:00+0530", - 1731.9, - 1731.9, - 1731.25, - 1731.25, - 500 - ], - [ - "2017-12-20T10:15:00+0530", - 1731, - 1731, - 1730.5, - 1730.5, - 307 - ], - [ - "2017-12-20T10:16:00+0530", - 1730.5, - 1731.75, - 1730.5, - 1731, - 86 - ], - [ - "2017-12-20T10:17:00+0530", - 1731, - 1731, - 1730.55, - 1730.9, - 164 - ], - [ - "2017-12-20T10:18:00+0530", - 1730.55, - 1731, - 1730.55, - 1731, - 170 - ], - [ - "2017-12-20T10:19:00+0530", - 1731, - 1731, - 1730.55, - 1730.55, - 68 - ], - [ - "2017-12-20T10:20:00+0530", - 1730.55, - 1731.2, - 1730.55, - 1731.05, - 52 - ], - [ - "2017-12-20T10:21:00+0530", - 1731.05, - 1731.5, - 1726.3, - 1728.4, - 4758 - ], - [ - "2017-12-20T10:22:00+0530", - 1728.4, - 1729.45, - 1726.55, - 1729.45, - 548 - ], - [ - "2017-12-20T10:23:00+0530", - 1729.45, - 1729.45, - 1726.75, - 1726.75, - 373 - ], - [ - "2017-12-20T10:24:00+0530", - 1726.75, - 1729, - 1726.65, - 1728.2, - 113 - ], - [ - "2017-12-20T10:25:00+0530", - 1728.2, - 1728.2, - 1727.35, - 1728, - 339 - ], - [ - "2017-12-20T10:26:00+0530", - 1727.5, - 1729, - 1727.5, - 1729, - 249 - ], - [ - "2017-12-20T10:27:00+0530", - 1729, - 1731, - 1728.45, - 1731, - 1062 - ], - [ - "2017-12-20T10:28:00+0530", - 1731, - 1731, - 1729.2, - 1729.4, - 78 - ], - [ - "2017-12-20T10:29:00+0530", - 1729.4, - 1730.15, - 1729.35, - 1730.15, - 164 - ], - [ - "2017-12-20T10:30:00+0530", - 1730.15, - 1730.45, - 1729.6, - 1729.6, - 129 - ], - [ - "2017-12-20T10:31:00+0530", - 1729.6, - 1731, - 1729.6, - 1731, - 261 - ], - [ - "2017-12-20T10:32:00+0530", - 1731, - 1731, - 1729.3, - 1729.35, - 187 - ], - [ - "2017-12-20T10:33:00+0530", - 1729.35, - 1729.6, - 1729.35, - 1729.6, - 61 - ], - [ - "2017-12-20T10:34:00+0530", - 1729.6, - 1729.6, - 1727.3, - 1727.3, - 148 - ], - [ - "2017-12-20T10:35:00+0530", - 1727.3, - 1730.9, - 1727.3, - 1729.65, - 156 - ], - [ - "2017-12-20T10:36:00+0530", - 1729.65, - 1729.65, - 1729.65, - 1729.65, - 0 - ], - [ - "2017-12-20T10:37:00+0530", - 1729.65, - 1729.65, - 1728, - 1728, - 204 - ], - [ - "2017-12-20T10:38:00+0530", - 1728, - 1729.1, - 1728, - 1728.65, - 163 - ], - [ - "2017-12-20T10:39:00+0530", - 1728.65, - 1728.65, - 1727, - 1727.85, - 460 - ], - [ - "2017-12-20T10:40:00+0530", - 1727.85, - 1727.85, - 1726.65, - 1726.65, - 583 - ], - [ - "2017-12-20T10:41:00+0530", - 1726.65, - 1726.9, - 1726.2, - 1726.2, - 561 - ], - [ - "2017-12-20T10:42:00+0530", - 1726.15, - 1726.9, - 1726.15, - 1726.55, - 124 - ], - [ - "2017-12-20T10:43:00+0530", - 1726.75, - 1726.75, - 1724.45, - 1725, - 1114 - ], - [ - "2017-12-20T10:44:00+0530", - 1725, - 1725, - 1724.8, - 1724.8, - 570 - ], - [ - "2017-12-20T10:45:00+0530", - 1724.8, - 1726.25, - 1724.7, - 1724.7, - 1373 - ], - [ - "2017-12-20T10:46:00+0530", - 1724.7, - 1725.7, - 1724.7, - 1725.05, - 99 - ], - [ - "2017-12-20T10:47:00+0530", - 1725.05, - 1725.95, - 1725.05, - 1725.95, - 77 - ], - [ - "2017-12-20T10:48:00+0530", - 1725.95, - 1725.95, - 1725.3, - 1725.3, - 22 - ], - [ - "2017-12-20T10:49:00+0530", - 1725.6, - 1725.95, - 1725.35, - 1725.35, - 45 - ], - [ - "2017-12-20T10:50:00+0530", - 1725.35, - 1725.95, - 1725.35, - 1725.9, - 72 - ], - [ - "2017-12-20T10:51:00+0530", - 1725.9, - 1725.9, - 1725.9, - 1725.9, - 0 - ], - [ - "2017-12-20T10:52:00+0530", - 1725.85, - 1725.95, - 1725.85, - 1725.95, - 29 - ], - [ - "2017-12-20T10:53:00+0530", - 1725.95, - 1725.95, - 1725, - 1725.4, - 207 - ], - [ - "2017-12-20T10:54:00+0530", - 1725.4, - 1725.4, - 1724.6, - 1725, - 405 - ], - [ - "2017-12-20T10:55:00+0530", - 1725, - 1725, - 1724.65, - 1725, - 33 - ], - [ - "2017-12-20T10:56:00+0530", - 1724.7, - 1724.7, - 1724.65, - 1724.65, - 50 - ], - [ - "2017-12-20T10:57:00+0530", - 1724.65, - 1724.9, - 1724.65, - 1724.9, - 3 - ], - [ - "2017-12-20T10:58:00+0530", - 1724.9, - 1725, - 1724.9, - 1725, - 399 - ], - [ - "2017-12-20T10:59:00+0530", - 1725, - 1725, - 1724.9, - 1724.9, - 6 - ], - [ - "2017-12-20T11:00:00+0530", - 1724.9, - 1724.9, - 1724.6, - 1724.8, - 128 - ], - [ - "2017-12-20T11:01:00+0530", - 1724.8, - 1725, - 1724.65, - 1725, - 624 - ], - [ - "2017-12-20T11:02:00+0530", - 1725, - 1727, - 1725, - 1727, - 355 - ], - [ - "2017-12-20T11:03:00+0530", - 1727, - 1728.2, - 1726.75, - 1726.75, - 752 - ], - [ - "2017-12-20T11:04:00+0530", - 1726.75, - 1727.6, - 1726.75, - 1727.6, - 33 - ], - [ - "2017-12-20T11:05:00+0530", - 1727.6, - 1728, - 1727.6, - 1727.6, - 685 - ], - [ - "2017-12-20T11:06:00+0530", - 1727.6, - 1728.15, - 1727.6, - 1727.8, - 4 - ], - [ - "2017-12-20T11:07:00+0530", - 1727.8, - 1728.15, - 1727.6, - 1728.15, - 209 - ], - [ - "2017-12-20T11:08:00+0530", - 1728.15, - 1728.15, - 1726.75, - 1726.8, - 99 - ], - [ - "2017-12-20T11:09:00+0530", - 1726.8, - 1727.6, - 1726.3, - 1726.3, - 55 - ], - [ - "2017-12-20T11:10:00+0530", - 1726.3, - 1727.75, - 1726.3, - 1727.75, - 40 - ], - [ - "2017-12-20T11:11:00+0530", - 1727.75, - 1727.75, - 1725.05, - 1725.05, - 769 - ], - [ - "2017-12-20T11:12:00+0530", - 1725.05, - 1727.75, - 1725.05, - 1726.85, - 186 - ], - [ - "2017-12-20T11:13:00+0530", - 1726.85, - 1727.65, - 1726.8, - 1726.85, - 48 - ], - [ - "2017-12-20T11:14:00+0530", - 1726.85, - 1728.2, - 1725.6, - 1728.2, - 288 - ], - [ - "2017-12-20T11:15:00+0530", - 1728.2, - 1729.75, - 1726.85, - 1726.85, - 350 - ], - [ - "2017-12-20T11:16:00+0530", - 1726.85, - 1726.85, - 1726.85, - 1726.85, - 0 - ], - [ - "2017-12-20T11:17:00+0530", - 1726.85, - 1727.5, - 1726.5, - 1727.5, - 11 - ], - [ - "2017-12-20T11:18:00+0530", - 1727.5, - 1727.5, - 1726.6, - 1726.6, - 44 - ], - [ - "2017-12-20T11:19:00+0530", - 1726.6, - 1727.5, - 1726.6, - 1727.5, - 5 - ], - [ - "2017-12-20T11:20:00+0530", - 1726.75, - 1727, - 1726.75, - 1727, - 19 - ], - [ - "2017-12-20T11:21:00+0530", - 1727, - 1727.4, - 1727, - 1727, - 128 - ], - [ - "2017-12-20T11:22:00+0530", - 1727, - 1727, - 1726.1, - 1726.1, - 501 - ], - [ - "2017-12-20T11:23:00+0530", - 1726.1, - 1726.1, - 1724, - 1724.1, - 1129 - ], - [ - "2017-12-20T11:24:00+0530", - 1724.15, - 1724.85, - 1724.15, - 1724.65, - 413 - ], - [ - "2017-12-20T11:25:00+0530", - 1724.65, - 1724.65, - 1723.25, - 1723.45, - 976 - ], - [ - "2017-12-20T11:26:00+0530", - 1723.45, - 1723.9, - 1722.5, - 1722.5, - 1370 - ], - [ - "2017-12-20T11:27:00+0530", - 1722, - 1725.45, - 1721.5, - 1724.95, - 1484 - ], - [ - "2017-12-20T11:28:00+0530", - 1724.95, - 1724.95, - 1722, - 1722, - 348 - ], - [ - "2017-12-20T11:29:00+0530", - 1722, - 1724.15, - 1722, - 1724.15, - 102 - ], - [ - "2017-12-20T11:30:00+0530", - 1724.15, - 1725.7, - 1724.15, - 1725.25, - 600 - ], - [ - "2017-12-20T11:31:00+0530", - 1725.25, - 1725.4, - 1723.95, - 1724, - 1061 - ], - [ - "2017-12-20T11:32:00+0530", - 1724, - 1725.55, - 1724, - 1725, - 388 - ], - [ - "2017-12-20T11:33:00+0530", - 1725, - 1727, - 1725, - 1726.45, - 861 - ], - [ - "2017-12-20T11:34:00+0530", - 1726.45, - 1727, - 1726.4, - 1726.4, - 170 - ], - [ - "2017-12-20T11:35:00+0530", - 1726.4, - 1726.4, - 1726.25, - 1726.3, - 14 - ], - [ - "2017-12-20T11:36:00+0530", - 1726.3, - 1728, - 1726.3, - 1727.65, - 341 - ], - [ - "2017-12-20T11:37:00+0530", - 1727.65, - 1727.65, - 1726.3, - 1727.35, - 113 - ], - [ - "2017-12-20T11:38:00+0530", - 1727.35, - 1728, - 1726.6, - 1726.6, - 290 - ], - [ - "2017-12-20T11:39:00+0530", - 1726.6, - 1726.6, - 1726.6, - 1726.6, - 0 - ], - [ - "2017-12-20T11:40:00+0530", - 1726.6, - 1726.6, - 1726.6, - 1726.6, - 0 - ], - [ - "2017-12-20T11:41:00+0530", - 1726.3, - 1726.4, - 1726.3, - 1726.4, - 72 - ], - [ - "2017-12-20T11:42:00+0530", - 1726.4, - 1728.35, - 1726.4, - 1728.35, - 324 - ], - [ - "2017-12-20T11:43:00+0530", - 1728.35, - 1728.6, - 1728.35, - 1728.55, - 200 - ], - [ - "2017-12-20T11:44:00+0530", - 1728.55, - 1729.9, - 1728.5, - 1728.5, - 235 - ], - [ - "2017-12-20T11:45:00+0530", - 1728.5, - 1728.5, - 1728.5, - 1728.5, - 20 - ], - [ - "2017-12-20T11:46:00+0530", - 1728.5, - 1729.4, - 1728, - 1728, - 195 - ], - [ - "2017-12-20T11:47:00+0530", - 1728, - 1728.1, - 1728, - 1728.1, - 9 - ], - [ - "2017-12-20T11:48:00+0530", - 1728.1, - 1728.9, - 1728.1, - 1728.15, - 66 - ], - [ - "2017-12-20T11:49:00+0530", - 1728.15, - 1728.15, - 1728.1, - 1728.1, - 5 - ], - [ - "2017-12-20T11:50:00+0530", - 1728, - 1728, - 1726.4, - 1728, - 1027 - ], - [ - "2017-12-20T11:51:00+0530", - 1728, - 1729, - 1728, - 1728.35, - 10 - ], - [ - "2017-12-20T11:52:00+0530", - 1728.35, - 1728.35, - 1728.35, - 1728.35, - 8 - ], - [ - "2017-12-20T11:53:00+0530", - 1728.35, - 1728.35, - 1728.35, - 1728.35, - 87 - ], - [ - "2017-12-20T11:54:00+0530", - 1728.35, - 1728.35, - 1728.35, - 1728.35, - 0 - ], - [ - "2017-12-20T11:55:00+0530", - 1728.35, - 1729.4, - 1727.65, - 1727.65, - 196 - ], - [ - "2017-12-20T11:56:00+0530", - 1727.65, - 1729.4, - 1727.65, - 1729.1, - 125 - ], - [ - "2017-12-20T11:57:00+0530", - 1729.1, - 1729.1, - 1729.1, - 1729.1, - 0 - ], - [ - "2017-12-20T11:58:00+0530", - 1729.1, - 1729.1, - 1728.85, - 1729.1, - 101 - ], - [ - "2017-12-20T11:59:00+0530", - 1729.1, - 1729.1, - 1728.05, - 1728.05, - 25 - ], - [ - "2017-12-20T12:00:00+0530", - 1728.05, - 1728.05, - 1728, - 1728, - 118 - ], - [ - "2017-12-20T12:01:00+0530", - 1728, - 1728, - 1727.7, - 1727.7, - 51 - ], - [ - "2017-12-20T12:02:00+0530", - 1727.7, - 1727.7, - 1727.7, - 1727.7, - 1 - ], - [ - "2017-12-20T12:03:00+0530", - 1727.7, - 1729, - 1727.7, - 1729, - 245 - ], - [ - "2017-12-20T12:04:00+0530", - 1729, - 1729, - 1727, - 1727, - 150 - ], - [ - "2017-12-20T12:05:00+0530", - 1727, - 1727, - 1727, - 1727, - 0 - ], - [ - "2017-12-20T12:06:00+0530", - 1727, - 1727, - 1727, - 1727, - 0 - ], - [ - "2017-12-20T12:07:00+0530", - 1727, - 1728.25, - 1727, - 1728.25, - 50 - ], - [ - "2017-12-20T12:08:00+0530", - 1728.25, - 1728.25, - 1728.25, - 1728.25, - 0 - ], - [ - "2017-12-20T12:09:00+0530", - 1728.25, - 1728.25, - 1727.4, - 1727.4, - 58 - ], - [ - "2017-12-20T12:10:00+0530", - 1727.4, - 1727.4, - 1726.65, - 1726.65, - 228 - ], - [ - "2017-12-20T12:11:00+0530", - 1726.65, - 1727, - 1726.65, - 1726.9, - 5 - ], - [ - "2017-12-20T12:12:00+0530", - 1726.9, - 1726.9, - 1725.15, - 1725.15, - 147 - ], - [ - "2017-12-20T12:13:00+0530", - 1725.15, - 1725.15, - 1725, - 1725, - 323 - ], - [ - "2017-12-20T12:14:00+0530", - 1725, - 1726.1, - 1725, - 1726.1, - 231 - ], - [ - "2017-12-20T12:15:00+0530", - 1726.1, - 1726.8, - 1725.15, - 1726.8, - 83 - ], - [ - "2017-12-20T12:16:00+0530", - 1726.8, - 1726.8, - 1726.7, - 1726.7, - 14 - ], - [ - "2017-12-20T12:17:00+0530", - 1726.7, - 1726.7, - 1725.8, - 1725.8, - 82 - ], - [ - "2017-12-20T12:18:00+0530", - 1725.8, - 1725.8, - 1725.8, - 1725.8, - 22 - ], - [ - "2017-12-20T12:19:00+0530", - 1725.85, - 1725.85, - 1725.3, - 1725.3, - 51 - ], - [ - "2017-12-20T12:20:00+0530", - 1725.3, - 1725.3, - 1724.1, - 1724.1, - 231 - ], - [ - "2017-12-20T12:21:00+0530", - 1724.1, - 1724.95, - 1723.15, - 1724.95, - 200 - ], - [ - "2017-12-20T12:22:00+0530", - 1724.95, - 1724.95, - 1724.25, - 1724.25, - 1 - ], - [ - "2017-12-20T12:23:00+0530", - 1724.25, - 1724.6, - 1724, - 1724.5, - 117 - ], - [ - "2017-12-20T12:24:00+0530", - 1724, - 1724.6, - 1724, - 1724.6, - 182 - ], - [ - "2017-12-20T12:25:00+0530", - 1724, - 1724.45, - 1723, - 1723, - 155 - ], - [ - "2017-12-20T12:26:00+0530", - 1723, - 1724.35, - 1723, - 1723.3, - 82 - ], - [ - "2017-12-20T12:27:00+0530", - 1723.3, - 1723.7, - 1723, - 1723, - 105 - ], - [ - "2017-12-20T12:28:00+0530", - 1723, - 1723.3, - 1722.5, - 1723.3, - 172 - ], - [ - "2017-12-20T12:29:00+0530", - 1723.3, - 1723.3, - 1722, - 1722.5, - 301 - ], - [ - "2017-12-20T12:30:00+0530", - 1722.5, - 1722.5, - 1721.55, - 1721.6, - 549 - ], - [ - "2017-12-20T12:31:00+0530", - 1721.6, - 1723.9, - 1721.6, - 1723.9, - 633 - ], - [ - "2017-12-20T12:32:00+0530", - 1724, - 1727.3, - 1723.9, - 1726.05, - 752 - ], - [ - "2017-12-20T12:33:00+0530", - 1725.05, - 1725.05, - 1722.45, - 1724, - 178 - ], - [ - "2017-12-20T12:34:00+0530", - 1724, - 1724.1, - 1724, - 1724.1, - 5 - ], - [ - "2017-12-20T12:35:00+0530", - 1724.1, - 1724.95, - 1724.1, - 1724.3, - 111 - ], - [ - "2017-12-20T12:36:00+0530", - 1724.3, - 1724.95, - 1724.3, - 1724.9, - 40 - ], - [ - "2017-12-20T12:37:00+0530", - 1724.9, - 1726.1, - 1724.9, - 1726.1, - 979 - ], - [ - "2017-12-20T12:38:00+0530", - 1726.1, - 1727, - 1726.1, - 1727, - 100 - ], - [ - "2017-12-20T12:39:00+0530", - 1727, - 1727, - 1724.55, - 1726.5, - 1201 - ], - [ - "2017-12-20T12:40:00+0530", - 1726.5, - 1726.5, - 1726.5, - 1726.5, - 0 - ], - [ - "2017-12-20T12:41:00+0530", - 1726.5, - 1726.5, - 1724.55, - 1726.05, - 10 - ], - [ - "2017-12-20T12:42:00+0530", - 1726.05, - 1726.05, - 1726.05, - 1726.05, - 0 - ], - [ - "2017-12-20T12:43:00+0530", - 1726.05, - 1726.05, - 1724.55, - 1724.55, - 78 - ], - [ - "2017-12-20T12:44:00+0530", - 1724.55, - 1725, - 1724.55, - 1725, - 30 - ], - [ - "2017-12-20T12:45:00+0530", - 1725, - 1725.7, - 1724.2, - 1725.6, - 82 - ], - [ - "2017-12-20T12:46:00+0530", - 1725.6, - 1725.8, - 1725.6, - 1725.7, - 35 - ], - [ - "2017-12-20T12:47:00+0530", - 1725.7, - 1725.7, - 1725.65, - 1725.65, - 16 - ], - [ - "2017-12-20T12:48:00+0530", - 1725.65, - 1727.1, - 1725.65, - 1727.1, - 660 - ], - [ - "2017-12-20T12:49:00+0530", - 1725.8, - 1727.2, - 1725.8, - 1726.9, - 353 - ], - [ - "2017-12-20T12:50:00+0530", - 1726.9, - 1726.9, - 1725.95, - 1725.95, - 66 - ], - [ - "2017-12-20T12:51:00+0530", - 1725.95, - 1725.95, - 1725.5, - 1725.5, - 62 - ], - [ - "2017-12-20T12:52:00+0530", - 1726.85, - 1726.85, - 1726.85, - 1726.85, - 30 - ], - [ - "2017-12-20T12:53:00+0530", - 1726.85, - 1726.85, - 1725.5, - 1726, - 21 - ], - [ - "2017-12-20T12:54:00+0530", - 1726, - 1726, - 1725.4, - 1725.4, - 1 - ], - [ - "2017-12-20T12:55:00+0530", - 1725.4, - 1725.4, - 1725.1, - 1725.1, - 10 - ], - [ - "2017-12-20T12:56:00+0530", - 1725.1, - 1725.1, - 1724.35, - 1724.45, - 149 - ], - [ - "2017-12-20T12:57:00+0530", - 1724.45, - 1725.55, - 1724.25, - 1725.55, - 12 - ], - [ - "2017-12-20T12:58:00+0530", - 1725.55, - 1725.55, - 1725.55, - 1725.55, - 0 - ], - [ - "2017-12-20T12:59:00+0530", - 1725.55, - 1725.55, - 1725.55, - 1725.55, - 0 - ], - [ - "2017-12-20T13:00:00+0530", - 1725.55, - 1725.55, - 1724.65, - 1724.65, - 11 - ], - [ - "2017-12-20T13:01:00+0530", - 1724.65, - 1724.65, - 1724.65, - 1724.65, - 0 - ], - [ - "2017-12-20T13:02:00+0530", - 1724.65, - 1724.85, - 1724.65, - 1724.85, - 58 - ], - [ - "2017-12-20T13:03:00+0530", - 1724.85, - 1724.95, - 1724.85, - 1724.95, - 9 - ], - [ - "2017-12-20T13:04:00+0530", - 1724.95, - 1724.95, - 1724.95, - 1724.95, - 0 - ], - [ - "2017-12-20T13:05:00+0530", - 1724.95, - 1725, - 1724.65, - 1724.65, - 85 - ], - [ - "2017-12-20T13:06:00+0530", - 1724.65, - 1724.65, - 1724.2, - 1724.2, - 468 - ], - [ - "2017-12-20T13:07:00+0530", - 1724.2, - 1726.05, - 1724.2, - 1725, - 81 - ], - [ - "2017-12-20T13:08:00+0530", - 1725, - 1727, - 1725, - 1726.4, - 181 - ], - [ - "2017-12-20T13:09:00+0530", - 1726.4, - 1726.4, - 1725.4, - 1725.4, - 1 - ], - [ - "2017-12-20T13:10:00+0530", - 1725.4, - 1725.4, - 1725.05, - 1725.05, - 31 - ], - [ - "2017-12-20T13:11:00+0530", - 1725.05, - 1725.05, - 1725.05, - 1725.05, - 0 - ], - [ - "2017-12-20T13:12:00+0530", - 1725.05, - 1725.1, - 1725.05, - 1725.1, - 30 - ], - [ - "2017-12-20T13:13:00+0530", - 1725.1, - 1726, - 1725.1, - 1725.2, - 181 - ], - [ - "2017-12-20T13:14:00+0530", - 1725.2, - 1725.2, - 1725.2, - 1725.2, - 0 - ], - [ - "2017-12-20T13:15:00+0530", - 1725.2, - 1725.2, - 1725.2, - 1725.2, - 22 - ], - [ - "2017-12-20T13:16:00+0530", - 1725.2, - 1726.35, - 1725.2, - 1726.35, - 35 - ], - [ - "2017-12-20T13:17:00+0530", - 1726.35, - 1726.35, - 1726.35, - 1726.35, - 50 - ], - [ - "2017-12-20T13:18:00+0530", - 1726.35, - 1726.35, - 1726.35, - 1726.35, - 0 - ], - [ - "2017-12-20T13:19:00+0530", - 1726.35, - 1727, - 1725.55, - 1727, - 195 - ], - [ - "2017-12-20T13:20:00+0530", - 1727, - 1727, - 1725.7, - 1725.7, - 50 - ], - [ - "2017-12-20T13:21:00+0530", - 1725.7, - 1726.45, - 1724.65, - 1724.75, - 70 - ], - [ - "2017-12-20T13:22:00+0530", - 1724.75, - 1724.85, - 1724.2, - 1724.25, - 328 - ], - [ - "2017-12-20T13:23:00+0530", - 1724.25, - 1726.9, - 1724.2, - 1726.9, - 180 - ], - [ - "2017-12-20T13:24:00+0530", - 1726.9, - 1726.9, - 1726.9, - 1726.9, - 0 - ], - [ - "2017-12-20T13:25:00+0530", - 1726.9, - 1726.9, - 1726, - 1726.9, - 224 - ], - [ - "2017-12-20T13:26:00+0530", - 1726.9, - 1726.9, - 1726, - 1726.35, - 44 - ], - [ - "2017-12-20T13:27:00+0530", - 1726.35, - 1726.35, - 1726.35, - 1726.35, - 20 - ], - [ - "2017-12-20T13:28:00+0530", - 1726.35, - 1726.35, - 1726.35, - 1726.35, - 77 - ], - [ - "2017-12-20T13:29:00+0530", - 1726.35, - 1726.7, - 1726.35, - 1726.7, - 1 - ], - [ - "2017-12-20T13:30:00+0530", - 1726.7, - 1726.95, - 1726.1, - 1726.95, - 63 - ], - [ - "2017-12-20T13:31:00+0530", - 1726.95, - 1726.95, - 1726.1, - 1726.1, - 153 - ], - [ - "2017-12-20T13:32:00+0530", - 1726.1, - 1726.1, - 1724.15, - 1724.15, - 534 - ], - [ - "2017-12-20T13:33:00+0530", - 1724.15, - 1724.15, - 1723.05, - 1723.3, - 395 - ], - [ - "2017-12-20T13:34:00+0530", - 1723.3, - 1725.5, - 1723.3, - 1724.05, - 212 - ], - [ - "2017-12-20T13:35:00+0530", - 1724.05, - 1726, - 1724.05, - 1726, - 335 - ], - [ - "2017-12-20T13:36:00+0530", - 1726, - 1726, - 1726, - 1726, - 0 - ], - [ - "2017-12-20T13:37:00+0530", - 1726, - 1726, - 1725.4, - 1726, - 11 - ], - [ - "2017-12-20T13:38:00+0530", - 1725.65, - 1727.45, - 1725, - 1727.45, - 528 - ], - [ - "2017-12-20T13:39:00+0530", - 1727.45, - 1727.45, - 1724.65, - 1726, - 172 - ], - [ - "2017-12-20T13:40:00+0530", - 1726, - 1726, - 1725.6, - 1725.6, - 1 - ], - [ - "2017-12-20T13:41:00+0530", - 1725.6, - 1726.3, - 1725.6, - 1725.65, - 11 - ], - [ - "2017-12-20T13:42:00+0530", - 1725.65, - 1726, - 1725.2, - 1725.2, - 127 - ], - [ - "2017-12-20T13:43:00+0530", - 1725.2, - 1726.15, - 1725.15, - 1726.15, - 128 - ], - [ - "2017-12-20T13:44:00+0530", - 1726.15, - 1726.35, - 1725.3, - 1726.35, - 28 - ], - [ - "2017-12-20T13:45:00+0530", - 1726.35, - 1726.35, - 1726, - 1726, - 170 - ], - [ - "2017-12-20T13:46:00+0530", - 1726, - 1726, - 1726, - 1726, - 0 - ], - [ - "2017-12-20T13:47:00+0530", - 1726, - 1727.05, - 1726, - 1727.05, - 177 - ], - [ - "2017-12-20T13:48:00+0530", - 1727.05, - 1731, - 1726.45, - 1731, - 3021 - ], - [ - "2017-12-20T13:49:00+0530", - 1731, - 1732, - 1729, - 1729, - 807 - ], - [ - "2017-12-20T13:50:00+0530", - 1729, - 1732, - 1728.6, - 1730.35, - 3980 - ], - [ - "2017-12-20T13:51:00+0530", - 1730.35, - 1731.3, - 1730, - 1731.3, - 356 - ], - [ - "2017-12-20T13:52:00+0530", - 1731.3, - 1731.3, - 1729.55, - 1730, - 578 - ], - [ - "2017-12-20T13:53:00+0530", - 1730, - 1730.05, - 1729, - 1730.05, - 665 - ], - [ - "2017-12-20T13:54:00+0530", - 1730.05, - 1730.1, - 1729.05, - 1729.05, - 245 - ], - [ - "2017-12-20T13:55:00+0530", - 1729.05, - 1730.45, - 1729, - 1730.45, - 385 - ], - [ - "2017-12-20T13:56:00+0530", - 1730.45, - 1730.45, - 1728, - 1728, - 77 - ], - [ - "2017-12-20T13:57:00+0530", - 1728, - 1729, - 1728, - 1728, - 119 - ], - [ - "2017-12-20T13:58:00+0530", - 1728, - 1729.85, - 1728, - 1729.85, - 336 - ], - [ - "2017-12-20T13:59:00+0530", - 1729.85, - 1729.95, - 1729.05, - 1729.9, - 115 - ], - [ - "2017-12-20T14:00:00+0530", - 1729.9, - 1730, - 1729.15, - 1729.15, - 500 - ], - [ - "2017-12-20T14:01:00+0530", - 1729.15, - 1730.05, - 1729.15, - 1730.05, - 189 - ], - [ - "2017-12-20T14:02:00+0530", - 1730.05, - 1730.9, - 1729.9, - 1729.9, - 166 - ], - [ - "2017-12-20T14:03:00+0530", - 1730.5, - 1730.5, - 1730, - 1730, - 205 - ], - [ - "2017-12-20T14:04:00+0530", - 1730, - 1730, - 1728.5, - 1728.5, - 170 - ], - [ - "2017-12-20T14:05:00+0530", - 1728.5, - 1728.5, - 1727.8, - 1728.5, - 264 - ], - [ - "2017-12-20T14:06:00+0530", - 1728.5, - 1728.65, - 1728.1, - 1728.65, - 26 - ], - [ - "2017-12-20T14:07:00+0530", - 1728.65, - 1730, - 1728, - 1728, - 538 - ], - [ - "2017-12-20T14:08:00+0530", - 1728, - 1728, - 1727, - 1727, - 41 - ], - [ - "2017-12-20T14:09:00+0530", - 1727, - 1727, - 1725, - 1725, - 858 - ], - [ - "2017-12-20T14:10:00+0530", - 1725, - 1725.95, - 1725, - 1725.1, - 195 - ], - [ - "2017-12-20T14:11:00+0530", - 1725.1, - 1726, - 1725.1, - 1726, - 367 - ], - [ - "2017-12-20T14:12:00+0530", - 1726, - 1732, - 1726, - 1731, - 2358 - ], - [ - "2017-12-20T14:13:00+0530", - 1731, - 1732, - 1730.15, - 1730.15, - 246 - ], - [ - "2017-12-20T14:14:00+0530", - 1730.15, - 1730.15, - 1727.9, - 1728.35, - 225 - ], - [ - "2017-12-20T14:15:00+0530", - 1728.35, - 1728.35, - 1728, - 1728, - 25 - ], - [ - "2017-12-20T14:16:00+0530", - 1728, - 1728, - 1727.7, - 1727.9, - 165 - ], - [ - "2017-12-20T14:17:00+0530", - 1727.9, - 1728.1, - 1727.5, - 1728.1, - 406 - ], - [ - "2017-12-20T14:18:00+0530", - 1728.1, - 1728.65, - 1727.8, - 1728.65, - 70 - ], - [ - "2017-12-20T14:19:00+0530", - 1728.65, - 1728.65, - 1727, - 1727, - 131 - ], - [ - "2017-12-20T14:20:00+0530", - 1727, - 1728.1, - 1726.2, - 1728.1, - 201 - ], - [ - "2017-12-20T14:21:00+0530", - 1728.1, - 1728.1, - 1728.1, - 1728.1, - 0 - ], - [ - "2017-12-20T14:22:00+0530", - 1728.1, - 1728.1, - 1728.1, - 1728.1, - 0 - ], - [ - "2017-12-20T14:23:00+0530", - 1727.1, - 1727.2, - 1727.1, - 1727.2, - 137 - ], - [ - "2017-12-20T14:24:00+0530", - 1727.2, - 1728, - 1727.2, - 1728, - 50 - ], - [ - "2017-12-20T14:25:00+0530", - 1728, - 1728.95, - 1728, - 1728.9, - 59 - ], - [ - "2017-12-20T14:26:00+0530", - 1728.9, - 1728.9, - 1728.1, - 1728.3, - 131 - ], - [ - "2017-12-20T14:27:00+0530", - 1728.3, - 1728.9, - 1728.3, - 1728.9, - 10 - ], - [ - "2017-12-20T14:28:00+0530", - 1728.9, - 1728.9, - 1728.2, - 1728.2, - 44 - ], - [ - "2017-12-20T14:29:00+0530", - 1728.2, - 1729.35, - 1728.2, - 1728.6, - 155 - ], - [ - "2017-12-20T14:30:00+0530", - 1728.6, - 1729.65, - 1728.6, - 1729.65, - 112 - ], - [ - "2017-12-20T14:31:00+0530", - 1729.65, - 1729.65, - 1728.75, - 1729.3, - 28 - ], - [ - "2017-12-20T14:32:00+0530", - 1729.3, - 1729.3, - 1729, - 1729, - 54 - ], - [ - "2017-12-20T14:33:00+0530", - 1729, - 1729.05, - 1729, - 1729.05, - 19 - ], - [ - "2017-12-20T14:34:00+0530", - 1729.05, - 1729.6, - 1729.05, - 1729.35, - 187 - ], - [ - "2017-12-20T14:35:00+0530", - 1729.35, - 1729.35, - 1728.1, - 1728.1, - 164 - ], - [ - "2017-12-20T14:36:00+0530", - 1728.1, - 1728.1, - 1728, - 1728, - 15 - ], - [ - "2017-12-20T14:37:00+0530", - 1728, - 1728.2, - 1728, - 1728.2, - 26 - ], - [ - "2017-12-20T14:38:00+0530", - 1728, - 1729.45, - 1728, - 1729.45, - 157 - ], - [ - "2017-12-20T14:39:00+0530", - 1729.45, - 1729.45, - 1728.55, - 1729.2, - 288 - ], - [ - "2017-12-20T14:40:00+0530", - 1729.2, - 1729.95, - 1729, - 1729.95, - 620 - ], - [ - "2017-12-20T14:41:00+0530", - 1729.95, - 1730, - 1729.45, - 1729.45, - 341 - ], - [ - "2017-12-20T14:42:00+0530", - 1729.45, - 1729.45, - 1729.05, - 1729.05, - 163 - ], - [ - "2017-12-20T14:43:00+0530", - 1729.05, - 1729.05, - 1729, - 1729, - 60 - ], - [ - "2017-12-20T14:44:00+0530", - 1729, - 1729.4, - 1728.6, - 1729.4, - 196 - ], - [ - "2017-12-20T14:45:00+0530", - 1729.4, - 1734.3, - 1729.4, - 1734.3, - 2078 - ], - [ - "2017-12-20T14:46:00+0530", - 1733.4, - 1735, - 1733.25, - 1735, - 1953 - ], - [ - "2017-12-20T14:47:00+0530", - 1735, - 1735, - 1733.8, - 1733.8, - 954 - ], - [ - "2017-12-20T14:48:00+0530", - 1733.8, - 1734.9, - 1733, - 1733, - 124 - ], - [ - "2017-12-20T14:49:00+0530", - 1733, - 1734.85, - 1732.9, - 1733.75, - 414 - ], - [ - "2017-12-20T14:50:00+0530", - 1733.75, - 1733.75, - 1732, - 1732.5, - 650 - ], - [ - "2017-12-20T14:51:00+0530", - 1732.5, - 1734.15, - 1732.5, - 1734.15, - 38 - ], - [ - "2017-12-20T14:52:00+0530", - 1734.15, - 1734.15, - 1732.8, - 1732.8, - 20 - ], - [ - "2017-12-20T14:53:00+0530", - 1732, - 1732.75, - 1732, - 1732.15, - 154 - ], - [ - "2017-12-20T14:54:00+0530", - 1732.15, - 1732.6, - 1732, - 1732.6, - 460 - ], - [ - "2017-12-20T14:55:00+0530", - 1732.6, - 1732.65, - 1732, - 1732, - 510 - ], - [ - "2017-12-20T14:56:00+0530", - 1732, - 1732.95, - 1731.05, - 1732.5, - 226 - ], - [ - "2017-12-20T14:57:00+0530", - 1732.5, - 1732.5, - 1732.1, - 1732.1, - 234 - ], - [ - "2017-12-20T14:58:00+0530", - 1732.1, - 1732.5, - 1732.1, - 1732.1, - 148 - ], - [ - "2017-12-20T14:59:00+0530", - 1732.1, - 1732.1, - 1732, - 1732.05, - 169 - ], - [ - "2017-12-20T15:00:00+0530", - 1732.1, - 1732.1, - 1729, - 1729, - 803 - ], - [ - "2017-12-20T15:01:00+0530", - 1729, - 1730.8, - 1729, - 1729, - 449 - ], - [ - "2017-12-20T15:02:00+0530", - 1729, - 1729, - 1729, - 1729, - 392 - ], - [ - "2017-12-20T15:03:00+0530", - 1729, - 1729, - 1727.1, - 1728, - 294 - ], - [ - "2017-12-20T15:04:00+0530", - 1728, - 1728, - 1726.55, - 1727.9, - 380 - ], - [ - "2017-12-20T15:05:00+0530", - 1727.9, - 1727.9, - 1727.05, - 1727.05, - 4 - ], - [ - "2017-12-20T15:06:00+0530", - 1727.05, - 1727.05, - 1726.6, - 1726.6, - 69 - ], - [ - "2017-12-20T15:07:00+0530", - 1726.6, - 1730.7, - 1725.9, - 1730.7, - 2740 - ], - [ - "2017-12-20T15:08:00+0530", - 1730.8, - 1731.95, - 1730.15, - 1730.15, - 924 - ], - [ - "2017-12-20T15:09:00+0530", - 1730.15, - 1730.75, - 1729.15, - 1729.95, - 795 - ], - [ - "2017-12-20T15:10:00+0530", - 1729.95, - 1730, - 1729.25, - 1729.25, - 443 - ], - [ - "2017-12-20T15:11:00+0530", - 1729.25, - 1729.9, - 1727, - 1728.5, - 853 - ], - [ - "2017-12-20T15:12:00+0530", - 1728.5, - 1729.3, - 1727.85, - 1727.85, - 559 - ], - [ - "2017-12-20T15:13:00+0530", - 1727.7, - 1727.7, - 1726.65, - 1727, - 800 - ], - [ - "2017-12-20T15:14:00+0530", - 1727, - 1727.5, - 1726.2, - 1726.2, - 219 - ], - [ - "2017-12-20T15:15:00+0530", - 1726.2, - 1727.95, - 1725.4, - 1727.95, - 803 - ], - [ - "2017-12-20T15:16:00+0530", - 1727.95, - 1727.95, - 1725.8, - 1726.9, - 549 - ], - [ - "2017-12-20T15:17:00+0530", - 1726.9, - 1729, - 1726.7, - 1728.5, - 542 - ], - [ - "2017-12-20T15:18:00+0530", - 1728.5, - 1728.55, - 1727, - 1728.5, - 829 - ], - [ - "2017-12-20T15:19:00+0530", - 1727.7, - 1729.1, - 1726.1, - 1727.85, - 1565 - ], - [ - "2017-12-20T15:20:00+0530", - 1727.85, - 1729, - 1727.85, - 1728.6, - 753 - ], - [ - "2017-12-20T15:21:00+0530", - 1728.6, - 1730, - 1725.85, - 1726.05, - 1541 - ], - [ - "2017-12-20T15:22:00+0530", - 1726.05, - 1727.5, - 1724, - 1724.65, - 1001 - ], - [ - "2017-12-20T15:23:00+0530", - 1724.65, - 1726.45, - 1723.8, - 1726.45, - 521 - ], - [ - "2017-12-20T15:24:00+0530", - 1726.45, - 1726.45, - 1723.95, - 1723.95, - 1265 - ], - [ - "2017-12-20T15:25:00+0530", - 1723.95, - 1724, - 1723, - 1723.95, - 1036 - ], - [ - "2017-12-20T15:26:00+0530", - 1723.95, - 1725, - 1723.95, - 1724.1, - 1273 - ], - [ - "2017-12-20T15:27:00+0530", - 1724.1, - 1724.5, - 1724.1, - 1724.4, - 405 - ], - [ - "2017-12-20T15:28:00+0530", - 1724.4, - 1724.85, - 1722, - 1723.4, - 619 - ], - [ - "2017-12-20T15:29:00+0530", - 1723.4, - 1723.5, - 1721.4, - 1721.4, - 1211 - ], - [ - "2017-12-21T09:15:00+0530", - 1718, - 1724.45, - 1718, - 1721.6, - 1296 - ], - [ - "2017-12-21T09:16:00+0530", - 1719.9, - 1723.45, - 1719, - 1719, - 1083 - ], - [ - "2017-12-21T09:17:00+0530", - 1719.7, - 1722.2, - 1719.7, - 1721, - 1734 - ], - [ - "2017-12-21T09:18:00+0530", - 1721, - 1721, - 1720, - 1720, - 596 - ], - [ - "2017-12-21T09:19:00+0530", - 1720, - 1720, - 1718.15, - 1719.6, - 1147 - ], - [ - "2017-12-21T09:20:00+0530", - 1720, - 1720.95, - 1717.8, - 1717.8, - 2350 - ], - [ - "2017-12-21T09:21:00+0530", - 1718.7, - 1721, - 1718.7, - 1721, - 673 - ], - [ - "2017-12-21T09:22:00+0530", - 1721, - 1723, - 1718.7, - 1723, - 599 - ], - [ - "2017-12-21T09:23:00+0530", - 1722.9, - 1724.85, - 1722.9, - 1724.85, - 902 - ], - [ - "2017-12-21T09:24:00+0530", - 1724.85, - 1726.8, - 1724.85, - 1725, - 3171 - ], - [ - "2017-12-21T09:25:00+0530", - 1726.4, - 1726.4, - 1725.8, - 1726.3, - 979 - ], - [ - "2017-12-21T09:26:00+0530", - 1726.3, - 1731, - 1726.3, - 1730.55, - 2495 - ], - [ - "2017-12-21T09:27:00+0530", - 1730.6, - 1731.4, - 1730.6, - 1731.35, - 1471 - ], - [ - "2017-12-21T09:28:00+0530", - 1731.35, - 1732.35, - 1730.55, - 1732.25, - 1169 - ], - [ - "2017-12-21T09:29:00+0530", - 1732.25, - 1734.55, - 1731.6, - 1734.55, - 2417 - ], - [ - "2017-12-21T09:30:00+0530", - 1734.55, - 1734.8, - 1733, - 1733, - 644 - ], - [ - "2017-12-21T09:31:00+0530", - 1733, - 1734.1, - 1733, - 1733.25, - 723 - ], - [ - "2017-12-21T09:32:00+0530", - 1733.25, - 1733.75, - 1733, - 1733.05, - 861 - ], - [ - "2017-12-21T09:33:00+0530", - 1733.05, - 1733.05, - 1731.3, - 1731.3, - 2406 - ], - [ - "2017-12-21T09:34:00+0530", - 1731.3, - 1733.4, - 1731.3, - 1733.4, - 290 - ], - [ - "2017-12-21T09:35:00+0530", - 1733.4, - 1733.4, - 1732.35, - 1733.05, - 591 - ], - [ - "2017-12-21T09:36:00+0530", - 1733.05, - 1733.1, - 1732.5, - 1732.5, - 53 - ], - [ - "2017-12-21T09:37:00+0530", - 1732.5, - 1733, - 1732.5, - 1732.9, - 131 - ], - [ - "2017-12-21T09:38:00+0530", - 1732.9, - 1732.9, - 1732.2, - 1732.2, - 213 - ], - [ - "2017-12-21T09:39:00+0530", - 1732.05, - 1732.05, - 1731.5, - 1731.5, - 267 - ], - [ - "2017-12-21T09:40:00+0530", - 1731.35, - 1731.35, - 1730.05, - 1730.05, - 123 - ], - [ - "2017-12-21T09:41:00+0530", - 1730.05, - 1730.9, - 1730, - 1730, - 1883 - ], - [ - "2017-12-21T09:42:00+0530", - 1730, - 1731.3, - 1730, - 1730.3, - 152 - ], - [ - "2017-12-21T09:43:00+0530", - 1730.3, - 1730.75, - 1730.3, - 1730.5, - 330 - ], - [ - "2017-12-21T09:44:00+0530", - 1730.5, - 1731.7, - 1729.85, - 1730, - 670 - ], - [ - "2017-12-21T09:45:00+0530", - 1730, - 1730, - 1728.1, - 1729.95, - 126 - ], - [ - "2017-12-21T09:46:00+0530", - 1729.95, - 1730.8, - 1729.95, - 1730.7, - 85 - ], - [ - "2017-12-21T09:47:00+0530", - 1730.7, - 1731.8, - 1730.5, - 1731.6, - 135 - ], - [ - "2017-12-21T09:48:00+0530", - 1731.6, - 1731.6, - 1731, - 1731.4, - 66 - ], - [ - "2017-12-21T09:49:00+0530", - 1731.4, - 1731.4, - 1730.25, - 1730.5, - 1112 - ], - [ - "2017-12-21T09:50:00+0530", - 1730.5, - 1731.35, - 1730.5, - 1731, - 293 - ], - [ - "2017-12-21T09:51:00+0530", - 1731, - 1731.95, - 1730, - 1730, - 399 - ], - [ - "2017-12-21T09:52:00+0530", - 1731, - 1731, - 1730, - 1730, - 563 - ], - [ - "2017-12-21T09:53:00+0530", - 1730, - 1730.15, - 1729.85, - 1730.1, - 103 - ], - [ - "2017-12-21T09:54:00+0530", - 1730.1, - 1730.1, - 1727.05, - 1728.05, - 832 - ], - [ - "2017-12-21T09:55:00+0530", - 1728.05, - 1730.75, - 1728, - 1730.75, - 491 - ], - [ - "2017-12-21T09:56:00+0530", - 1730.75, - 1734.85, - 1730.05, - 1732.6, - 1625 - ], - [ - "2017-12-21T09:57:00+0530", - 1733, - 1733, - 1731.15, - 1732, - 275 - ], - [ - "2017-12-21T09:58:00+0530", - 1732, - 1738.8, - 1732, - 1737.05, - 3534 - ], - [ - "2017-12-21T09:59:00+0530", - 1737.05, - 1737.5, - 1734, - 1736.7, - 951 - ], - [ - "2017-12-21T10:00:00+0530", - 1736.7, - 1736.7, - 1734.45, - 1734.65, - 951 - ], - [ - "2017-12-21T10:01:00+0530", - 1734.65, - 1735.15, - 1733, - 1734.65, - 1826 - ], - [ - "2017-12-21T10:02:00+0530", - 1734.65, - 1735, - 1733.5, - 1734, - 684 - ], - [ - "2017-12-21T10:03:00+0530", - 1734, - 1734, - 1733.5, - 1733.55, - 541 - ], - [ - "2017-12-21T10:04:00+0530", - 1733.55, - 1733.55, - 1732.8, - 1732.8, - 526 - ], - [ - "2017-12-21T10:05:00+0530", - 1732.35, - 1735.6, - 1732.35, - 1735.6, - 582 - ], - [ - "2017-12-21T10:06:00+0530", - 1735.6, - 1736, - 1734.6, - 1736, - 463 - ], - [ - "2017-12-21T10:07:00+0530", - 1736, - 1737, - 1735.9, - 1736, - 854 - ], - [ - "2017-12-21T10:08:00+0530", - 1736, - 1739.9, - 1736, - 1739.5, - 1096 - ], - [ - "2017-12-21T10:09:00+0530", - 1739.25, - 1740, - 1736.35, - 1737, - 2359 - ], - [ - "2017-12-21T10:10:00+0530", - 1738, - 1738.05, - 1736.65, - 1738, - 928 - ], - [ - "2017-12-21T10:11:00+0530", - 1738, - 1738.7, - 1736, - 1738.45, - 1092 - ], - [ - "2017-12-21T10:12:00+0530", - 1738.45, - 1738.7, - 1737.1, - 1738, - 475 - ], - [ - "2017-12-21T10:13:00+0530", - 1738, - 1743.8, - 1738, - 1743.8, - 2877 - ], - [ - "2017-12-21T10:14:00+0530", - 1743.8, - 1744.2, - 1743, - 1743, - 6553 - ], - [ - "2017-12-21T10:15:00+0530", - 1743.3, - 1744.15, - 1743.1, - 1744.15, - 2001 - ], - [ - "2017-12-21T10:16:00+0530", - 1744.15, - 1746, - 1744, - 1744.7, - 4209 - ], - [ - "2017-12-21T10:17:00+0530", - 1744.7, - 1744.85, - 1743, - 1743, - 1635 - ], - [ - "2017-12-21T10:18:00+0530", - 1743.7, - 1744.5, - 1743, - 1744.5, - 1683 - ], - [ - "2017-12-21T10:19:00+0530", - 1744.4, - 1744.85, - 1743.8, - 1744.4, - 1022 - ], - [ - "2017-12-21T10:20:00+0530", - 1744.4, - 1744.4, - 1742, - 1742.45, - 1770 - ], - [ - "2017-12-21T10:21:00+0530", - 1742.45, - 1743, - 1742.1, - 1742.1, - 1121 - ], - [ - "2017-12-21T10:22:00+0530", - 1742.1, - 1743.35, - 1742.1, - 1743, - 571 - ], - [ - "2017-12-21T10:23:00+0530", - 1743, - 1743.5, - 1742, - 1742.35, - 406 - ], - [ - "2017-12-21T10:24:00+0530", - 1742.35, - 1742.65, - 1741, - 1741.5, - 1018 - ], - [ - "2017-12-21T10:25:00+0530", - 1741.5, - 1742.6, - 1741.4, - 1742, - 842 - ], - [ - "2017-12-21T10:26:00+0530", - 1742, - 1743, - 1742, - 1743, - 808 - ], - [ - "2017-12-21T10:27:00+0530", - 1743, - 1743, - 1742.1, - 1743, - 1067 - ], - [ - "2017-12-21T10:28:00+0530", - 1743, - 1743, - 1742.8, - 1742.8, - 1373 - ], - [ - "2017-12-21T10:29:00+0530", - 1742.8, - 1742.85, - 1742, - 1742, - 1544 - ], - [ - "2017-12-21T10:30:00+0530", - 1742, - 1742.9, - 1742, - 1742, - 486 - ], - [ - "2017-12-21T10:31:00+0530", - 1742, - 1742.75, - 1742, - 1742.75, - 500 - ], - [ - "2017-12-21T10:32:00+0530", - 1742.75, - 1742.75, - 1741, - 1741, - 422 - ], - [ - "2017-12-21T10:33:00+0530", - 1741, - 1741.9, - 1741, - 1741.9, - 428 - ], - [ - "2017-12-21T10:34:00+0530", - 1741.9, - 1743, - 1740.5, - 1741.05, - 1185 - ], - [ - "2017-12-21T10:35:00+0530", - 1741.05, - 1742, - 1740.95, - 1741.05, - 227 - ], - [ - "2017-12-21T10:36:00+0530", - 1741.05, - 1741.05, - 1741.05, - 1741.05, - 30 - ], - [ - "2017-12-21T10:37:00+0530", - 1741.05, - 1741.8, - 1741.05, - 1741.15, - 71 - ], - [ - "2017-12-21T10:38:00+0530", - 1741.15, - 1742, - 1741, - 1741.9, - 569 - ], - [ - "2017-12-21T10:39:00+0530", - 1741.9, - 1742, - 1741, - 1741.95, - 175 - ], - [ - "2017-12-21T10:40:00+0530", - 1741.95, - 1742.1, - 1741, - 1741.5, - 416 - ], - [ - "2017-12-21T10:41:00+0530", - 1741.5, - 1742.7, - 1741, - 1742.5, - 894 - ], - [ - "2017-12-21T10:42:00+0530", - 1742.5, - 1742.5, - 1741.1, - 1741.1, - 135 - ], - [ - "2017-12-21T10:43:00+0530", - 1741.1, - 1742, - 1741, - 1742, - 691 - ], - [ - "2017-12-21T10:44:00+0530", - 1742, - 1742, - 1740.85, - 1740.85, - 26 - ], - [ - "2017-12-21T10:45:00+0530", - 1740.85, - 1740.85, - 1740.3, - 1740.3, - 14 - ], - [ - "2017-12-21T10:46:00+0530", - 1740.3, - 1742, - 1740.3, - 1742, - 331 - ], - [ - "2017-12-21T10:47:00+0530", - 1742, - 1742, - 1741, - 1741, - 30 - ], - [ - "2017-12-21T10:48:00+0530", - 1741, - 1742.5, - 1741, - 1742, - 453 - ], - [ - "2017-12-21T10:49:00+0530", - 1742.95, - 1743, - 1741.95, - 1742.25, - 1321 - ], - [ - "2017-12-21T10:50:00+0530", - 1742.25, - 1742.25, - 1741.45, - 1741.45, - 700 - ], - [ - "2017-12-21T10:51:00+0530", - 1741.45, - 1741.45, - 1741.2, - 1741.2, - 10 - ], - [ - "2017-12-21T10:52:00+0530", - 1741.2, - 1741.2, - 1741, - 1741.15, - 550 - ], - [ - "2017-12-21T10:53:00+0530", - 1741.15, - 1741.15, - 1741.1, - 1741.1, - 210 - ], - [ - "2017-12-21T10:54:00+0530", - 1741.1, - 1741.1, - 1741, - 1741, - 115 - ], - [ - "2017-12-21T10:55:00+0530", - 1741, - 1741, - 1740.65, - 1740.65, - 257 - ], - [ - "2017-12-21T10:56:00+0530", - 1740.65, - 1741, - 1740.4, - 1740.4, - 136 - ], - [ - "2017-12-21T10:57:00+0530", - 1740.4, - 1740.4, - 1740.35, - 1740.35, - 74 - ], - [ - "2017-12-21T10:58:00+0530", - 1740.35, - 1740.35, - 1740.2, - 1740.2, - 230 - ], - [ - "2017-12-21T10:59:00+0530", - 1740.2, - 1740.2, - 1740, - 1740, - 331 - ], - [ - "2017-12-21T11:00:00+0530", - 1740, - 1740.75, - 1740, - 1740.75, - 135 - ], - [ - "2017-12-21T11:01:00+0530", - 1740.75, - 1740.75, - 1738.1, - 1739, - 549 - ], - [ - "2017-12-21T11:02:00+0530", - 1739, - 1739.5, - 1739, - 1739.5, - 46 - ], - [ - "2017-12-21T11:03:00+0530", - 1739.5, - 1740.9, - 1739.5, - 1740.9, - 110 - ], - [ - "2017-12-21T11:04:00+0530", - 1740.9, - 1742.85, - 1740.9, - 1742.85, - 3137 - ], - [ - "2017-12-21T11:05:00+0530", - 1742.85, - 1742.85, - 1742, - 1742, - 860 - ], - [ - "2017-12-21T11:06:00+0530", - 1742, - 1742.95, - 1742, - 1742.95, - 36 - ], - [ - "2017-12-21T11:07:00+0530", - 1742.95, - 1742.95, - 1742, - 1742, - 15 - ], - [ - "2017-12-21T11:08:00+0530", - 1742, - 1742.6, - 1742, - 1742.6, - 349 - ], - [ - "2017-12-21T11:09:00+0530", - 1742.6, - 1742.6, - 1742, - 1742, - 105 - ], - [ - "2017-12-21T11:10:00+0530", - 1743, - 1743.2, - 1742.1, - 1742.1, - 173 - ], - [ - "2017-12-21T11:11:00+0530", - 1743.15, - 1743.5, - 1743.15, - 1743.15, - 169 - ], - [ - "2017-12-21T11:12:00+0530", - 1743.15, - 1743.15, - 1742.05, - 1742.05, - 130 - ], - [ - "2017-12-21T11:13:00+0530", - 1742.05, - 1743.1, - 1742.05, - 1743.1, - 5 - ], - [ - "2017-12-21T11:14:00+0530", - 1743.1, - 1743.1, - 1742, - 1742.05, - 1062 - ], - [ - "2017-12-21T11:15:00+0530", - 1742.05, - 1742.3, - 1742, - 1742.15, - 147 - ], - [ - "2017-12-21T11:16:00+0530", - 1742.15, - 1742.15, - 1742, - 1742, - 24 - ], - [ - "2017-12-21T11:17:00+0530", - 1742, - 1742.75, - 1742, - 1742.05, - 27 - ], - [ - "2017-12-21T11:18:00+0530", - 1742.05, - 1743.45, - 1742.05, - 1743.45, - 130 - ], - [ - "2017-12-21T11:19:00+0530", - 1743.45, - 1743.45, - 1742.1, - 1743, - 32 - ], - [ - "2017-12-21T11:20:00+0530", - 1743, - 1743, - 1743, - 1743, - 54 - ], - [ - "2017-12-21T11:21:00+0530", - 1743, - 1743.45, - 1743, - 1743, - 165 - ], - [ - "2017-12-21T11:22:00+0530", - 1743, - 1743, - 1742.65, - 1743, - 3 - ], - [ - "2017-12-21T11:23:00+0530", - 1743, - 1743, - 1743, - 1743, - 10 - ], - [ - "2017-12-21T11:24:00+0530", - 1743, - 1743, - 1743, - 1743, - 106 - ], - [ - "2017-12-21T11:25:00+0530", - 1743, - 1743, - 1742.1, - 1742.1, - 445 - ], - [ - "2017-12-21T11:26:00+0530", - 1742.1, - 1743, - 1742.1, - 1742.1, - 23 - ], - [ - "2017-12-21T11:27:00+0530", - 1742.1, - 1742.1, - 1742, - 1742, - 42 - ], - [ - "2017-12-21T11:28:00+0530", - 1742, - 1742.05, - 1742, - 1742, - 296 - ], - [ - "2017-12-21T11:29:00+0530", - 1742, - 1742, - 1741.7, - 1741.7, - 975 - ], - [ - "2017-12-21T11:30:00+0530", - 1741.7, - 1741.8, - 1741.7, - 1741.75, - 161 - ], - [ - "2017-12-21T11:31:00+0530", - 1741.75, - 1742, - 1741, - 1741.25, - 128 - ], - [ - "2017-12-21T11:32:00+0530", - 1741.25, - 1741.25, - 1739.1, - 1739.1, - 312 - ], - [ - "2017-12-21T11:33:00+0530", - 1739.1, - 1739.3, - 1739.1, - 1739.3, - 419 - ], - [ - "2017-12-21T11:34:00+0530", - 1739.3, - 1740, - 1739.3, - 1740, - 76 - ], - [ - "2017-12-21T11:35:00+0530", - 1740, - 1740.95, - 1740, - 1740, - 64 - ], - [ - "2017-12-21T11:36:00+0530", - 1740, - 1740.4, - 1740, - 1740, - 170 - ], - [ - "2017-12-21T11:37:00+0530", - 1740, - 1740.7, - 1740, - 1740.1, - 8 - ], - [ - "2017-12-21T11:38:00+0530", - 1740.1, - 1740.7, - 1740.1, - 1740.25, - 98 - ], - [ - "2017-12-21T11:39:00+0530", - 1740.25, - 1740.6, - 1740, - 1740.3, - 325 - ], - [ - "2017-12-21T11:40:00+0530", - 1740.3, - 1740.3, - 1739.5, - 1739.5, - 100 - ], - [ - "2017-12-21T11:41:00+0530", - 1739.5, - 1740.6, - 1739.35, - 1739.35, - 566 - ], - [ - "2017-12-21T11:42:00+0530", - 1739.35, - 1740.85, - 1739.3, - 1739.55, - 646 - ], - [ - "2017-12-21T11:43:00+0530", - 1739.55, - 1740.75, - 1739, - 1739, - 39 - ], - [ - "2017-12-21T11:44:00+0530", - 1739, - 1739, - 1738.5, - 1738.5, - 50 - ], - [ - "2017-12-21T11:45:00+0530", - 1738.5, - 1740.35, - 1738.5, - 1740.35, - 182 - ], - [ - "2017-12-21T11:46:00+0530", - 1740.35, - 1740.35, - 1739, - 1739, - 151 - ], - [ - "2017-12-21T11:47:00+0530", - 1739, - 1739.2, - 1739, - 1739.2, - 50 - ], - [ - "2017-12-21T11:48:00+0530", - 1739.2, - 1739.2, - 1738.5, - 1738.5, - 299 - ], - [ - "2017-12-21T11:49:00+0530", - 1738.5, - 1739.2, - 1737.2, - 1737.2, - 1220 - ], - [ - "2017-12-21T11:50:00+0530", - 1737.2, - 1737.6, - 1735.2, - 1736.9, - 1300 - ], - [ - "2017-12-21T11:51:00+0530", - 1736.9, - 1737.1, - 1736, - 1737, - 350 - ], - [ - "2017-12-21T11:52:00+0530", - 1737, - 1738, - 1737, - 1738, - 101 - ], - [ - "2017-12-21T11:53:00+0530", - 1738.85, - 1738.85, - 1737.9, - 1737.9, - 103 - ], - [ - "2017-12-21T11:54:00+0530", - 1737.9, - 1738.4, - 1737, - 1738.4, - 99 - ], - [ - "2017-12-21T11:55:00+0530", - 1738.4, - 1738.4, - 1737, - 1737, - 136 - ], - [ - "2017-12-21T11:56:00+0530", - 1736.8, - 1736.8, - 1736, - 1736, - 472 - ], - [ - "2017-12-21T11:57:00+0530", - 1736, - 1736.45, - 1736, - 1736, - 268 - ], - [ - "2017-12-21T11:58:00+0530", - 1736, - 1736, - 1736, - 1736, - 119 - ], - [ - "2017-12-21T11:59:00+0530", - 1736, - 1738.7, - 1736, - 1738.65, - 1481 - ], - [ - "2017-12-21T12:00:00+0530", - 1738.65, - 1738.65, - 1738, - 1738, - 50 - ], - [ - "2017-12-21T12:01:00+0530", - 1738, - 1738, - 1736.75, - 1737.8, - 26 - ], - [ - "2017-12-21T12:02:00+0530", - 1737.8, - 1737.8, - 1736.8, - 1737.5, - 201 - ], - [ - "2017-12-21T12:03:00+0530", - 1737.5, - 1737.8, - 1737.4, - 1737.4, - 21 - ], - [ - "2017-12-21T12:04:00+0530", - 1737.4, - 1737.65, - 1736.75, - 1737.65, - 60 - ], - [ - "2017-12-21T12:05:00+0530", - 1737.65, - 1737.65, - 1736, - 1736, - 131 - ], - [ - "2017-12-21T12:06:00+0530", - 1736, - 1737.95, - 1736, - 1737.7, - 65 - ], - [ - "2017-12-21T12:07:00+0530", - 1737.7, - 1738, - 1737.7, - 1737.7, - 70 - ], - [ - "2017-12-21T12:08:00+0530", - 1737.7, - 1738.55, - 1737.7, - 1738, - 476 - ], - [ - "2017-12-21T12:09:00+0530", - 1738, - 1738.85, - 1738, - 1738.85, - 2 - ], - [ - "2017-12-21T12:10:00+0530", - 1738.85, - 1738.85, - 1737.7, - 1738.7, - 50 - ], - [ - "2017-12-21T12:11:00+0530", - 1738.7, - 1738.7, - 1738.5, - 1738.5, - 62 - ], - [ - "2017-12-21T12:12:00+0530", - 1738.5, - 1739.2, - 1738.5, - 1739.2, - 30 - ], - [ - "2017-12-21T12:13:00+0530", - 1739.2, - 1740.65, - 1739.2, - 1740.6, - 296 - ], - [ - "2017-12-21T12:14:00+0530", - 1740.6, - 1740.6, - 1739.4, - 1740.4, - 25 - ], - [ - "2017-12-21T12:15:00+0530", - 1740.4, - 1740.8, - 1740.4, - 1740.8, - 42 - ], - [ - "2017-12-21T12:16:00+0530", - 1740.8, - 1740.8, - 1738.85, - 1738.85, - 445 - ], - [ - "2017-12-21T12:17:00+0530", - 1738.85, - 1738.85, - 1738.5, - 1738.5, - 25 - ], - [ - "2017-12-21T12:18:00+0530", - 1738.5, - 1738.55, - 1738.5, - 1738.55, - 30 - ], - [ - "2017-12-21T12:19:00+0530", - 1739.7, - 1739.75, - 1738.5, - 1739.2, - 165 - ], - [ - "2017-12-21T12:20:00+0530", - 1739.2, - 1739.2, - 1738, - 1738, - 88 - ], - [ - "2017-12-21T12:21:00+0530", - 1738, - 1738, - 1738, - 1738, - 0 - ], - [ - "2017-12-21T12:22:00+0530", - 1738, - 1738.9, - 1738, - 1738.9, - 20 - ], - [ - "2017-12-21T12:23:00+0530", - 1738.9, - 1739, - 1738.15, - 1738.15, - 52 - ], - [ - "2017-12-21T12:24:00+0530", - 1738.15, - 1738.2, - 1738.15, - 1738.2, - 150 - ], - [ - "2017-12-21T12:25:00+0530", - 1738.2, - 1738.2, - 1738.2, - 1738.2, - 0 - ], - [ - "2017-12-21T12:26:00+0530", - 1738.2, - 1738.2, - 1738.2, - 1738.2, - 25 - ], - [ - "2017-12-21T12:27:00+0530", - 1738.2, - 1739, - 1738.2, - 1738.3, - 635 - ], - [ - "2017-12-21T12:28:00+0530", - 1738.3, - 1738.3, - 1738.3, - 1738.3, - 100 - ], - [ - "2017-12-21T12:29:00+0530", - 1738.3, - 1739.75, - 1738.3, - 1738.4, - 65 - ], - [ - "2017-12-21T12:30:00+0530", - 1738.4, - 1738.4, - 1738.4, - 1738.4, - 0 - ], - [ - "2017-12-21T12:31:00+0530", - 1738.4, - 1740.1, - 1738.4, - 1740.1, - 1847 - ], - [ - "2017-12-21T12:32:00+0530", - 1740.1, - 1741, - 1740.05, - 1740.05, - 149 - ], - [ - "2017-12-21T12:33:00+0530", - 1740.05, - 1740.1, - 1739.1, - 1739.1, - 502 - ], - [ - "2017-12-21T12:34:00+0530", - 1739.1, - 1739.65, - 1738.8, - 1738.85, - 120 - ], - [ - "2017-12-21T12:35:00+0530", - 1738.85, - 1738.95, - 1738.85, - 1738.95, - 19 - ], - [ - "2017-12-21T12:36:00+0530", - 1738.95, - 1739.1, - 1738.95, - 1739.1, - 10 - ], - [ - "2017-12-21T12:37:00+0530", - 1739.1, - 1739.1, - 1738.5, - 1738.5, - 39 - ], - [ - "2017-12-21T12:38:00+0530", - 1738.5, - 1738.5, - 1738, - 1738, - 400 - ], - [ - "2017-12-21T12:39:00+0530", - 1738, - 1738.95, - 1737.7, - 1738.5, - 297 - ], - [ - "2017-12-21T12:40:00+0530", - 1738.5, - 1740, - 1738.5, - 1739.5, - 5 - ], - [ - "2017-12-21T12:41:00+0530", - 1739.5, - 1741.15, - 1739.5, - 1741.15, - 170 - ], - [ - "2017-12-21T12:42:00+0530", - 1741.15, - 1741.2, - 1739.3, - 1739.3, - 1018 - ], - [ - "2017-12-21T12:43:00+0530", - 1739.3, - 1739.75, - 1739.2, - 1739.2, - 70 - ], - [ - "2017-12-21T12:44:00+0530", - 1739.2, - 1739.7, - 1739.2, - 1739.7, - 20 - ], - [ - "2017-12-21T12:45:00+0530", - 1739.7, - 1739.7, - 1739.7, - 1739.7, - 15 - ], - [ - "2017-12-21T12:46:00+0530", - 1739.7, - 1740, - 1739.7, - 1740, - 10 - ], - [ - "2017-12-21T12:47:00+0530", - 1740, - 1740.55, - 1740, - 1740.55, - 1 - ], - [ - "2017-12-21T12:48:00+0530", - 1740.55, - 1740.55, - 1740, - 1740, - 25 - ], - [ - "2017-12-21T12:49:00+0530", - 1740, - 1740, - 1740, - 1740, - 120 - ], - [ - "2017-12-21T12:50:00+0530", - 1740, - 1740.7, - 1740, - 1740.7, - 10 - ], - [ - "2017-12-21T12:51:00+0530", - 1740.7, - 1740.7, - 1740, - 1740, - 20 - ], - [ - "2017-12-21T12:52:00+0530", - 1740, - 1740.5, - 1740, - 1740.5, - 6 - ], - [ - "2017-12-21T12:53:00+0530", - 1740.45, - 1740.7, - 1740.4, - 1740.7, - 58 - ], - [ - "2017-12-21T12:54:00+0530", - 1740.7, - 1740.7, - 1740.7, - 1740.7, - 0 - ], - [ - "2017-12-21T12:55:00+0530", - 1740.7, - 1740.7, - 1739.3, - 1739.95, - 315 - ], - [ - "2017-12-21T12:56:00+0530", - 1739.95, - 1739.95, - 1739.95, - 1739.95, - 0 - ], - [ - "2017-12-21T12:57:00+0530", - 1739.95, - 1740.3, - 1739.95, - 1740.3, - 30 - ], - [ - "2017-12-21T12:58:00+0530", - 1740.3, - 1740.3, - 1740, - 1740, - 25 - ], - [ - "2017-12-21T12:59:00+0530", - 1740, - 1740.3, - 1740, - 1740.3, - 95 - ], - [ - "2017-12-21T13:00:00+0530", - 1740.3, - 1740.3, - 1740.3, - 1740.3, - 6 - ], - [ - "2017-12-21T13:01:00+0530", - 1740.3, - 1740.95, - 1740.3, - 1740.95, - 2 - ], - [ - "2017-12-21T13:02:00+0530", - 1740.95, - 1740.95, - 1740.95, - 1740.95, - 0 - ], - [ - "2017-12-21T13:03:00+0530", - 1740.95, - 1741.75, - 1740.95, - 1741.75, - 312 - ], - [ - "2017-12-21T13:04:00+0530", - 1741.75, - 1741.75, - 1741, - 1741.05, - 438 - ], - [ - "2017-12-21T13:05:00+0530", - 1741.7, - 1741.7, - 1741.15, - 1741.15, - 3 - ], - [ - "2017-12-21T13:06:00+0530", - 1741.15, - 1741.3, - 1741, - 1741, - 659 - ], - [ - "2017-12-21T13:07:00+0530", - 1741, - 1741.85, - 1741, - 1741.55, - 948 - ], - [ - "2017-12-21T13:08:00+0530", - 1741.55, - 1741.9, - 1740.45, - 1740.45, - 103 - ], - [ - "2017-12-21T13:09:00+0530", - 1740.45, - 1740.45, - 1740, - 1740, - 159 - ], - [ - "2017-12-21T13:10:00+0530", - 1740, - 1741.5, - 1740, - 1741, - 148 - ], - [ - "2017-12-21T13:11:00+0530", - 1741, - 1741, - 1741, - 1741, - 5 - ], - [ - "2017-12-21T13:12:00+0530", - 1741, - 1741.9, - 1741, - 1741.9, - 64 - ], - [ - "2017-12-21T13:13:00+0530", - 1741.9, - 1741.9, - 1740.85, - 1741.85, - 224 - ], - [ - "2017-12-21T13:14:00+0530", - 1741.85, - 1741.95, - 1741.85, - 1741.95, - 15 - ], - [ - "2017-12-21T13:15:00+0530", - 1741.95, - 1741.95, - 1741.05, - 1741.95, - 28 - ], - [ - "2017-12-21T13:16:00+0530", - 1741.95, - 1741.95, - 1741.95, - 1741.95, - 440 - ], - [ - "2017-12-21T13:17:00+0530", - 1741.95, - 1741.95, - 1741.95, - 1741.95, - 0 - ], - [ - "2017-12-21T13:18:00+0530", - 1741.95, - 1741.95, - 1741.05, - 1741.05, - 10 - ], - [ - "2017-12-21T13:19:00+0530", - 1741.55, - 1741.55, - 1739, - 1739, - 520 - ], - [ - "2017-12-21T13:20:00+0530", - 1739, - 1739, - 1739, - 1739, - 0 - ], - [ - "2017-12-21T13:21:00+0530", - 1739, - 1740.5, - 1739, - 1739.5, - 33 - ], - [ - "2017-12-21T13:22:00+0530", - 1739.5, - 1740.5, - 1739.5, - 1740.5, - 1 - ], - [ - "2017-12-21T13:23:00+0530", - 1740.5, - 1741.25, - 1740, - 1741.25, - 23 - ], - [ - "2017-12-21T13:24:00+0530", - 1741.25, - 1741.25, - 1741.25, - 1741.25, - 0 - ], - [ - "2017-12-21T13:25:00+0530", - 1741.25, - 1741.25, - 1739.55, - 1739.55, - 25 - ], - [ - "2017-12-21T13:26:00+0530", - 1739.55, - 1739.55, - 1739.55, - 1739.55, - 0 - ], - [ - "2017-12-21T13:27:00+0530", - 1739.3, - 1739.5, - 1739.3, - 1739.5, - 83 - ], - [ - "2017-12-21T13:28:00+0530", - 1739.5, - 1739.5, - 1738.85, - 1739, - 148 - ], - [ - "2017-12-21T13:29:00+0530", - 1739, - 1739, - 1737.9, - 1737.9, - 701 - ], - [ - "2017-12-21T13:30:00+0530", - 1737.9, - 1739.5, - 1737.7, - 1739.35, - 304 - ], - [ - "2017-12-21T13:31:00+0530", - 1739.35, - 1739.5, - 1739.35, - 1739.5, - 65 - ], - [ - "2017-12-21T13:32:00+0530", - 1739.5, - 1740, - 1739.5, - 1740, - 29 - ], - [ - "2017-12-21T13:33:00+0530", - 1740, - 1740, - 1740, - 1740, - 6 - ], - [ - "2017-12-21T13:34:00+0530", - 1740, - 1740.8, - 1740, - 1740.8, - 89 - ], - [ - "2017-12-21T13:35:00+0530", - 1740.8, - 1740.95, - 1740.05, - 1740.9, - 60 - ], - [ - "2017-12-21T13:36:00+0530", - 1740.9, - 1740.95, - 1740.55, - 1740.6, - 29 - ], - [ - "2017-12-21T13:37:00+0530", - 1740.6, - 1741.15, - 1740.6, - 1741.15, - 105 - ], - [ - "2017-12-21T13:38:00+0530", - 1741.15, - 1741.2, - 1741.15, - 1741.2, - 4 - ], - [ - "2017-12-21T13:39:00+0530", - 1741.2, - 1741.2, - 1741.15, - 1741.15, - 5 - ], - [ - "2017-12-21T13:40:00+0530", - 1741.15, - 1741.15, - 1740.35, - 1741, - 330 - ], - [ - "2017-12-21T13:41:00+0530", - 1741, - 1741, - 1739, - 1740, - 152 - ], - [ - "2017-12-21T13:42:00+0530", - 1740.15, - 1740.3, - 1739.15, - 1740, - 84 - ], - [ - "2017-12-21T13:43:00+0530", - 1740, - 1740.4, - 1739, - 1740.4, - 60 - ], - [ - "2017-12-21T13:44:00+0530", - 1740.4, - 1740.95, - 1740.4, - 1740.95, - 4 - ], - [ - "2017-12-21T13:45:00+0530", - 1740.95, - 1740.95, - 1740.3, - 1740.3, - 210 - ], - [ - "2017-12-21T13:46:00+0530", - 1740.3, - 1741, - 1739.55, - 1739.55, - 13 - ], - [ - "2017-12-21T13:47:00+0530", - 1739.55, - 1741, - 1739.55, - 1740.75, - 6 - ], - [ - "2017-12-21T13:48:00+0530", - 1740.75, - 1741, - 1740.4, - 1741, - 17 - ], - [ - "2017-12-21T13:49:00+0530", - 1741, - 1741.2, - 1740.8, - 1740.8, - 54 - ], - [ - "2017-12-21T13:50:00+0530", - 1740.8, - 1742.25, - 1740.8, - 1742.25, - 286 - ], - [ - "2017-12-21T13:51:00+0530", - 1742.25, - 1742.85, - 1741.8, - 1742.85, - 225 - ], - [ - "2017-12-21T13:52:00+0530", - 1742.9, - 1743.45, - 1742.9, - 1743.45, - 601 - ], - [ - "2017-12-21T13:53:00+0530", - 1743.45, - 1743.45, - 1743, - 1743.3, - 285 - ], - [ - "2017-12-21T13:54:00+0530", - 1743.3, - 1743.3, - 1740.65, - 1740.65, - 520 - ], - [ - "2017-12-21T13:55:00+0530", - 1740.65, - 1740.95, - 1740.65, - 1740.9, - 195 - ], - [ - "2017-12-21T13:56:00+0530", - 1740.9, - 1741, - 1739.8, - 1741, - 223 - ], - [ - "2017-12-21T13:57:00+0530", - 1741, - 1741, - 1741, - 1741, - 4 - ], - [ - "2017-12-21T13:58:00+0530", - 1741, - 1742.4, - 1741, - 1742.4, - 5 - ], - [ - "2017-12-21T13:59:00+0530", - 1742.4, - 1742.45, - 1741.25, - 1742.4, - 239 - ], - [ - "2017-12-21T14:00:00+0530", - 1742.4, - 1743.2, - 1741.05, - 1741.15, - 249 - ], - [ - "2017-12-21T14:01:00+0530", - 1741.15, - 1741.9, - 1741.15, - 1741.45, - 64 - ], - [ - "2017-12-21T14:02:00+0530", - 1741.45, - 1741.9, - 1741.05, - 1741.85, - 44 - ], - [ - "2017-12-21T14:03:00+0530", - 1741.85, - 1741.9, - 1740.35, - 1741.75, - 37 - ], - [ - "2017-12-21T14:04:00+0530", - 1741.75, - 1741.9, - 1741.3, - 1741.9, - 5 - ], - [ - "2017-12-21T14:05:00+0530", - 1741.9, - 1742.45, - 1740.65, - 1742.45, - 18 - ], - [ - "2017-12-21T14:06:00+0530", - 1742.45, - 1743.2, - 1742.45, - 1743.1, - 620 - ], - [ - "2017-12-21T14:07:00+0530", - 1743.1, - 1743.2, - 1742.8, - 1742.8, - 296 - ], - [ - "2017-12-21T14:08:00+0530", - 1742.8, - 1742.8, - 1742.7, - 1742.7, - 6 - ], - [ - "2017-12-21T14:09:00+0530", - 1742.7, - 1743, - 1742.2, - 1743, - 506 - ], - [ - "2017-12-21T14:10:00+0530", - 1743, - 1743, - 1742.85, - 1742.85, - 4 - ], - [ - "2017-12-21T14:11:00+0530", - 1742.85, - 1742.95, - 1742.1, - 1742.95, - 15 - ], - [ - "2017-12-21T14:12:00+0530", - 1742.95, - 1743, - 1742.15, - 1742.95, - 154 - ], - [ - "2017-12-21T14:13:00+0530", - 1742.95, - 1742.95, - 1742.7, - 1742.7, - 107 - ], - [ - "2017-12-21T14:14:00+0530", - 1742.7, - 1742.7, - 1742.65, - 1742.65, - 8 - ], - [ - "2017-12-21T14:15:00+0530", - 1742.65, - 1742.9, - 1742.65, - 1742.9, - 351 - ], - [ - "2017-12-21T14:16:00+0530", - 1742.9, - 1742.9, - 1742, - 1742, - 282 - ], - [ - "2017-12-21T14:17:00+0530", - 1742, - 1743, - 1742, - 1742.9, - 461 - ], - [ - "2017-12-21T14:18:00+0530", - 1742.95, - 1742.95, - 1742.05, - 1742.95, - 6 - ], - [ - "2017-12-21T14:19:00+0530", - 1742.95, - 1742.95, - 1742.75, - 1742.75, - 5 - ], - [ - "2017-12-21T14:20:00+0530", - 1741.35, - 1742.85, - 1741.35, - 1742.6, - 31 - ], - [ - "2017-12-21T14:21:00+0530", - 1742.6, - 1742.85, - 1741.6, - 1742.5, - 181 - ], - [ - "2017-12-21T14:22:00+0530", - 1742.5, - 1742.5, - 1740.55, - 1741.8, - 81 - ], - [ - "2017-12-21T14:23:00+0530", - 1740, - 1741.85, - 1740, - 1741.85, - 502 - ], - [ - "2017-12-21T14:24:00+0530", - 1741.85, - 1742.1, - 1741.85, - 1741.95, - 61 - ], - [ - "2017-12-21T14:25:00+0530", - 1741.95, - 1741.95, - 1740.5, - 1740.5, - 4 - ], - [ - "2017-12-21T14:26:00+0530", - 1740.5, - 1742, - 1740.5, - 1742, - 53 - ], - [ - "2017-12-21T14:27:00+0530", - 1742, - 1742, - 1740.85, - 1742, - 65 - ], - [ - "2017-12-21T14:28:00+0530", - 1741.6, - 1742, - 1741.6, - 1742, - 5 - ], - [ - "2017-12-21T14:29:00+0530", - 1742, - 1742, - 1740.65, - 1740.65, - 111 - ], - [ - "2017-12-21T14:30:00+0530", - 1740.65, - 1741.5, - 1740.65, - 1741.5, - 29 - ], - [ - "2017-12-21T14:31:00+0530", - 1741.5, - 1741.5, - 1741.5, - 1741.5, - 25 - ], - [ - "2017-12-21T14:32:00+0530", - 1741.5, - 1741.85, - 1741.5, - 1741.85, - 268 - ], - [ - "2017-12-21T14:33:00+0530", - 1741.85, - 1741.9, - 1741.5, - 1741.5, - 569 - ], - [ - "2017-12-21T14:34:00+0530", - 1741.5, - 1742, - 1741.15, - 1742, - 350 - ], - [ - "2017-12-21T14:35:00+0530", - 1741.15, - 1741.15, - 1741.15, - 1741.15, - 20 - ], - [ - "2017-12-21T14:36:00+0530", - 1741.15, - 1741.5, - 1741.15, - 1741.4, - 51 - ], - [ - "2017-12-21T14:37:00+0530", - 1742.95, - 1742.95, - 1742.25, - 1742.25, - 102 - ], - [ - "2017-12-21T14:38:00+0530", - 1742.25, - 1742.25, - 1741.45, - 1742, - 90 - ], - [ - "2017-12-21T14:39:00+0530", - 1742, - 1742.85, - 1742, - 1742, - 85 - ], - [ - "2017-12-21T14:40:00+0530", - 1742, - 1742, - 1742, - 1742, - 40 - ], - [ - "2017-12-21T14:41:00+0530", - 1742, - 1742, - 1741.6, - 1741.6, - 100 - ], - [ - "2017-12-21T14:42:00+0530", - 1741.6, - 1741.6, - 1741.6, - 1741.6, - 24 - ], - [ - "2017-12-21T14:43:00+0530", - 1741.6, - 1741.65, - 1741.6, - 1741.65, - 60 - ], - [ - "2017-12-21T14:44:00+0530", - 1741.65, - 1742.05, - 1741.65, - 1741.85, - 878 - ], - [ - "2017-12-21T14:45:00+0530", - 1741.85, - 1741.85, - 1736.95, - 1737.75, - 2048 - ], - [ - "2017-12-21T14:46:00+0530", - 1737.75, - 1739.85, - 1737.05, - 1739.85, - 386 - ], - [ - "2017-12-21T14:47:00+0530", - 1739.85, - 1740.5, - 1739.85, - 1740.05, - 403 - ], - [ - "2017-12-21T14:48:00+0530", - 1740.05, - 1740.35, - 1739.1, - 1739.1, - 267 - ], - [ - "2017-12-21T14:49:00+0530", - 1739.1, - 1739.75, - 1739.1, - 1739.2, - 110 - ], - [ - "2017-12-21T14:50:00+0530", - 1739.2, - 1740, - 1739.2, - 1740, - 31 - ], - [ - "2017-12-21T14:51:00+0530", - 1740, - 1740.05, - 1739, - 1739, - 178 - ], - [ - "2017-12-21T14:52:00+0530", - 1739.2, - 1739.2, - 1739, - 1739, - 379 - ], - [ - "2017-12-21T14:53:00+0530", - 1739, - 1739, - 1736.95, - 1737.6, - 258 - ], - [ - "2017-12-21T14:54:00+0530", - 1737.6, - 1738, - 1736.55, - 1736.55, - 773 - ], - [ - "2017-12-21T14:55:00+0530", - 1736.55, - 1737.5, - 1736.55, - 1736.6, - 40 - ], - [ - "2017-12-21T14:56:00+0530", - 1736.6, - 1736.6, - 1736, - 1736.5, - 196 - ], - [ - "2017-12-21T14:57:00+0530", - 1736.5, - 1738, - 1736.5, - 1738, - 348 - ], - [ - "2017-12-21T14:58:00+0530", - 1738, - 1738.25, - 1737.05, - 1737.05, - 111 - ], - [ - "2017-12-21T14:59:00+0530", - 1737.05, - 1738, - 1736.9, - 1736.9, - 331 - ], - [ - "2017-12-21T15:00:00+0530", - 1736.9, - 1737.8, - 1736.9, - 1737.15, - 632 - ], - [ - "2017-12-21T15:01:00+0530", - 1737.15, - 1739, - 1737.15, - 1737.55, - 1017 - ], - [ - "2017-12-21T15:02:00+0530", - 1738, - 1738, - 1737.1, - 1737.5, - 163 - ], - [ - "2017-12-21T15:03:00+0530", - 1737.5, - 1738, - 1737.2, - 1738, - 493 - ], - [ - "2017-12-21T15:04:00+0530", - 1738, - 1738.95, - 1738, - 1738.95, - 245 - ], - [ - "2017-12-21T15:05:00+0530", - 1738.95, - 1739, - 1737.65, - 1737.65, - 92 - ], - [ - "2017-12-21T15:06:00+0530", - 1737.65, - 1738.3, - 1737.15, - 1737.8, - 234 - ], - [ - "2017-12-21T15:07:00+0530", - 1737.8, - 1740.95, - 1737.8, - 1740.1, - 3354 - ], - [ - "2017-12-21T15:08:00+0530", - 1740.1, - 1740.75, - 1740.1, - 1740.1, - 154 - ], - [ - "2017-12-21T15:09:00+0530", - 1740.1, - 1740.1, - 1739.55, - 1739.6, - 121 - ], - [ - "2017-12-21T15:10:00+0530", - 1739.6, - 1740.85, - 1739.6, - 1739.95, - 829 - ], - [ - "2017-12-21T15:11:00+0530", - 1739.95, - 1739.95, - 1738, - 1738.9, - 383 - ], - [ - "2017-12-21T15:12:00+0530", - 1738.9, - 1739.05, - 1737.5, - 1737.5, - 598 - ], - [ - "2017-12-21T15:13:00+0530", - 1737.5, - 1738.5, - 1737.05, - 1737.05, - 405 - ], - [ - "2017-12-21T15:14:00+0530", - 1737.05, - 1739.8, - 1737.05, - 1739.45, - 531 - ], - [ - "2017-12-21T15:15:00+0530", - 1738.55, - 1739.1, - 1737.55, - 1739.1, - 207 - ], - [ - "2017-12-21T15:16:00+0530", - 1739.1, - 1740.7, - 1737.6, - 1738.5, - 3263 - ], - [ - "2017-12-21T15:17:00+0530", - 1738.5, - 1739.15, - 1738, - 1738, - 124 - ], - [ - "2017-12-21T15:18:00+0530", - 1738, - 1738.8, - 1738, - 1738, - 310 - ], - [ - "2017-12-21T15:19:00+0530", - 1738, - 1740.6, - 1738, - 1739.6, - 934 - ], - [ - "2017-12-21T15:20:00+0530", - 1739.6, - 1741.1, - 1738.25, - 1739, - 1333 - ], - [ - "2017-12-21T15:21:00+0530", - 1739.15, - 1740.85, - 1738.3, - 1739.25, - 1176 - ], - [ - "2017-12-21T15:22:00+0530", - 1739.5, - 1740.8, - 1738.6, - 1738.7, - 2614 - ], - [ - "2017-12-21T15:23:00+0530", - 1738.7, - 1738.85, - 1738.35, - 1738.85, - 980 - ], - [ - "2017-12-21T15:24:00+0530", - 1739, - 1739.9, - 1738.7, - 1738.7, - 884 - ], - [ - "2017-12-21T15:25:00+0530", - 1738.7, - 1739.85, - 1738.7, - 1738.7, - 454 - ], - [ - "2017-12-21T15:26:00+0530", - 1738.7, - 1738.85, - 1738.6, - 1738.6, - 1345 - ], - [ - "2017-12-21T15:27:00+0530", - 1738.55, - 1738.55, - 1736, - 1736.95, - 518 - ], - [ - "2017-12-21T15:28:00+0530", - 1736.95, - 1736.95, - 1735.3, - 1736.85, - 457 - ], - [ - "2017-12-21T15:29:00+0530", - 1736.1, - 1737.95, - 1732, - 1736, - 880 - ], - [ - "2017-12-22T09:15:00+0530", - 1742, - 1743.9, - 1735.6, - 1743.9, - 2078 - ], - [ - "2017-12-22T09:16:00+0530", - 1744.9, - 1744.9, - 1742.1, - 1744.5, - 1242 - ], - [ - "2017-12-22T09:17:00+0530", - 1743.6, - 1744, - 1740.55, - 1744, - 1075 - ], - [ - "2017-12-22T09:18:00+0530", - 1743.95, - 1744.8, - 1743.7, - 1743.7, - 385 - ], - [ - "2017-12-22T09:19:00+0530", - 1743.7, - 1744.5, - 1742.35, - 1744.05, - 642 - ], - [ - "2017-12-22T09:20:00+0530", - 1744.05, - 1744.7, - 1742.15, - 1742.15, - 356 - ], - [ - "2017-12-22T09:21:00+0530", - 1742.95, - 1743.75, - 1742.15, - 1742.5, - 458 - ], - [ - "2017-12-22T09:22:00+0530", - 1743.85, - 1743.9, - 1742.55, - 1742.55, - 396 - ], - [ - "2017-12-22T09:23:00+0530", - 1742.55, - 1743.15, - 1741.15, - 1741.15, - 584 - ], - [ - "2017-12-22T09:24:00+0530", - 1741.15, - 1742.9, - 1741.15, - 1742.9, - 258 - ], - [ - "2017-12-22T09:25:00+0530", - 1742.9, - 1742.9, - 1742, - 1742.3, - 640 - ], - [ - "2017-12-22T09:26:00+0530", - 1742.3, - 1742.3, - 1741.3, - 1741.3, - 505 - ], - [ - "2017-12-22T09:27:00+0530", - 1741.45, - 1742.6, - 1741.45, - 1742.6, - 238 - ], - [ - "2017-12-22T09:28:00+0530", - 1742.2, - 1742.7, - 1741.3, - 1742.7, - 375 - ], - [ - "2017-12-22T09:29:00+0530", - 1742.7, - 1742.7, - 1741, - 1741, - 168 - ], - [ - "2017-12-22T09:30:00+0530", - 1741, - 1741, - 1739.85, - 1739.85, - 304 - ], - [ - "2017-12-22T09:31:00+0530", - 1740.1, - 1740.1, - 1739, - 1739.5, - 212 - ], - [ - "2017-12-22T09:32:00+0530", - 1739.5, - 1739.5, - 1737, - 1737, - 334 - ], - [ - "2017-12-22T09:33:00+0530", - 1736.55, - 1738.3, - 1736.55, - 1738.3, - 853 - ], - [ - "2017-12-22T09:34:00+0530", - 1738.3, - 1738.85, - 1736.75, - 1736.75, - 764 - ], - [ - "2017-12-22T09:35:00+0530", - 1736.75, - 1736.75, - 1733.55, - 1733.55, - 756 - ], - [ - "2017-12-22T09:36:00+0530", - 1733.55, - 1735.2, - 1731, - 1732.7, - 2158 - ], - [ - "2017-12-22T09:37:00+0530", - 1732.7, - 1732.7, - 1730, - 1730.45, - 1356 - ], - [ - "2017-12-22T09:38:00+0530", - 1730.45, - 1731.55, - 1730.05, - 1731, - 782 - ], - [ - "2017-12-22T09:39:00+0530", - 1730.55, - 1731.65, - 1730.5, - 1731, - 506 - ], - [ - "2017-12-22T09:40:00+0530", - 1730.55, - 1731.65, - 1729.15, - 1729.15, - 2041 - ], - [ - "2017-12-22T09:41:00+0530", - 1729.15, - 1731.7, - 1729.15, - 1730.1, - 574 - ], - [ - "2017-12-22T09:42:00+0530", - 1730.1, - 1730.1, - 1726.2, - 1726.55, - 3554 - ], - [ - "2017-12-22T09:43:00+0530", - 1726.55, - 1727.15, - 1725.8, - 1727, - 912 - ], - [ - "2017-12-22T09:44:00+0530", - 1727, - 1728.45, - 1726.5, - 1727.9, - 911 - ], - [ - "2017-12-22T09:45:00+0530", - 1727.9, - 1727.9, - 1725.6, - 1726.5, - 597 - ], - [ - "2017-12-22T09:46:00+0530", - 1726.5, - 1727.95, - 1726, - 1726.55, - 1133 - ], - [ - "2017-12-22T09:47:00+0530", - 1726.55, - 1728.95, - 1726.55, - 1728.9, - 155 - ], - [ - "2017-12-22T09:48:00+0530", - 1728.9, - 1728.9, - 1726.45, - 1727, - 392 - ], - [ - "2017-12-22T09:49:00+0530", - 1727, - 1727, - 1726, - 1727, - 983 - ], - [ - "2017-12-22T09:50:00+0530", - 1726, - 1727.5, - 1726, - 1726.55, - 545 - ], - [ - "2017-12-22T09:51:00+0530", - 1726.55, - 1727.35, - 1726.55, - 1727.35, - 1 - ], - [ - "2017-12-22T09:52:00+0530", - 1727.35, - 1727.8, - 1726, - 1726, - 466 - ], - [ - "2017-12-22T09:53:00+0530", - 1726, - 1726.95, - 1725.3, - 1725.3, - 658 - ], - [ - "2017-12-22T09:54:00+0530", - 1725.3, - 1727.45, - 1725.3, - 1726.15, - 224 - ], - [ - "2017-12-22T09:55:00+0530", - 1726.15, - 1727, - 1726.1, - 1726.5, - 424 - ], - [ - "2017-12-22T09:56:00+0530", - 1727.25, - 1728.7, - 1726.95, - 1728.7, - 275 - ], - [ - "2017-12-22T09:57:00+0530", - 1728.7, - 1728.85, - 1728, - 1728, - 262 - ], - [ - "2017-12-22T09:58:00+0530", - 1728, - 1730, - 1728, - 1728.8, - 467 - ], - [ - "2017-12-22T09:59:00+0530", - 1728.8, - 1729.7, - 1728.5, - 1728.5, - 355 - ], - [ - "2017-12-22T10:00:00+0530", - 1728.5, - 1730, - 1728.5, - 1729.1, - 510 - ], - [ - "2017-12-22T10:01:00+0530", - 1729.1, - 1730, - 1728.55, - 1728.6, - 272 - ], - [ - "2017-12-22T10:02:00+0530", - 1729.75, - 1731.8, - 1729.15, - 1731, - 328 - ], - [ - "2017-12-22T10:03:00+0530", - 1730.75, - 1730.75, - 1729.8, - 1730, - 350 - ], - [ - "2017-12-22T10:04:00+0530", - 1730.35, - 1730.55, - 1729, - 1729.35, - 321 - ], - [ - "2017-12-22T10:05:00+0530", - 1729.35, - 1730, - 1729, - 1729.05, - 71 - ], - [ - "2017-12-22T10:06:00+0530", - 1729.05, - 1730.15, - 1729, - 1729.05, - 127 - ], - [ - "2017-12-22T10:07:00+0530", - 1729.05, - 1729.95, - 1729.05, - 1729.95, - 176 - ], - [ - "2017-12-22T10:08:00+0530", - 1729.95, - 1730.15, - 1729.1, - 1729.1, - 36 - ], - [ - "2017-12-22T10:09:00+0530", - 1730, - 1730, - 1729.1, - 1729.1, - 394 - ], - [ - "2017-12-22T10:10:00+0530", - 1729.1, - 1730.55, - 1729.1, - 1730.15, - 545 - ], - [ - "2017-12-22T10:11:00+0530", - 1730.15, - 1731, - 1730.15, - 1730.15, - 113 - ], - [ - "2017-12-22T10:12:00+0530", - 1730.15, - 1730.15, - 1729.5, - 1729.5, - 255 - ], - [ - "2017-12-22T10:13:00+0530", - 1729.5, - 1729.95, - 1729.5, - 1729.5, - 61 - ], - [ - "2017-12-22T10:14:00+0530", - 1729.5, - 1729.95, - 1729.5, - 1729.5, - 24 - ], - [ - "2017-12-22T10:15:00+0530", - 1729.5, - 1729.5, - 1729.5, - 1729.5, - 4 - ], - [ - "2017-12-22T10:16:00+0530", - 1729.5, - 1730.65, - 1729.5, - 1729.5, - 252 - ], - [ - "2017-12-22T10:17:00+0530", - 1729.5, - 1729.5, - 1729.5, - 1729.5, - 271 - ], - [ - "2017-12-22T10:18:00+0530", - 1729.5, - 1729.5, - 1729.5, - 1729.5, - 0 - ], - [ - "2017-12-22T10:19:00+0530", - 1729.5, - 1730.15, - 1729.5, - 1729.55, - 47 - ], - [ - "2017-12-22T10:20:00+0530", - 1729.55, - 1731, - 1729.55, - 1730, - 132 - ], - [ - "2017-12-22T10:21:00+0530", - 1730, - 1731.1, - 1729.35, - 1729.35, - 585 - ], - [ - "2017-12-22T10:22:00+0530", - 1729.35, - 1730.6, - 1729.35, - 1730.6, - 8 - ], - [ - "2017-12-22T10:23:00+0530", - 1730.6, - 1730.6, - 1730.6, - 1730.6, - 0 - ], - [ - "2017-12-22T10:24:00+0530", - 1730.6, - 1732.5, - 1729.35, - 1729.35, - 336 - ], - [ - "2017-12-22T10:25:00+0530", - 1729.35, - 1732.45, - 1728.6, - 1731, - 692 - ], - [ - "2017-12-22T10:26:00+0530", - 1731, - 1731, - 1730, - 1730.8, - 319 - ], - [ - "2017-12-22T10:27:00+0530", - 1730.8, - 1732, - 1730.1, - 1731.75, - 740 - ], - [ - "2017-12-22T10:28:00+0530", - 1731.75, - 1731.75, - 1731.15, - 1731.15, - 1 - ], - [ - "2017-12-22T10:29:00+0530", - 1731.15, - 1731.9, - 1730.8, - 1730.8, - 44 - ], - [ - "2017-12-22T10:30:00+0530", - 1730.8, - 1732.6, - 1730.8, - 1731.9, - 126 - ], - [ - "2017-12-22T10:31:00+0530", - 1731.9, - 1731.9, - 1731.2, - 1731.2, - 20 - ], - [ - "2017-12-22T10:32:00+0530", - 1731.2, - 1731.2, - 1730.25, - 1730.25, - 455 - ], - [ - "2017-12-22T10:33:00+0530", - 1730.2, - 1730.3, - 1730.2, - 1730.3, - 157 - ], - [ - "2017-12-22T10:34:00+0530", - 1730.3, - 1730.3, - 1730.3, - 1730.3, - 0 - ], - [ - "2017-12-22T10:35:00+0530", - 1730.3, - 1730.3, - 1730.3, - 1730.3, - 0 - ], - [ - "2017-12-22T10:36:00+0530", - 1730.3, - 1731.25, - 1730.3, - 1731.25, - 98 - ], - [ - "2017-12-22T10:37:00+0530", - 1731.25, - 1731.25, - 1729.6, - 1729.6, - 122 - ], - [ - "2017-12-22T10:38:00+0530", - 1729.6, - 1729.6, - 1728.55, - 1728.55, - 42 - ], - [ - "2017-12-22T10:39:00+0530", - 1728.55, - 1731.25, - 1728.55, - 1731, - 301 - ], - [ - "2017-12-22T10:40:00+0530", - 1731, - 1731.9, - 1731, - 1731, - 268 - ], - [ - "2017-12-22T10:41:00+0530", - 1731, - 1731.9, - 1731, - 1731, - 295 - ], - [ - "2017-12-22T10:42:00+0530", - 1731, - 1731.55, - 1731, - 1731.55, - 530 - ], - [ - "2017-12-22T10:43:00+0530", - 1731.55, - 1731.55, - 1731, - 1731, - 100 - ], - [ - "2017-12-22T10:44:00+0530", - 1731, - 1731.85, - 1731, - 1731, - 71 - ], - [ - "2017-12-22T10:45:00+0530", - 1731, - 1731, - 1730, - 1730, - 816 - ], - [ - "2017-12-22T10:46:00+0530", - 1730, - 1730, - 1729, - 1729, - 202 - ], - [ - "2017-12-22T10:47:00+0530", - 1729, - 1730, - 1729, - 1729, - 164 - ], - [ - "2017-12-22T10:48:00+0530", - 1729, - 1729, - 1728, - 1728.5, - 864 - ], - [ - "2017-12-22T10:49:00+0530", - 1729, - 1729, - 1728.2, - 1728.25, - 369 - ], - [ - "2017-12-22T10:50:00+0530", - 1728.25, - 1729.45, - 1727.05, - 1727.05, - 599 - ], - [ - "2017-12-22T10:51:00+0530", - 1727.05, - 1729.1, - 1727.05, - 1728.7, - 808 - ], - [ - "2017-12-22T10:52:00+0530", - 1726.25, - 1727.4, - 1726, - 1726, - 211 - ], - [ - "2017-12-22T10:53:00+0530", - 1726, - 1727.4, - 1726, - 1726, - 175 - ], - [ - "2017-12-22T10:54:00+0530", - 1727, - 1727, - 1726, - 1726.95, - 543 - ], - [ - "2017-12-22T10:55:00+0530", - 1726.95, - 1727.85, - 1726.2, - 1726.5, - 162 - ], - [ - "2017-12-22T10:56:00+0530", - 1726.5, - 1726.5, - 1726.5, - 1726.5, - 20 - ], - [ - "2017-12-22T10:57:00+0530", - 1726.5, - 1727.9, - 1726.5, - 1726.65, - 21 - ], - [ - "2017-12-22T10:58:00+0530", - 1727.9, - 1728.05, - 1727, - 1727.25, - 188 - ], - [ - "2017-12-22T10:59:00+0530", - 1727.25, - 1729.35, - 1727.25, - 1727.9, - 147 - ], - [ - "2017-12-22T11:00:00+0530", - 1727.9, - 1727.9, - 1726.25, - 1727.05, - 299 - ], - [ - "2017-12-22T11:01:00+0530", - 1727, - 1728, - 1726.7, - 1727, - 204 - ], - [ - "2017-12-22T11:02:00+0530", - 1727, - 1728.2, - 1727, - 1728.2, - 184 - ], - [ - "2017-12-22T11:03:00+0530", - 1728.2, - 1728.95, - 1728.2, - 1728.95, - 9 - ], - [ - "2017-12-22T11:04:00+0530", - 1728.2, - 1729, - 1728, - 1728, - 318 - ], - [ - "2017-12-22T11:05:00+0530", - 1728, - 1728.55, - 1728, - 1728, - 239 - ], - [ - "2017-12-22T11:06:00+0530", - 1728, - 1728.4, - 1728, - 1728.4, - 16 - ], - [ - "2017-12-22T11:07:00+0530", - 1728.4, - 1728.85, - 1728, - 1728, - 231 - ], - [ - "2017-12-22T11:08:00+0530", - 1728, - 1728.7, - 1728, - 1728, - 132 - ], - [ - "2017-12-22T11:09:00+0530", - 1728, - 1728, - 1728, - 1728, - 7 - ], - [ - "2017-12-22T11:10:00+0530", - 1728, - 1728.9, - 1728, - 1728.05, - 3 - ], - [ - "2017-12-22T11:11:00+0530", - 1728.05, - 1728.05, - 1728.05, - 1728.05, - 0 - ], - [ - "2017-12-22T11:12:00+0530", - 1728.05, - 1728.95, - 1728.05, - 1728.95, - 3 - ], - [ - "2017-12-22T11:13:00+0530", - 1728.95, - 1728.95, - 1728.85, - 1728.85, - 1 - ], - [ - "2017-12-22T11:14:00+0530", - 1728.85, - 1728.85, - 1728, - 1728, - 99 - ], - [ - "2017-12-22T11:15:00+0530", - 1728, - 1728.7, - 1728, - 1728, - 135 - ], - [ - "2017-12-22T11:16:00+0530", - 1728, - 1728, - 1728, - 1728, - 5 - ], - [ - "2017-12-22T11:17:00+0530", - 1728, - 1728, - 1726.55, - 1726.65, - 353 - ], - [ - "2017-12-22T11:18:00+0530", - 1726.65, - 1728.7, - 1726.65, - 1726.65, - 81 - ], - [ - "2017-12-22T11:19:00+0530", - 1726.65, - 1728.05, - 1726.65, - 1727.15, - 62 - ], - [ - "2017-12-22T11:20:00+0530", - 1727.15, - 1727.75, - 1726.65, - 1727.1, - 26 - ], - [ - "2017-12-22T11:21:00+0530", - 1727.1, - 1728.2, - 1727.1, - 1728.2, - 8 - ], - [ - "2017-12-22T11:22:00+0530", - 1728.2, - 1729.6, - 1727.2, - 1728.4, - 1018 - ], - [ - "2017-12-22T11:23:00+0530", - 1727.2, - 1728.35, - 1727.2, - 1728.35, - 14 - ], - [ - "2017-12-22T11:24:00+0530", - 1728.35, - 1728.5, - 1727.25, - 1728.1, - 55 - ], - [ - "2017-12-22T11:25:00+0530", - 1728.1, - 1728.7, - 1727.3, - 1727.45, - 573 - ], - [ - "2017-12-22T11:26:00+0530", - 1727.45, - 1728.45, - 1727.45, - 1727.75, - 38 - ], - [ - "2017-12-22T11:27:00+0530", - 1727.75, - 1727.75, - 1727.65, - 1727.65, - 96 - ], - [ - "2017-12-22T11:28:00+0530", - 1727.65, - 1727.85, - 1727.2, - 1727.2, - 83 - ], - [ - "2017-12-22T11:29:00+0530", - 1728.05, - 1728.4, - 1727, - 1727, - 465 - ], - [ - "2017-12-22T11:30:00+0530", - 1727, - 1727.6, - 1726.05, - 1726.15, - 255 - ], - [ - "2017-12-22T11:31:00+0530", - 1726.15, - 1727, - 1726.05, - 1726.1, - 84 - ], - [ - "2017-12-22T11:32:00+0530", - 1726.1, - 1727, - 1726, - 1727, - 372 - ], - [ - "2017-12-22T11:33:00+0530", - 1727, - 1727.7, - 1726, - 1726, - 125 - ], - [ - "2017-12-22T11:34:00+0530", - 1726, - 1726, - 1726, - 1726, - 317 - ], - [ - "2017-12-22T11:35:00+0530", - 1726, - 1726.7, - 1726, - 1726.7, - 55 - ], - [ - "2017-12-22T11:36:00+0530", - 1726.7, - 1727, - 1726.7, - 1727, - 1 - ], - [ - "2017-12-22T11:37:00+0530", - 1727, - 1727, - 1726, - 1726, - 368 - ], - [ - "2017-12-22T11:38:00+0530", - 1726, - 1726, - 1726, - 1726, - 1 - ], - [ - "2017-12-22T11:39:00+0530", - 1726, - 1727, - 1726, - 1726, - 37 - ], - [ - "2017-12-22T11:40:00+0530", - 1726, - 1727, - 1726, - 1726.25, - 86 - ], - [ - "2017-12-22T11:41:00+0530", - 1726.25, - 1727, - 1726.15, - 1726.15, - 79 - ], - [ - "2017-12-22T11:42:00+0530", - 1726.15, - 1726.15, - 1726, - 1726.05, - 55 - ], - [ - "2017-12-22T11:43:00+0530", - 1726.05, - 1727.7, - 1726.05, - 1727, - 214 - ], - [ - "2017-12-22T11:44:00+0530", - 1727, - 1727.8, - 1727, - 1727.8, - 18 - ], - [ - "2017-12-22T11:45:00+0530", - 1727.8, - 1729, - 1727, - 1728.95, - 713 - ], - [ - "2017-12-22T11:46:00+0530", - 1727.25, - 1728.6, - 1726.8, - 1728.45, - 378 - ], - [ - "2017-12-22T11:47:00+0530", - 1728.45, - 1728.45, - 1726.95, - 1728.2, - 25 - ], - [ - "2017-12-22T11:48:00+0530", - 1728.2, - 1728.2, - 1727.05, - 1728.2, - 30 - ], - [ - "2017-12-22T11:49:00+0530", - 1728.2, - 1728.2, - 1727.25, - 1727.25, - 45 - ], - [ - "2017-12-22T11:50:00+0530", - 1727.25, - 1728, - 1726, - 1727.45, - 1469 - ], - [ - "2017-12-22T11:51:00+0530", - 1726, - 1727.6, - 1726, - 1726.55, - 182 - ], - [ - "2017-12-22T11:52:00+0530", - 1727, - 1727.65, - 1726.25, - 1726.35, - 195 - ], - [ - "2017-12-22T11:53:00+0530", - 1726.35, - 1727.55, - 1726.35, - 1726.5, - 20 - ], - [ - "2017-12-22T11:54:00+0530", - 1726.5, - 1727.4, - 1726.5, - 1726.5, - 141 - ], - [ - "2017-12-22T11:55:00+0530", - 1726.5, - 1726.8, - 1726.1, - 1726.1, - 362 - ], - [ - "2017-12-22T11:56:00+0530", - 1726.1, - 1727.1, - 1726.1, - 1726.1, - 115 - ], - [ - "2017-12-22T11:57:00+0530", - 1726.1, - 1727, - 1726.1, - 1726.1, - 6 - ], - [ - "2017-12-22T11:58:00+0530", - 1726.1, - 1727.05, - 1726.1, - 1726.2, - 138 - ], - [ - "2017-12-22T11:59:00+0530", - 1726.2, - 1727.15, - 1726, - 1726, - 293 - ], - [ - "2017-12-22T12:00:00+0530", - 1726, - 1726, - 1726, - 1726, - 23 - ], - [ - "2017-12-22T12:01:00+0530", - 1726, - 1726, - 1726, - 1726, - 72 - ], - [ - "2017-12-22T12:02:00+0530", - 1726, - 1727.15, - 1726, - 1726.05, - 44 - ], - [ - "2017-12-22T12:03:00+0530", - 1726.05, - 1726.15, - 1726.05, - 1726.15, - 15 - ], - [ - "2017-12-22T12:04:00+0530", - 1726.15, - 1726.25, - 1726.05, - 1726.1, - 185 - ], - [ - "2017-12-22T12:05:00+0530", - 1726.1, - 1726.1, - 1726.1, - 1726.1, - 0 - ], - [ - "2017-12-22T12:06:00+0530", - 1726.1, - 1726.95, - 1726.1, - 1726.15, - 72 - ], - [ - "2017-12-22T12:07:00+0530", - 1726.15, - 1726.95, - 1726.1, - 1726.1, - 121 - ], - [ - "2017-12-22T12:08:00+0530", - 1726.1, - 1726.95, - 1726.1, - 1726.1, - 30 - ], - [ - "2017-12-22T12:09:00+0530", - 1726.1, - 1726.95, - 1726.1, - 1726.1, - 223 - ], - [ - "2017-12-22T12:10:00+0530", - 1726.1, - 1726.9, - 1726.05, - 1726.05, - 139 - ], - [ - "2017-12-22T12:11:00+0530", - 1726.05, - 1726.05, - 1726, - 1726, - 116 - ], - [ - "2017-12-22T12:12:00+0530", - 1726, - 1726, - 1726, - 1726, - 0 - ], - [ - "2017-12-22T12:13:00+0530", - 1726, - 1726, - 1726, - 1726, - 0 - ], - [ - "2017-12-22T12:14:00+0530", - 1726, - 1726.75, - 1723.6, - 1723.7, - 2661 - ], - [ - "2017-12-22T12:15:00+0530", - 1723.6, - 1723.6, - 1720.9, - 1721.1, - 4427 - ], - [ - "2017-12-22T12:16:00+0530", - 1721.2, - 1722.65, - 1720.35, - 1720.85, - 1046 - ], - [ - "2017-12-22T12:17:00+0530", - 1720.8, - 1723, - 1720.45, - 1720.55, - 2521 - ], - [ - "2017-12-22T12:18:00+0530", - 1720.3, - 1721.9, - 1720, - 1721.9, - 2351 - ], - [ - "2017-12-22T12:19:00+0530", - 1721.05, - 1721.95, - 1721, - 1721.9, - 313 - ], - [ - "2017-12-22T12:20:00+0530", - 1721, - 1722, - 1720.6, - 1720.6, - 1351 - ], - [ - "2017-12-22T12:21:00+0530", - 1721.05, - 1722.3, - 1721, - 1721.15, - 933 - ], - [ - "2017-12-22T12:22:00+0530", - 1721.25, - 1722.25, - 1721, - 1721.05, - 570 - ], - [ - "2017-12-22T12:23:00+0530", - 1721.05, - 1722, - 1721, - 1721, - 564 - ], - [ - "2017-12-22T12:24:00+0530", - 1721.1, - 1722, - 1721.1, - 1721.2, - 142 - ], - [ - "2017-12-22T12:25:00+0530", - 1721.2, - 1722.15, - 1721, - 1721.05, - 824 - ], - [ - "2017-12-22T12:26:00+0530", - 1721.05, - 1721.9, - 1721.05, - 1721.5, - 70 - ], - [ - "2017-12-22T12:27:00+0530", - 1721.5, - 1722, - 1721.05, - 1721.05, - 528 - ], - [ - "2017-12-22T12:28:00+0530", - 1721.05, - 1722.5, - 1721.05, - 1721.6, - 1328 - ], - [ - "2017-12-22T12:29:00+0530", - 1721.6, - 1722, - 1721.2, - 1721.8, - 116 - ], - [ - "2017-12-22T12:30:00+0530", - 1721.8, - 1722, - 1721.8, - 1721.95, - 15 - ], - [ - "2017-12-22T12:31:00+0530", - 1721.95, - 1723, - 1721.7, - 1722, - 2108 - ], - [ - "2017-12-22T12:32:00+0530", - 1722, - 1722.1, - 1720.5, - 1721.6, - 5144 - ], - [ - "2017-12-22T12:33:00+0530", - 1721.9, - 1721.9, - 1721.05, - 1721.2, - 97 - ], - [ - "2017-12-22T12:34:00+0530", - 1721.2, - 1722, - 1721.2, - 1721.9, - 132 - ], - [ - "2017-12-22T12:35:00+0530", - 1721.5, - 1721.95, - 1720.2, - 1721, - 3458 - ], - [ - "2017-12-22T12:36:00+0530", - 1721, - 1722, - 1720.1, - 1721.25, - 560 - ], - [ - "2017-12-22T12:37:00+0530", - 1721.25, - 1722, - 1721.25, - 1721.25, - 1132 - ], - [ - "2017-12-22T12:38:00+0530", - 1721.25, - 1722.75, - 1721, - 1721.5, - 1680 - ], - [ - "2017-12-22T12:39:00+0530", - 1721.5, - 1721.5, - 1721, - 1721, - 608 - ], - [ - "2017-12-22T12:40:00+0530", - 1721, - 1721.65, - 1721, - 1721, - 822 - ], - [ - "2017-12-22T12:41:00+0530", - 1721, - 1722.15, - 1720.7, - 1721.05, - 3246 - ], - [ - "2017-12-22T12:42:00+0530", - 1721.05, - 1721.85, - 1721, - 1721.85, - 553 - ], - [ - "2017-12-22T12:43:00+0530", - 1721.85, - 1722.25, - 1721.3, - 1721.55, - 786 - ], - [ - "2017-12-22T12:44:00+0530", - 1721.55, - 1721.6, - 1720.35, - 1721, - 3289 - ], - [ - "2017-12-22T12:45:00+0530", - 1721, - 1721.3, - 1721, - 1721.3, - 186 - ], - [ - "2017-12-22T12:46:00+0530", - 1721.3, - 1722, - 1721.3, - 1722, - 419 - ], - [ - "2017-12-22T12:47:00+0530", - 1722, - 1722, - 1721.3, - 1721.85, - 295 - ], - [ - "2017-12-22T12:48:00+0530", - 1721.85, - 1722, - 1721, - 1721, - 1794 - ], - [ - "2017-12-22T12:49:00+0530", - 1721, - 1722, - 1720.15, - 1720.15, - 202 - ], - [ - "2017-12-22T12:50:00+0530", - 1720.15, - 1722.1, - 1720.15, - 1721.65, - 682 - ], - [ - "2017-12-22T12:51:00+0530", - 1721.65, - 1721.8, - 1721.6, - 1721.75, - 46 - ], - [ - "2017-12-22T12:52:00+0530", - 1721.75, - 1721.95, - 1721.75, - 1721.9, - 3 - ], - [ - "2017-12-22T12:53:00+0530", - 1721.9, - 1721.9, - 1721.05, - 1721.05, - 4 - ], - [ - "2017-12-22T12:54:00+0530", - 1721.05, - 1721.75, - 1721.05, - 1721.05, - 473 - ], - [ - "2017-12-22T12:55:00+0530", - 1721.05, - 1721.05, - 1720.4, - 1720.4, - 36 - ], - [ - "2017-12-22T12:56:00+0530", - 1720.4, - 1721, - 1720.4, - 1720.6, - 483 - ], - [ - "2017-12-22T12:57:00+0530", - 1720.6, - 1722, - 1720.6, - 1722, - 520 - ], - [ - "2017-12-22T12:58:00+0530", - 1722, - 1722.35, - 1722, - 1722.35, - 414 - ], - [ - "2017-12-22T12:59:00+0530", - 1722.35, - 1722.35, - 1721.4, - 1722, - 958 - ], - [ - "2017-12-22T13:00:00+0530", - 1722, - 1722.35, - 1722, - 1722, - 518 - ], - [ - "2017-12-22T13:01:00+0530", - 1722.35, - 1722.35, - 1720.65, - 1721, - 5374 - ], - [ - "2017-12-22T13:02:00+0530", - 1721, - 1722.5, - 1721, - 1722.5, - 52 - ], - [ - "2017-12-22T13:03:00+0530", - 1723, - 1724, - 1722.6, - 1722.65, - 1771 - ], - [ - "2017-12-22T13:04:00+0530", - 1722.65, - 1723.85, - 1722.65, - 1722.65, - 123 - ], - [ - "2017-12-22T13:05:00+0530", - 1722.65, - 1722.95, - 1722.25, - 1722.95, - 17 - ], - [ - "2017-12-22T13:06:00+0530", - 1722.95, - 1723.9, - 1722.25, - 1723.3, - 736 - ], - [ - "2017-12-22T13:07:00+0530", - 1723.3, - 1723.3, - 1722, - 1723.1, - 141 - ], - [ - "2017-12-22T13:08:00+0530", - 1723.1, - 1723.75, - 1722.1, - 1723, - 664 - ], - [ - "2017-12-22T13:09:00+0530", - 1723, - 1723.95, - 1723, - 1723.45, - 157 - ], - [ - "2017-12-22T13:10:00+0530", - 1723.45, - 1724, - 1723.05, - 1723.25, - 207 - ], - [ - "2017-12-22T13:11:00+0530", - 1723.25, - 1724, - 1723.25, - 1723.5, - 78 - ], - [ - "2017-12-22T13:12:00+0530", - 1723.5, - 1726.65, - 1723.5, - 1725.95, - 3888 - ], - [ - "2017-12-22T13:13:00+0530", - 1725.95, - 1725.95, - 1725.15, - 1725.25, - 367 - ], - [ - "2017-12-22T13:14:00+0530", - 1725.25, - 1726, - 1724.5, - 1724.65, - 663 - ], - [ - "2017-12-22T13:15:00+0530", - 1725.65, - 1726, - 1725, - 1725.35, - 478 - ], - [ - "2017-12-22T13:16:00+0530", - 1725.3, - 1728.1, - 1725, - 1728.1, - 2079 - ], - [ - "2017-12-22T13:17:00+0530", - 1728.1, - 1728.1, - 1726.1, - 1726.1, - 776 - ], - [ - "2017-12-22T13:18:00+0530", - 1726.1, - 1726.2, - 1725.75, - 1725.75, - 127 - ], - [ - "2017-12-22T13:19:00+0530", - 1725.75, - 1726.55, - 1725.75, - 1726.5, - 74 - ], - [ - "2017-12-22T13:20:00+0530", - 1726.5, - 1726.5, - 1725.65, - 1726.05, - 140 - ], - [ - "2017-12-22T13:21:00+0530", - 1726.05, - 1726.05, - 1725.15, - 1725.15, - 4 - ], - [ - "2017-12-22T13:22:00+0530", - 1725.15, - 1726.5, - 1725.15, - 1726.5, - 470 - ], - [ - "2017-12-22T13:23:00+0530", - 1726.5, - 1726.5, - 1725, - 1725.5, - 173 - ], - [ - "2017-12-22T13:24:00+0530", - 1725.5, - 1727, - 1725.5, - 1727, - 258 - ], - [ - "2017-12-22T13:25:00+0530", - 1727, - 1727.3, - 1726.2, - 1726.2, - 34 - ], - [ - "2017-12-22T13:26:00+0530", - 1726.2, - 1727.4, - 1726.2, - 1726.35, - 35 - ], - [ - "2017-12-22T13:27:00+0530", - 1726.35, - 1727.85, - 1726.35, - 1726.55, - 649 - ], - [ - "2017-12-22T13:28:00+0530", - 1726.55, - 1727.55, - 1726.55, - 1727.55, - 61 - ], - [ - "2017-12-22T13:29:00+0530", - 1727.55, - 1727.85, - 1727.55, - 1727.85, - 194 - ], - [ - "2017-12-22T13:30:00+0530", - 1727.85, - 1728.2, - 1726.55, - 1727.5, - 652 - ], - [ - "2017-12-22T13:31:00+0530", - 1727.5, - 1728.25, - 1727.5, - 1728.25, - 78 - ], - [ - "2017-12-22T13:32:00+0530", - 1728.25, - 1728.3, - 1727, - 1727, - 71 - ], - [ - "2017-12-22T13:33:00+0530", - 1727, - 1728, - 1727, - 1728, - 101 - ], - [ - "2017-12-22T13:34:00+0530", - 1727, - 1727, - 1725.05, - 1725.05, - 810 - ], - [ - "2017-12-22T13:35:00+0530", - 1725.05, - 1725.1, - 1725.05, - 1725.1, - 200 - ], - [ - "2017-12-22T13:36:00+0530", - 1725.1, - 1725.25, - 1725, - 1725.2, - 577 - ], - [ - "2017-12-22T13:37:00+0530", - 1725.2, - 1725.2, - 1724.5, - 1724.5, - 866 - ], - [ - "2017-12-22T13:38:00+0530", - 1724.5, - 1725.45, - 1724.2, - 1724.2, - 102 - ], - [ - "2017-12-22T13:39:00+0530", - 1724.2, - 1725, - 1724.2, - 1725, - 11 - ], - [ - "2017-12-22T13:40:00+0530", - 1725, - 1725, - 1721, - 1721, - 456 - ], - [ - "2017-12-22T13:41:00+0530", - 1721, - 1721.65, - 1720, - 1721, - 381 - ], - [ - "2017-12-22T13:42:00+0530", - 1721, - 1723, - 1721, - 1723, - 86 - ], - [ - "2017-12-22T13:43:00+0530", - 1723, - 1724.2, - 1723, - 1723.05, - 4 - ], - [ - "2017-12-22T13:44:00+0530", - 1723.05, - 1723.85, - 1723.05, - 1723.85, - 10 - ], - [ - "2017-12-22T13:45:00+0530", - 1723.85, - 1723.85, - 1723.1, - 1723.1, - 20 - ], - [ - "2017-12-22T13:46:00+0530", - 1723.45, - 1724.95, - 1723.45, - 1724.95, - 433 - ], - [ - "2017-12-22T13:47:00+0530", - 1724.95, - 1724.95, - 1723.5, - 1723.5, - 89 - ], - [ - "2017-12-22T13:48:00+0530", - 1723.5, - 1723.85, - 1722.05, - 1722.3, - 700 - ], - [ - "2017-12-22T13:49:00+0530", - 1722.3, - 1724.45, - 1722.05, - 1723.15, - 714 - ], - [ - "2017-12-22T13:50:00+0530", - 1723.15, - 1724.35, - 1722.9, - 1722.9, - 206 - ], - [ - "2017-12-22T13:51:00+0530", - 1723.95, - 1724, - 1722.95, - 1722.95, - 50 - ], - [ - "2017-12-22T13:52:00+0530", - 1722.95, - 1724.2, - 1722.95, - 1724.2, - 100 - ], - [ - "2017-12-22T13:53:00+0530", - 1724.2, - 1724.2, - 1722.6, - 1722.6, - 21 - ], - [ - "2017-12-22T13:54:00+0530", - 1722.6, - 1724.25, - 1722.6, - 1723.95, - 83 - ], - [ - "2017-12-22T13:55:00+0530", - 1723.95, - 1724.4, - 1723.95, - 1724.4, - 44 - ], - [ - "2017-12-22T13:56:00+0530", - 1724.4, - 1724.4, - 1723.15, - 1723.15, - 1 - ], - [ - "2017-12-22T13:57:00+0530", - 1723.15, - 1723.15, - 1723.15, - 1723.15, - 0 - ], - [ - "2017-12-22T13:58:00+0530", - 1723.15, - 1723.15, - 1722.5, - 1722.5, - 123 - ], - [ - "2017-12-22T13:59:00+0530", - 1722.5, - 1722.5, - 1722.5, - 1722.5, - 0 - ], - [ - "2017-12-22T14:00:00+0530", - 1722.5, - 1722.75, - 1722.5, - 1722.75, - 5 - ], - [ - "2017-12-22T14:01:00+0530", - 1722.75, - 1723.05, - 1722.75, - 1723.05, - 104 - ], - [ - "2017-12-22T14:02:00+0530", - 1723.05, - 1723.5, - 1723.05, - 1723.5, - 1 - ], - [ - "2017-12-22T14:03:00+0530", - 1723.5, - 1724.85, - 1723.5, - 1724.85, - 24 - ], - [ - "2017-12-22T14:04:00+0530", - 1724.85, - 1724.85, - 1724.65, - 1724.65, - 202 - ], - [ - "2017-12-22T14:05:00+0530", - 1725.25, - 1725.25, - 1724.65, - 1724.65, - 30 - ], - [ - "2017-12-22T14:06:00+0530", - 1724.65, - 1725.3, - 1723.5, - 1723.5, - 120 - ], - [ - "2017-12-22T14:07:00+0530", - 1723.5, - 1724, - 1723.5, - 1724, - 42 - ], - [ - "2017-12-22T14:08:00+0530", - 1724, - 1724.45, - 1723.2, - 1723.2, - 1817 - ], - [ - "2017-12-22T14:09:00+0530", - 1722.65, - 1724.3, - 1722.65, - 1723.75, - 1096 - ], - [ - "2017-12-22T14:10:00+0530", - 1723.75, - 1724, - 1723.75, - 1723.75, - 28 - ], - [ - "2017-12-22T14:11:00+0530", - 1723.75, - 1723.75, - 1723.75, - 1723.75, - 5 - ], - [ - "2017-12-22T14:12:00+0530", - 1723.75, - 1723.9, - 1723.55, - 1723.9, - 81 - ], - [ - "2017-12-22T14:13:00+0530", - 1723.9, - 1723.9, - 1723.5, - 1723.5, - 12 - ], - [ - "2017-12-22T14:14:00+0530", - 1723.5, - 1723.85, - 1722.5, - 1722.5, - 175 - ], - [ - "2017-12-22T14:15:00+0530", - 1722.5, - 1722.55, - 1722, - 1722.2, - 101 - ], - [ - "2017-12-22T14:16:00+0530", - 1722.2, - 1722.25, - 1722, - 1722, - 188 - ], - [ - "2017-12-22T14:17:00+0530", - 1722, - 1722, - 1721.45, - 1722, - 126 - ], - [ - "2017-12-22T14:18:00+0530", - 1722, - 1722, - 1720.55, - 1720.55, - 94 - ], - [ - "2017-12-22T14:19:00+0530", - 1720.55, - 1721.75, - 1720.55, - 1720.6, - 85 - ], - [ - "2017-12-22T14:20:00+0530", - 1720.6, - 1720.85, - 1720.6, - 1720.85, - 21 - ], - [ - "2017-12-22T14:21:00+0530", - 1720.85, - 1721.8, - 1720.85, - 1721.1, - 45 - ], - [ - "2017-12-22T14:22:00+0530", - 1721.1, - 1721.8, - 1721.1, - 1721.1, - 174 - ], - [ - "2017-12-22T14:23:00+0530", - 1721.1, - 1721.2, - 1721.1, - 1721.1, - 98 - ], - [ - "2017-12-22T14:24:00+0530", - 1721.1, - 1722, - 1720.5, - 1720.5, - 757 - ], - [ - "2017-12-22T14:25:00+0530", - 1720.5, - 1720.95, - 1720, - 1720.15, - 812 - ], - [ - "2017-12-22T14:26:00+0530", - 1720.15, - 1720.2, - 1718.35, - 1718.35, - 746 - ], - [ - "2017-12-22T14:27:00+0530", - 1718.35, - 1719.65, - 1718, - 1718.15, - 906 - ], - [ - "2017-12-22T14:28:00+0530", - 1719.3, - 1719.9, - 1717.3, - 1717.3, - 426 - ], - [ - "2017-12-22T14:29:00+0530", - 1717.3, - 1718.95, - 1717.05, - 1717.95, - 120 - ], - [ - "2017-12-22T14:30:00+0530", - 1719.1, - 1719.2, - 1718, - 1718.5, - 344 - ], - [ - "2017-12-22T14:31:00+0530", - 1718.5, - 1719.4, - 1718.5, - 1719, - 256 - ], - [ - "2017-12-22T14:32:00+0530", - 1719, - 1719, - 1719, - 1719, - 3 - ], - [ - "2017-12-22T14:33:00+0530", - 1719.8, - 1719.8, - 1719, - 1719, - 5 - ], - [ - "2017-12-22T14:34:00+0530", - 1719, - 1722.9, - 1719, - 1722.65, - 1265 - ], - [ - "2017-12-22T14:35:00+0530", - 1722.65, - 1722.65, - 1721.25, - 1722.5, - 458 - ], - [ - "2017-12-22T14:36:00+0530", - 1722.5, - 1722.5, - 1721, - 1721.35, - 279 - ], - [ - "2017-12-22T14:37:00+0530", - 1721.35, - 1722.85, - 1721.35, - 1721.5, - 616 - ], - [ - "2017-12-22T14:38:00+0530", - 1721.5, - 1722.7, - 1721.5, - 1721.5, - 456 - ], - [ - "2017-12-22T14:39:00+0530", - 1721.5, - 1722, - 1721.5, - 1721.5, - 43 - ], - [ - "2017-12-22T14:40:00+0530", - 1721.5, - 1721.5, - 1721.1, - 1721.5, - 193 - ], - [ - "2017-12-22T14:41:00+0530", - 1721.5, - 1721.5, - 1721.1, - 1721.1, - 15 - ], - [ - "2017-12-22T14:42:00+0530", - 1721.1, - 1721.1, - 1721, - 1721.1, - 109 - ], - [ - "2017-12-22T14:43:00+0530", - 1721.1, - 1721.1, - 1721, - 1721.1, - 122 - ], - [ - "2017-12-22T14:44:00+0530", - 1721.2, - 1722.7, - 1721.2, - 1722, - 54 - ], - [ - "2017-12-22T14:45:00+0530", - 1722, - 1722.7, - 1722, - 1722, - 65 - ], - [ - "2017-12-22T14:46:00+0530", - 1722, - 1722, - 1721.55, - 1721.6, - 84 - ], - [ - "2017-12-22T14:47:00+0530", - 1721.6, - 1722, - 1721.5, - 1722, - 56 - ], - [ - "2017-12-22T14:48:00+0530", - 1722, - 1722, - 1722, - 1722, - 0 - ], - [ - "2017-12-22T14:49:00+0530", - 1722, - 1722, - 1720.5, - 1720.5, - 240 - ], - [ - "2017-12-22T14:50:00+0530", - 1720.5, - 1721.65, - 1720.5, - 1720.5, - 181 - ], - [ - "2017-12-22T14:51:00+0530", - 1720.5, - 1720.9, - 1720, - 1720, - 211 - ], - [ - "2017-12-22T14:52:00+0530", - 1720, - 1720.15, - 1719.05, - 1719.05, - 440 - ], - [ - "2017-12-22T14:53:00+0530", - 1719.05, - 1719.85, - 1717.55, - 1717.7, - 321 - ], - [ - "2017-12-22T14:54:00+0530", - 1717.7, - 1719.2, - 1717.7, - 1718.45, - 152 - ], - [ - "2017-12-22T14:55:00+0530", - 1718.45, - 1720.65, - 1718.45, - 1720.65, - 650 - ], - [ - "2017-12-22T14:56:00+0530", - 1720.65, - 1720.65, - 1718.9, - 1720.25, - 72 - ], - [ - "2017-12-22T14:57:00+0530", - 1720.25, - 1720.25, - 1720, - 1720, - 42 - ], - [ - "2017-12-22T14:58:00+0530", - 1720, - 1720.1, - 1719.95, - 1719.95, - 97 - ], - [ - "2017-12-22T14:59:00+0530", - 1719.95, - 1720.9, - 1719.95, - 1720.9, - 602 - ], - [ - "2017-12-22T15:00:00+0530", - 1720.9, - 1722.3, - 1720.05, - 1721.85, - 445 - ], - [ - "2017-12-22T15:01:00+0530", - 1721.85, - 1722.7, - 1721.85, - 1721.95, - 577 - ], - [ - "2017-12-22T15:02:00+0530", - 1721.95, - 1722.5, - 1721.6, - 1721.6, - 864 - ], - [ - "2017-12-22T15:03:00+0530", - 1721.6, - 1725, - 1721.6, - 1724.7, - 1973 - ], - [ - "2017-12-22T15:04:00+0530", - 1724.7, - 1725.2, - 1724.4, - 1724.5, - 176 - ], - [ - "2017-12-22T15:05:00+0530", - 1724.5, - 1724.5, - 1724.05, - 1724.05, - 68 - ], - [ - "2017-12-22T15:06:00+0530", - 1724.05, - 1724.05, - 1721.4, - 1722.4, - 197 - ], - [ - "2017-12-22T15:07:00+0530", - 1722.4, - 1722.4, - 1720.75, - 1721.6, - 864 - ], - [ - "2017-12-22T15:08:00+0530", - 1721.6, - 1723.9, - 1721.45, - 1722.65, - 986 - ], - [ - "2017-12-22T15:09:00+0530", - 1722.65, - 1723.85, - 1722.65, - 1723.85, - 139 - ], - [ - "2017-12-22T15:10:00+0530", - 1723.85, - 1724, - 1723.85, - 1724, - 243 - ], - [ - "2017-12-22T15:11:00+0530", - 1724, - 1724.25, - 1722.7, - 1723.95, - 1574 - ], - [ - "2017-12-22T15:12:00+0530", - 1723.95, - 1723.95, - 1721.1, - 1722.05, - 1425 - ], - [ - "2017-12-22T15:13:00+0530", - 1721.25, - 1722.4, - 1721, - 1722.05, - 2069 - ], - [ - "2017-12-22T15:14:00+0530", - 1721.55, - 1723.85, - 1721.55, - 1723.85, - 1063 - ], - [ - "2017-12-22T15:15:00+0530", - 1722.8, - 1723.95, - 1722.1, - 1722.15, - 686 - ], - [ - "2017-12-22T15:16:00+0530", - 1722.15, - 1722.75, - 1719.6, - 1720.95, - 2765 - ], - [ - "2017-12-22T15:17:00+0530", - 1720.95, - 1720.95, - 1719.1, - 1720.05, - 954 - ], - [ - "2017-12-22T15:18:00+0530", - 1720.05, - 1721.3, - 1719.55, - 1719.55, - 347 - ], - [ - "2017-12-22T15:19:00+0530", - 1720.85, - 1721.55, - 1719.55, - 1720.8, - 609 - ], - [ - "2017-12-22T15:20:00+0530", - 1720.8, - 1723, - 1720.8, - 1723, - 1856 - ], - [ - "2017-12-22T15:21:00+0530", - 1723, - 1723, - 1721.95, - 1722.65, - 943 - ], - [ - "2017-12-22T15:22:00+0530", - 1722.65, - 1722.7, - 1720.7, - 1721.05, - 2217 - ], - [ - "2017-12-22T15:23:00+0530", - 1721.7, - 1722.15, - 1719.2, - 1722.15, - 1365 - ], - [ - "2017-12-22T15:24:00+0530", - 1722.15, - 1722.15, - 1720.55, - 1720.55, - 995 - ], - [ - "2017-12-22T15:25:00+0530", - 1720.55, - 1721.25, - 1720.55, - 1720.85, - 464 - ], - [ - "2017-12-22T15:26:00+0530", - 1720.75, - 1721.3, - 1719.9, - 1720, - 1131 - ], - [ - "2017-12-22T15:27:00+0530", - 1719.4, - 1720, - 1719.3, - 1719.4, - 2283 - ], - [ - "2017-12-22T15:28:00+0530", - 1719.4, - 1721, - 1719.2, - 1721, - 2479 - ], - [ - "2017-12-22T15:29:00+0530", - 1721, - 1721.35, - 1718.7, - 1720.85, - 900 - ], - [ - "2017-12-26T09:15:00+0530", - 1723, - 1733.6, - 1719.3, - 1721.1, - 1433 - ], - [ - "2017-12-26T09:16:00+0530", - 1721.1, - 1723.65, - 1721.1, - 1722, - 1525 - ], - [ - "2017-12-26T09:17:00+0530", - 1722, - 1722, - 1720, - 1720.65, - 508 - ], - [ - "2017-12-26T09:18:00+0530", - 1720.65, - 1722, - 1720.55, - 1721.8, - 243 - ], - [ - "2017-12-26T09:19:00+0530", - 1721.8, - 1725.7, - 1721.7, - 1724.25, - 1890 - ], - [ - "2017-12-26T09:20:00+0530", - 1722.6, - 1722.9, - 1721, - 1722, - 690 - ], - [ - "2017-12-26T09:21:00+0530", - 1721.8, - 1721.8, - 1720.05, - 1720.6, - 493 - ], - [ - "2017-12-26T09:22:00+0530", - 1720.6, - 1721.85, - 1720.6, - 1721.85, - 364 - ], - [ - "2017-12-26T09:23:00+0530", - 1721.75, - 1722.25, - 1714.6, - 1714.6, - 1649 - ], - [ - "2017-12-26T09:24:00+0530", - 1714.55, - 1716.65, - 1711.5, - 1714.8, - 2012 - ], - [ - "2017-12-26T09:25:00+0530", - 1714.8, - 1717.95, - 1714.8, - 1716, - 593 - ], - [ - "2017-12-26T09:26:00+0530", - 1716.05, - 1716.85, - 1716.05, - 1716.7, - 317 - ], - [ - "2017-12-26T09:27:00+0530", - 1716.7, - 1716.7, - 1714.7, - 1714.95, - 423 - ], - [ - "2017-12-26T09:28:00+0530", - 1715, - 1716.35, - 1715, - 1716, - 732 - ], - [ - "2017-12-26T09:29:00+0530", - 1716, - 1716.55, - 1715.65, - 1716.55, - 626 - ], - [ - "2017-12-26T09:30:00+0530", - 1716.55, - 1718.25, - 1716.55, - 1718, - 1158 - ], - [ - "2017-12-26T09:31:00+0530", - 1717.85, - 1718.8, - 1717.2, - 1718.15, - 243 - ], - [ - "2017-12-26T09:32:00+0530", - 1718.15, - 1722, - 1718.15, - 1722, - 425 - ], - [ - "2017-12-26T09:33:00+0530", - 1721.95, - 1722, - 1721.95, - 1722, - 187 - ], - [ - "2017-12-26T09:34:00+0530", - 1721, - 1721, - 1719.35, - 1720, - 364 - ], - [ - "2017-12-26T09:35:00+0530", - 1719.7, - 1720.5, - 1719, - 1719.1, - 567 - ], - [ - "2017-12-26T09:36:00+0530", - 1719.1, - 1720, - 1719.05, - 1719.85, - 368 - ], - [ - "2017-12-26T09:37:00+0530", - 1719.85, - 1719.9, - 1717.5, - 1718.55, - 1184 - ], - [ - "2017-12-26T09:38:00+0530", - 1718.55, - 1718.55, - 1718.45, - 1718.45, - 193 - ], - [ - "2017-12-26T09:39:00+0530", - 1718.45, - 1718.45, - 1717.85, - 1718, - 166 - ], - [ - "2017-12-26T09:40:00+0530", - 1718.05, - 1718.05, - 1715.65, - 1716.3, - 1200 - ], - [ - "2017-12-26T09:41:00+0530", - 1716.3, - 1718, - 1716.3, - 1717.5, - 77 - ], - [ - "2017-12-26T09:42:00+0530", - 1717.5, - 1717.5, - 1715.4, - 1715.65, - 1885 - ], - [ - "2017-12-26T09:43:00+0530", - 1715.65, - 1716.4, - 1710.5, - 1712.3, - 4974 - ], - [ - "2017-12-26T09:44:00+0530", - 1712.3, - 1712.8, - 1710.55, - 1712.55, - 742 - ], - [ - "2017-12-26T09:45:00+0530", - 1712.55, - 1715.05, - 1712.55, - 1715, - 437 - ], - [ - "2017-12-26T09:46:00+0530", - 1715, - 1715.95, - 1714.25, - 1714.25, - 677 - ], - [ - "2017-12-26T09:47:00+0530", - 1714.15, - 1714.15, - 1713.5, - 1714, - 804 - ], - [ - "2017-12-26T09:48:00+0530", - 1714, - 1714, - 1713.9, - 1713.9, - 181 - ], - [ - "2017-12-26T09:49:00+0530", - 1713.9, - 1714, - 1713.25, - 1713.95, - 87 - ], - [ - "2017-12-26T09:50:00+0530", - 1713.85, - 1713.85, - 1713.35, - 1713.8, - 131 - ], - [ - "2017-12-26T09:51:00+0530", - 1713.3, - 1714, - 1713.3, - 1714, - 299 - ], - [ - "2017-12-26T09:52:00+0530", - 1714, - 1714.7, - 1714, - 1714.7, - 344 - ], - [ - "2017-12-26T09:53:00+0530", - 1714.7, - 1714.85, - 1714.7, - 1714.85, - 192 - ], - [ - "2017-12-26T09:54:00+0530", - 1714.85, - 1714.85, - 1714.75, - 1714.8, - 69 - ], - [ - "2017-12-26T09:55:00+0530", - 1714.85, - 1714.9, - 1714.7, - 1714.7, - 292 - ], - [ - "2017-12-26T09:56:00+0530", - 1714.75, - 1715, - 1714.75, - 1715, - 219 - ], - [ - "2017-12-26T09:57:00+0530", - 1715, - 1716.85, - 1714.85, - 1716.85, - 80 - ], - [ - "2017-12-26T09:58:00+0530", - 1716.8, - 1716.8, - 1715, - 1715, - 118 - ], - [ - "2017-12-26T09:59:00+0530", - 1715, - 1715.85, - 1714.85, - 1715.65, - 77 - ], - [ - "2017-12-26T10:00:00+0530", - 1715.6, - 1716.95, - 1715.6, - 1716.95, - 571 - ], - [ - "2017-12-26T10:01:00+0530", - 1716.95, - 1716.95, - 1716.1, - 1716.7, - 82 - ], - [ - "2017-12-26T10:02:00+0530", - 1716.7, - 1716.9, - 1716.7, - 1716.9, - 93 - ], - [ - "2017-12-26T10:03:00+0530", - 1716.95, - 1716.95, - 1716.7, - 1716.7, - 104 - ], - [ - "2017-12-26T10:04:00+0530", - 1716.7, - 1716.95, - 1716.7, - 1716.95, - 110 - ], - [ - "2017-12-26T10:05:00+0530", - 1716.95, - 1717.6, - 1716.7, - 1717.55, - 156 - ], - [ - "2017-12-26T10:06:00+0530", - 1717.55, - 1718.3, - 1716.75, - 1717, - 219 - ], - [ - "2017-12-26T10:07:00+0530", - 1717, - 1718.25, - 1717, - 1718.25, - 111 - ], - [ - "2017-12-26T10:08:00+0530", - 1718.25, - 1719.55, - 1718, - 1718.3, - 36235 - ], - [ - "2017-12-26T10:09:00+0530", - 1718.3, - 1719.3, - 1718.3, - 1718.4, - 157 - ], - [ - "2017-12-26T10:10:00+0530", - 1718.4, - 1718.4, - 1718, - 1718.35, - 78 - ], - [ - "2017-12-26T10:11:00+0530", - 1718.35, - 1718.35, - 1718, - 1718.05, - 117 - ], - [ - "2017-12-26T10:12:00+0530", - 1718.05, - 1719.3, - 1717.05, - 1719.25, - 878 - ], - [ - "2017-12-26T10:13:00+0530", - 1719.25, - 1719.75, - 1719.25, - 1719.5, - 109 - ], - [ - "2017-12-26T10:14:00+0530", - 1719.5, - 1719.95, - 1718.8, - 1719.05, - 96 - ], - [ - "2017-12-26T10:15:00+0530", - 1719.05, - 1722, - 1719.05, - 1721, - 634 - ], - [ - "2017-12-26T10:16:00+0530", - 1721, - 1722, - 1720.85, - 1721.7, - 586 - ], - [ - "2017-12-26T10:17:00+0530", - 1721.7, - 1723.8, - 1721.7, - 1723.8, - 345 - ], - [ - "2017-12-26T10:18:00+0530", - 1724.5, - 1724.5, - 1723, - 1723, - 559 - ], - [ - "2017-12-26T10:19:00+0530", - 1723.5, - 1723.9, - 1722.15, - 1722.15, - 536 - ], - [ - "2017-12-26T10:20:00+0530", - 1722.15, - 1722.6, - 1720.9, - 1722.4, - 227 - ], - [ - "2017-12-26T10:21:00+0530", - 1722.45, - 1722.55, - 1721, - 1721, - 303 - ], - [ - "2017-12-26T10:22:00+0530", - 1721, - 1721, - 1720, - 1720, - 436 - ], - [ - "2017-12-26T10:23:00+0530", - 1720, - 1720, - 1719, - 1720, - 166 - ], - [ - "2017-12-26T10:24:00+0530", - 1720, - 1720.45, - 1720, - 1720.45, - 103 - ], - [ - "2017-12-26T10:25:00+0530", - 1720.45, - 1720.45, - 1719.45, - 1719.45, - 77 - ], - [ - "2017-12-26T10:26:00+0530", - 1719.45, - 1720.5, - 1719.45, - 1720.5, - 93 - ], - [ - "2017-12-26T10:27:00+0530", - 1720.5, - 1720.85, - 1719.45, - 1720.4, - 368 - ], - [ - "2017-12-26T10:28:00+0530", - 1720.35, - 1720.35, - 1720.15, - 1720.15, - 68 - ], - [ - "2017-12-26T10:29:00+0530", - 1720.15, - 1720.15, - 1720.05, - 1720.05, - 67 - ], - [ - "2017-12-26T10:30:00+0530", - 1720, - 1720, - 1720, - 1720, - 67 - ], - [ - "2017-12-26T10:31:00+0530", - 1720, - 1720.35, - 1719.45, - 1720.3, - 306 - ], - [ - "2017-12-26T10:32:00+0530", - 1720.25, - 1720.25, - 1720.25, - 1720.25, - 68 - ], - [ - "2017-12-26T10:33:00+0530", - 1720.25, - 1721, - 1719.8, - 1721, - 95 - ], - [ - "2017-12-26T10:34:00+0530", - 1721, - 1721.55, - 1721, - 1721.2, - 782 - ], - [ - "2017-12-26T10:35:00+0530", - 1722, - 1723, - 1721, - 1723, - 398 - ], - [ - "2017-12-26T10:36:00+0530", - 1723, - 1727.55, - 1723, - 1725.65, - 1277 - ], - [ - "2017-12-26T10:37:00+0530", - 1725.6, - 1726, - 1725.05, - 1725.05, - 635 - ], - [ - "2017-12-26T10:38:00+0530", - 1724.95, - 1724.95, - 1724, - 1724.9, - 196 - ], - [ - "2017-12-26T10:39:00+0530", - 1724.9, - 1726, - 1724, - 1724, - 1675 - ], - [ - "2017-12-26T10:40:00+0530", - 1724.05, - 1724.2, - 1724.05, - 1724.2, - 172 - ], - [ - "2017-12-26T10:41:00+0530", - 1724.2, - 1726.85, - 1724.2, - 1725.65, - 476 - ], - [ - "2017-12-26T10:42:00+0530", - 1725.65, - 1727.55, - 1725.65, - 1727.35, - 324 - ], - [ - "2017-12-26T10:43:00+0530", - 1727.35, - 1727.55, - 1725.1, - 1725.1, - 580 - ], - [ - "2017-12-26T10:44:00+0530", - 1725.1, - 1726.2, - 1724.85, - 1726.1, - 107 - ], - [ - "2017-12-26T10:45:00+0530", - 1726.15, - 1726.35, - 1726.15, - 1726.35, - 67 - ], - [ - "2017-12-26T10:46:00+0530", - 1726.4, - 1726.4, - 1724.7, - 1725.9, - 194 - ], - [ - "2017-12-26T10:47:00+0530", - 1725.85, - 1725.9, - 1725, - 1725.9, - 142 - ], - [ - "2017-12-26T10:48:00+0530", - 1725.85, - 1726.15, - 1725.85, - 1726.05, - 147 - ], - [ - "2017-12-26T10:49:00+0530", - 1726.05, - 1726.05, - 1725.7, - 1725.7, - 117 - ], - [ - "2017-12-26T10:50:00+0530", - 1725.75, - 1726, - 1725.65, - 1726, - 68 - ], - [ - "2017-12-26T10:51:00+0530", - 1726, - 1726.45, - 1725.3, - 1726.4, - 173 - ], - [ - "2017-12-26T10:52:00+0530", - 1726.4, - 1727, - 1726.4, - 1726.4, - 156 - ], - [ - "2017-12-26T10:53:00+0530", - 1726.4, - 1727, - 1726.05, - 1727, - 174 - ], - [ - "2017-12-26T10:54:00+0530", - 1727, - 1727, - 1726.05, - 1726.05, - 69 - ], - [ - "2017-12-26T10:55:00+0530", - 1726.05, - 1727, - 1726.05, - 1726.95, - 167 - ], - [ - "2017-12-26T10:56:00+0530", - 1726.95, - 1726.95, - 1726, - 1726, - 173 - ], - [ - "2017-12-26T10:57:00+0530", - 1726, - 1726.9, - 1725.85, - 1726.9, - 211 - ], - [ - "2017-12-26T10:58:00+0530", - 1726.85, - 1726.9, - 1726.85, - 1726.9, - 173 - ], - [ - "2017-12-26T10:59:00+0530", - 1726.85, - 1726.85, - 1726.8, - 1726.8, - 67 - ], - [ - "2017-12-26T11:00:00+0530", - 1726, - 1726.85, - 1725.5, - 1726.85, - 325 - ], - [ - "2017-12-26T11:01:00+0530", - 1726.9, - 1729.25, - 1726.5, - 1729.25, - 1850 - ], - [ - "2017-12-26T11:02:00+0530", - 1729.25, - 1729.25, - 1728.25, - 1728.8, - 309 - ], - [ - "2017-12-26T11:03:00+0530", - 1728.8, - 1729.5, - 1728.55, - 1729, - 231 - ], - [ - "2017-12-26T11:04:00+0530", - 1729, - 1729.85, - 1729, - 1729.5, - 198 - ], - [ - "2017-12-26T11:05:00+0530", - 1729.5, - 1729.5, - 1728.2, - 1728.95, - 227 - ], - [ - "2017-12-26T11:06:00+0530", - 1728.95, - 1729.3, - 1728.7, - 1729.3, - 339 - ], - [ - "2017-12-26T11:07:00+0530", - 1729.3, - 1729.3, - 1728.7, - 1729.25, - 241 - ], - [ - "2017-12-26T11:08:00+0530", - 1729.3, - 1729.4, - 1728.95, - 1729.35, - 413 - ], - [ - "2017-12-26T11:09:00+0530", - 1729.4, - 1729.4, - 1729, - 1729.4, - 128 - ], - [ - "2017-12-26T11:10:00+0530", - 1729.4, - 1731, - 1729.1, - 1731, - 1922 - ], - [ - "2017-12-26T11:11:00+0530", - 1731, - 1732, - 1729.65, - 1732, - 823 - ], - [ - "2017-12-26T11:12:00+0530", - 1732, - 1732, - 1730.15, - 1732, - 479 - ], - [ - "2017-12-26T11:13:00+0530", - 1732, - 1732, - 1730.85, - 1732, - 566 - ], - [ - "2017-12-26T11:14:00+0530", - 1732, - 1732, - 1731, - 1731, - 635 - ], - [ - "2017-12-26T11:15:00+0530", - 1731, - 1731.85, - 1731, - 1731.25, - 256 - ], - [ - "2017-12-26T11:16:00+0530", - 1731.25, - 1732, - 1731.25, - 1731.55, - 400 - ], - [ - "2017-12-26T11:17:00+0530", - 1731.55, - 1731.55, - 1731.05, - 1731.05, - 145 - ], - [ - "2017-12-26T11:18:00+0530", - 1731.05, - 1732.75, - 1731.05, - 1732.75, - 789 - ], - [ - "2017-12-26T11:19:00+0530", - 1732.7, - 1732.7, - 1731.6, - 1732, - 391 - ], - [ - "2017-12-26T11:20:00+0530", - 1732.05, - 1732.3, - 1731.5, - 1731.5, - 478 - ], - [ - "2017-12-26T11:21:00+0530", - 1731.5, - 1732, - 1731.5, - 1731.5, - 119 - ], - [ - "2017-12-26T11:22:00+0530", - 1731.5, - 1732, - 1731, - 1731.4, - 679 - ], - [ - "2017-12-26T11:23:00+0530", - 1731.45, - 1731.45, - 1730.1, - 1731.2, - 488 - ], - [ - "2017-12-26T11:24:00+0530", - 1731.2, - 1731.2, - 1728.75, - 1728.75, - 343 - ], - [ - "2017-12-26T11:25:00+0530", - 1728.75, - 1730.8, - 1728.75, - 1730.8, - 661 - ], - [ - "2017-12-26T11:26:00+0530", - 1730.8, - 1730.95, - 1730.8, - 1730.95, - 217 - ], - [ - "2017-12-26T11:27:00+0530", - 1730.9, - 1731.1, - 1730, - 1731.1, - 302 - ], - [ - "2017-12-26T11:28:00+0530", - 1731.1, - 1731.9, - 1731, - 1731.9, - 331 - ], - [ - "2017-12-26T11:29:00+0530", - 1731.9, - 1732.95, - 1731.5, - 1731.5, - 624 - ], - [ - "2017-12-26T11:30:00+0530", - 1731.5, - 1732.65, - 1731.2, - 1731.65, - 152 - ], - [ - "2017-12-26T11:31:00+0530", - 1731.65, - 1732.5, - 1731.65, - 1732.35, - 274 - ], - [ - "2017-12-26T11:32:00+0530", - 1732.2, - 1732.2, - 1731.1, - 1731.7, - 178 - ], - [ - "2017-12-26T11:33:00+0530", - 1731.7, - 1731.7, - 1730.9, - 1731.7, - 83 - ], - [ - "2017-12-26T11:34:00+0530", - 1731.75, - 1731.75, - 1731.35, - 1731.35, - 105 - ], - [ - "2017-12-26T11:35:00+0530", - 1731.35, - 1732, - 1731.35, - 1732, - 76 - ], - [ - "2017-12-26T11:36:00+0530", - 1732, - 1732.3, - 1732, - 1732, - 676 - ], - [ - "2017-12-26T11:37:00+0530", - 1732.05, - 1732.05, - 1731.35, - 1731.35, - 295 - ], - [ - "2017-12-26T11:38:00+0530", - 1731.35, - 1731.65, - 1731.05, - 1731.65, - 85 - ], - [ - "2017-12-26T11:39:00+0530", - 1731.65, - 1731.65, - 1731.35, - 1731.35, - 257 - ], - [ - "2017-12-26T11:40:00+0530", - 1731.35, - 1731.9, - 1731.35, - 1731.4, - 74 - ], - [ - "2017-12-26T11:41:00+0530", - 1731.4, - 1732.4, - 1731.4, - 1732.4, - 240 - ], - [ - "2017-12-26T11:42:00+0530", - 1732.35, - 1732.5, - 1732.2, - 1732.5, - 171 - ], - [ - "2017-12-26T11:43:00+0530", - 1732.5, - 1732.8, - 1732.4, - 1732.75, - 201 - ], - [ - "2017-12-26T11:44:00+0530", - 1732.75, - 1732.8, - 1731.6, - 1732.65, - 82 - ], - [ - "2017-12-26T11:45:00+0530", - 1732.7, - 1732.8, - 1731.55, - 1732.8, - 105 - ], - [ - "2017-12-26T11:46:00+0530", - 1732.8, - 1732.85, - 1731.2, - 1731.2, - 174 - ], - [ - "2017-12-26T11:47:00+0530", - 1731.2, - 1732.9, - 1731.2, - 1732.85, - 236 - ], - [ - "2017-12-26T11:48:00+0530", - 1732.9, - 1732.9, - 1732.8, - 1732.8, - 76 - ], - [ - "2017-12-26T11:49:00+0530", - 1732.85, - 1732.95, - 1732.8, - 1732.9, - 109 - ], - [ - "2017-12-26T11:50:00+0530", - 1732.9, - 1732.95, - 1732.8, - 1732.9, - 107 - ], - [ - "2017-12-26T11:51:00+0530", - 1732.95, - 1733, - 1732.9, - 1733, - 156 - ], - [ - "2017-12-26T11:52:00+0530", - 1733, - 1733, - 1732, - 1732.45, - 223 - ], - [ - "2017-12-26T11:53:00+0530", - 1732.45, - 1732.9, - 1731, - 1731, - 224 - ], - [ - "2017-12-26T11:54:00+0530", - 1731, - 1731, - 1728.65, - 1729.5, - 762 - ], - [ - "2017-12-26T11:55:00+0530", - 1729.5, - 1729.55, - 1728.15, - 1729.55, - 431 - ], - [ - "2017-12-26T11:56:00+0530", - 1729.5, - 1730.9, - 1729.35, - 1729.95, - 558 - ], - [ - "2017-12-26T11:57:00+0530", - 1729.95, - 1731.85, - 1729.95, - 1731.7, - 142 - ], - [ - "2017-12-26T11:58:00+0530", - 1731.75, - 1731.9, - 1730.45, - 1730.45, - 571 - ], - [ - "2017-12-26T11:59:00+0530", - 1730.45, - 1731.3, - 1730.45, - 1731, - 95 - ], - [ - "2017-12-26T12:00:00+0530", - 1731, - 1731.25, - 1731, - 1731.2, - 88 - ], - [ - "2017-12-26T12:01:00+0530", - 1731.2, - 1731.2, - 1731, - 1731, - 117 - ], - [ - "2017-12-26T12:02:00+0530", - 1731, - 1731.55, - 1731, - 1731, - 99 - ], - [ - "2017-12-26T12:03:00+0530", - 1731, - 1731.65, - 1731, - 1731.55, - 67 - ], - [ - "2017-12-26T12:04:00+0530", - 1731.55, - 1731.55, - 1731, - 1731, - 149 - ], - [ - "2017-12-26T12:05:00+0530", - 1731, - 1731.85, - 1731, - 1731.85, - 226 - ], - [ - "2017-12-26T12:06:00+0530", - 1731.85, - 1731.85, - 1730.45, - 1731.8, - 138 - ], - [ - "2017-12-26T12:07:00+0530", - 1731.8, - 1731.8, - 1731, - 1731.25, - 71 - ], - [ - "2017-12-26T12:08:00+0530", - 1731.25, - 1731.85, - 1731.2, - 1731.2, - 182 - ], - [ - "2017-12-26T12:09:00+0530", - 1731.2, - 1731.85, - 1731.2, - 1731.85, - 90 - ], - [ - "2017-12-26T12:10:00+0530", - 1731.85, - 1731.85, - 1731.25, - 1731.85, - 97 - ], - [ - "2017-12-26T12:11:00+0530", - 1731.85, - 1731.85, - 1731.2, - 1731.85, - 119 - ], - [ - "2017-12-26T12:12:00+0530", - 1731.85, - 1731.9, - 1731.85, - 1731.9, - 77 - ], - [ - "2017-12-26T12:13:00+0530", - 1731.9, - 1732, - 1731.25, - 1732, - 92 - ], - [ - "2017-12-26T12:14:00+0530", - 1731.95, - 1732, - 1731.25, - 1732, - 77 - ], - [ - "2017-12-26T12:15:00+0530", - 1732, - 1732, - 1731.25, - 1731.25, - 75 - ], - [ - "2017-12-26T12:16:00+0530", - 1731.25, - 1732, - 1731.2, - 1731.2, - 428 - ], - [ - "2017-12-26T12:17:00+0530", - 1731.2, - 1732, - 1731.15, - 1731.15, - 77 - ], - [ - "2017-12-26T12:18:00+0530", - 1730.95, - 1731.9, - 1730.75, - 1731.85, - 87 - ], - [ - "2017-12-26T12:19:00+0530", - 1731.8, - 1731.8, - 1730, - 1730, - 128 - ], - [ - "2017-12-26T12:20:00+0530", - 1730, - 1731.05, - 1730, - 1731.05, - 92 - ], - [ - "2017-12-26T12:21:00+0530", - 1731, - 1731, - 1729.7, - 1729.7, - 192 - ], - [ - "2017-12-26T12:22:00+0530", - 1729.7, - 1730.8, - 1729.7, - 1730.8, - 75 - ], - [ - "2017-12-26T12:23:00+0530", - 1730.8, - 1731, - 1730.1, - 1730.1, - 207 - ], - [ - "2017-12-26T12:24:00+0530", - 1730.1, - 1731.4, - 1730.1, - 1731.4, - 67 - ], - [ - "2017-12-26T12:25:00+0530", - 1731.3, - 1731.35, - 1730, - 1730, - 172 - ], - [ - "2017-12-26T12:26:00+0530", - 1730, - 1730.9, - 1730, - 1730.9, - 93 - ], - [ - "2017-12-26T12:27:00+0530", - 1730.95, - 1731.9, - 1730.7, - 1731.85, - 73 - ], - [ - "2017-12-26T12:28:00+0530", - 1731.8, - 1731.85, - 1729.9, - 1729.9, - 101 - ], - [ - "2017-12-26T12:29:00+0530", - 1729.9, - 1729.9, - 1729.9, - 1729.9, - 1 - ], - [ - "2017-12-26T12:30:00+0530", - 1729.9, - 1730, - 1729.9, - 1730, - 5 - ], - [ - "2017-12-26T12:31:00+0530", - 1730, - 1730, - 1729.85, - 1729.85, - 20 - ], - [ - "2017-12-26T12:32:00+0530", - 1729.35, - 1729.35, - 1729.15, - 1729.2, - 91 - ], - [ - "2017-12-26T12:33:00+0530", - 1729.2, - 1730.75, - 1729.2, - 1730.75, - 526 - ], - [ - "2017-12-26T12:34:00+0530", - 1730, - 1730, - 1729.95, - 1729.95, - 100 - ], - [ - "2017-12-26T12:35:00+0530", - 1729.95, - 1729.95, - 1729.95, - 1729.95, - 0 - ], - [ - "2017-12-26T12:36:00+0530", - 1729.95, - 1730.95, - 1729.95, - 1730.95, - 63 - ], - [ - "2017-12-26T12:37:00+0530", - 1730.95, - 1731.1, - 1730.95, - 1731.1, - 100 - ], - [ - "2017-12-26T12:38:00+0530", - 1731.1, - 1731.5, - 1731.1, - 1731.5, - 1168 - ], - [ - "2017-12-26T12:39:00+0530", - 1731.5, - 1732.45, - 1731.5, - 1732.45, - 397 - ], - [ - "2017-12-26T12:40:00+0530", - 1732.45, - 1732.45, - 1731.9, - 1732, - 51 - ], - [ - "2017-12-26T12:41:00+0530", - 1732, - 1732.45, - 1732, - 1732.45, - 36 - ], - [ - "2017-12-26T12:42:00+0530", - 1732.45, - 1732.45, - 1732.45, - 1732.45, - 0 - ], - [ - "2017-12-26T12:43:00+0530", - 1732.25, - 1732.25, - 1731.8, - 1731.8, - 31 - ], - [ - "2017-12-26T12:44:00+0530", - 1731.8, - 1732, - 1731.8, - 1732, - 26 - ], - [ - "2017-12-26T12:45:00+0530", - 1732, - 1732.1, - 1731.9, - 1732, - 56 - ], - [ - "2017-12-26T12:46:00+0530", - 1732, - 1732, - 1732, - 1732, - 0 - ], - [ - "2017-12-26T12:47:00+0530", - 1732, - 1732, - 1732, - 1732, - 25 - ], - [ - "2017-12-26T12:48:00+0530", - 1732, - 1732, - 1732, - 1732, - 0 - ], - [ - "2017-12-26T12:49:00+0530", - 1732, - 1732, - 1732, - 1732, - 0 - ], - [ - "2017-12-26T12:50:00+0530", - 1732, - 1732, - 1731.8, - 1731.8, - 294 - ], - [ - "2017-12-26T12:51:00+0530", - 1731.8, - 1732.25, - 1731.7, - 1732.05, - 135 - ], - [ - "2017-12-26T12:52:00+0530", - 1732.05, - 1732.6, - 1731.9, - 1732.5, - 263 - ], - [ - "2017-12-26T12:53:00+0530", - 1732.5, - 1732.5, - 1731.6, - 1731.6, - 33 - ], - [ - "2017-12-26T12:54:00+0530", - 1731.6, - 1732, - 1731.6, - 1732, - 1 - ], - [ - "2017-12-26T12:55:00+0530", - 1732, - 1732, - 1732, - 1732, - 0 - ], - [ - "2017-12-26T12:56:00+0530", - 1732, - 1732, - 1731.3, - 1732, - 538 - ], - [ - "2017-12-26T12:57:00+0530", - 1732, - 1732, - 1731.25, - 1731.25, - 125 - ], - [ - "2017-12-26T12:58:00+0530", - 1732, - 1732.4, - 1731.5, - 1732, - 78 - ], - [ - "2017-12-26T12:59:00+0530", - 1731.5, - 1731.5, - 1731.5, - 1731.5, - 19 - ], - [ - "2017-12-26T13:00:00+0530", - 1732.4, - 1732.4, - 1732.4, - 1732.4, - 3 - ], - [ - "2017-12-26T13:01:00+0530", - 1732.4, - 1732.4, - 1732.05, - 1732.1, - 234 - ], - [ - "2017-12-26T13:02:00+0530", - 1732.1, - 1732.95, - 1732.1, - 1732.95, - 181 - ], - [ - "2017-12-26T13:03:00+0530", - 1732.95, - 1735.6, - 1732.95, - 1735.5, - 3900 - ], - [ - "2017-12-26T13:04:00+0530", - 1735.5, - 1736.4, - 1735, - 1735.6, - 956 - ], - [ - "2017-12-26T13:05:00+0530", - 1735.6, - 1736.4, - 1735, - 1735.5, - 541 - ], - [ - "2017-12-26T13:06:00+0530", - 1735.5, - 1735.5, - 1733.8, - 1735, - 13553 - ], - [ - "2017-12-26T13:07:00+0530", - 1735, - 1735.2, - 1733.85, - 1735, - 1964 - ], - [ - "2017-12-26T13:08:00+0530", - 1735, - 1735, - 1735, - 1735, - 553 - ], - [ - "2017-12-26T13:09:00+0530", - 1735, - 1735, - 1735, - 1735, - 469 - ], - [ - "2017-12-26T13:10:00+0530", - 1735, - 1735.5, - 1734.8, - 1735, - 354 - ], - [ - "2017-12-26T13:11:00+0530", - 1735, - 1735, - 1733.8, - 1733.95, - 668 - ], - [ - "2017-12-26T13:12:00+0530", - 1733.95, - 1735, - 1733.85, - 1735, - 785 - ], - [ - "2017-12-26T13:13:00+0530", - 1735, - 1735.4, - 1734.35, - 1734.35, - 441 - ], - [ - "2017-12-26T13:14:00+0530", - 1734.35, - 1735, - 1734.35, - 1735, - 260 - ], - [ - "2017-12-26T13:15:00+0530", - 1735, - 1735, - 1735, - 1735, - 17 - ], - [ - "2017-12-26T13:16:00+0530", - 1735, - 1736, - 1735, - 1736, - 139 - ], - [ - "2017-12-26T13:17:00+0530", - 1736, - 1736.4, - 1736, - 1736, - 63 - ], - [ - "2017-12-26T13:18:00+0530", - 1735.5, - 1735.9, - 1735.5, - 1735.9, - 40 - ], - [ - "2017-12-26T13:19:00+0530", - 1735.9, - 1736, - 1734.55, - 1735.5, - 58 - ], - [ - "2017-12-26T13:20:00+0530", - 1735.5, - 1735.5, - 1734.55, - 1735, - 21 - ], - [ - "2017-12-26T13:21:00+0530", - 1735, - 1735, - 1734.55, - 1734.55, - 56 - ], - [ - "2017-12-26T13:22:00+0530", - 1734.55, - 1734.6, - 1734.55, - 1734.6, - 1 - ], - [ - "2017-12-26T13:23:00+0530", - 1734.6, - 1735.85, - 1734.15, - 1734.15, - 260 - ], - [ - "2017-12-26T13:24:00+0530", - 1734.15, - 1736.4, - 1734.15, - 1736.4, - 305 - ], - [ - "2017-12-26T13:25:00+0530", - 1735.95, - 1736.4, - 1735.9, - 1736, - 168 - ], - [ - "2017-12-26T13:26:00+0530", - 1735.75, - 1735.75, - 1734.55, - 1734.55, - 51 - ], - [ - "2017-12-26T13:27:00+0530", - 1734.55, - 1735.2, - 1734.05, - 1735.2, - 241 - ], - [ - "2017-12-26T13:28:00+0530", - 1735.2, - 1735.2, - 1735, - 1735, - 100 - ], - [ - "2017-12-26T13:29:00+0530", - 1734.15, - 1735, - 1734.15, - 1735, - 30 - ], - [ - "2017-12-26T13:30:00+0530", - 1735, - 1735, - 1734.15, - 1734.15, - 292 - ], - [ - "2017-12-26T13:31:00+0530", - 1734.15, - 1734.3, - 1732.1, - 1732.1, - 186 - ], - [ - "2017-12-26T13:32:00+0530", - 1732.1, - 1733, - 1732.1, - 1732.6, - 140 - ], - [ - "2017-12-26T13:33:00+0530", - 1732.6, - 1733, - 1731.4, - 1733, - 252 - ], - [ - "2017-12-26T13:34:00+0530", - 1733, - 1733, - 1732, - 1732, - 69 - ], - [ - "2017-12-26T13:35:00+0530", - 1732, - 1732, - 1731.35, - 1731.9, - 20 - ], - [ - "2017-12-26T13:36:00+0530", - 1731.9, - 1732, - 1731.9, - 1732, - 16 - ], - [ - "2017-12-26T13:37:00+0530", - 1732, - 1732.8, - 1731.95, - 1731.95, - 76 - ], - [ - "2017-12-26T13:38:00+0530", - 1731.95, - 1732, - 1731.55, - 1731.55, - 52 - ], - [ - "2017-12-26T13:39:00+0530", - 1731.2, - 1732.15, - 1731.1, - 1731.15, - 175 - ], - [ - "2017-12-26T13:40:00+0530", - 1731.15, - 1732, - 1731.15, - 1732, - 6 - ], - [ - "2017-12-26T13:41:00+0530", - 1732, - 1732, - 1731.5, - 1731.5, - 36 - ], - [ - "2017-12-26T13:42:00+0530", - 1731.5, - 1733, - 1731.5, - 1732.4, - 137 - ], - [ - "2017-12-26T13:43:00+0530", - 1732.4, - 1732.4, - 1731.4, - 1731.4, - 173 - ], - [ - "2017-12-26T13:44:00+0530", - 1731.4, - 1732, - 1731.4, - 1732, - 100 - ], - [ - "2017-12-26T13:45:00+0530", - 1732, - 1732.7, - 1732, - 1732.7, - 25 - ], - [ - "2017-12-26T13:46:00+0530", - 1732.7, - 1733, - 1732.7, - 1733, - 102 - ], - [ - "2017-12-26T13:47:00+0530", - 1733, - 1733, - 1733, - 1733, - 21 - ], - [ - "2017-12-26T13:48:00+0530", - 1733, - 1733.5, - 1733, - 1733.5, - 192 - ], - [ - "2017-12-26T13:49:00+0530", - 1733.5, - 1734.3, - 1733.5, - 1734.3, - 140 - ], - [ - "2017-12-26T13:50:00+0530", - 1735, - 1735, - 1735, - 1735, - 536 - ], - [ - "2017-12-26T13:51:00+0530", - 1735, - 1735, - 1734.25, - 1734.25, - 150 - ], - [ - "2017-12-26T13:52:00+0530", - 1734.25, - 1734.25, - 1734.25, - 1734.25, - 0 - ], - [ - "2017-12-26T13:53:00+0530", - 1734.25, - 1735.5, - 1734.25, - 1735.5, - 550 - ], - [ - "2017-12-26T13:54:00+0530", - 1735.5, - 1736, - 1735, - 1735.1, - 1106 - ], - [ - "2017-12-26T13:55:00+0530", - 1735.1, - 1736.75, - 1735.1, - 1736.75, - 516 - ], - [ - "2017-12-26T13:56:00+0530", - 1736.75, - 1736.75, - 1736, - 1736, - 115 - ], - [ - "2017-12-26T13:57:00+0530", - 1736, - 1736, - 1735.5, - 1736, - 100 - ], - [ - "2017-12-26T13:58:00+0530", - 1735.35, - 1735.35, - 1735.35, - 1735.35, - 2 - ], - [ - "2017-12-26T13:59:00+0530", - 1735.35, - 1736, - 1735.35, - 1736, - 360 - ], - [ - "2017-12-26T14:00:00+0530", - 1736, - 1736, - 1735.75, - 1736, - 111 - ], - [ - "2017-12-26T14:01:00+0530", - 1736, - 1736, - 1735.75, - 1735.85, - 188 - ], - [ - "2017-12-26T14:02:00+0530", - 1735.85, - 1736.2, - 1735.8, - 1735.95, - 25 - ], - [ - "2017-12-26T14:03:00+0530", - 1735.95, - 1735.95, - 1735.55, - 1735.55, - 23 - ], - [ - "2017-12-26T14:04:00+0530", - 1735.55, - 1735.55, - 1735.55, - 1735.55, - 27 - ], - [ - "2017-12-26T14:05:00+0530", - 1735.55, - 1736.2, - 1735.55, - 1736, - 432 - ], - [ - "2017-12-26T14:06:00+0530", - 1736.8, - 1736.8, - 1735.95, - 1735.95, - 26 - ], - [ - "2017-12-26T14:07:00+0530", - 1735.95, - 1735.95, - 1735.95, - 1735.95, - 49 - ], - [ - "2017-12-26T14:08:00+0530", - 1735.95, - 1735.95, - 1735.9, - 1735.9, - 10 - ], - [ - "2017-12-26T14:09:00+0530", - 1735.45, - 1736, - 1735.25, - 1736, - 438 - ], - [ - "2017-12-26T14:10:00+0530", - 1736, - 1736, - 1735.45, - 1735.55, - 46 - ], - [ - "2017-12-26T14:11:00+0530", - 1735.55, - 1735.65, - 1735.55, - 1735.65, - 43 - ], - [ - "2017-12-26T14:12:00+0530", - 1735.65, - 1735.95, - 1735.25, - 1735.25, - 88 - ], - [ - "2017-12-26T14:13:00+0530", - 1735.25, - 1735.65, - 1735.25, - 1735.65, - 8 - ], - [ - "2017-12-26T14:14:00+0530", - 1735.65, - 1736.4, - 1735.55, - 1735.65, - 1000 - ], - [ - "2017-12-26T14:15:00+0530", - 1735.65, - 1735.8, - 1735.6, - 1735.8, - 414 - ], - [ - "2017-12-26T14:16:00+0530", - 1735.8, - 1736, - 1735.75, - 1735.75, - 85 - ], - [ - "2017-12-26T14:17:00+0530", - 1735.75, - 1736, - 1735.75, - 1736, - 390 - ], - [ - "2017-12-26T14:18:00+0530", - 1736, - 1736, - 1735.8, - 1735.8, - 273 - ], - [ - "2017-12-26T14:19:00+0530", - 1735.8, - 1735.8, - 1735.8, - 1735.8, - 0 - ], - [ - "2017-12-26T14:20:00+0530", - 1735.8, - 1735.8, - 1735.35, - 1735.35, - 10 - ], - [ - "2017-12-26T14:21:00+0530", - 1735.35, - 1736, - 1735.35, - 1736, - 100 - ], - [ - "2017-12-26T14:22:00+0530", - 1736, - 1736, - 1735.2, - 1736, - 50 - ], - [ - "2017-12-26T14:23:00+0530", - 1736, - 1736, - 1735.05, - 1735.05, - 10 - ], - [ - "2017-12-26T14:24:00+0530", - 1735.05, - 1735.05, - 1735, - 1735, - 13 - ], - [ - "2017-12-26T14:25:00+0530", - 1735, - 1739, - 1735, - 1739, - 1312 - ], - [ - "2017-12-26T14:26:00+0530", - 1737.8, - 1739, - 1737.65, - 1737.65, - 128 - ], - [ - "2017-12-26T14:27:00+0530", - 1737.65, - 1738, - 1736.3, - 1736.3, - 318 - ], - [ - "2017-12-26T14:28:00+0530", - 1736.3, - 1737.1, - 1736.05, - 1736.65, - 9 - ], - [ - "2017-12-26T14:29:00+0530", - 1736.65, - 1738.25, - 1736.3, - 1738.25, - 154 - ], - [ - "2017-12-26T14:30:00+0530", - 1738.25, - 1738.4, - 1737, - 1737.5, - 190 - ], - [ - "2017-12-26T14:31:00+0530", - 1738, - 1738.4, - 1737.7, - 1737.7, - 208 - ], - [ - "2017-12-26T14:32:00+0530", - 1737.7, - 1738.4, - 1737.7, - 1738.4, - 103 - ], - [ - "2017-12-26T14:33:00+0530", - 1738.4, - 1738.4, - 1737.7, - 1737.7, - 120 - ], - [ - "2017-12-26T14:34:00+0530", - 1738.4, - 1738.4, - 1737.5, - 1737.5, - 15 - ], - [ - "2017-12-26T14:35:00+0530", - 1737.5, - 1737.55, - 1737.5, - 1737.55, - 34 - ], - [ - "2017-12-26T14:36:00+0530", - 1737.55, - 1738.4, - 1737.5, - 1738.4, - 131 - ], - [ - "2017-12-26T14:37:00+0530", - 1738.4, - 1738.65, - 1737.75, - 1737.75, - 35 - ], - [ - "2017-12-26T14:38:00+0530", - 1737.75, - 1739, - 1737.55, - 1737.55, - 200 - ], - [ - "2017-12-26T14:39:00+0530", - 1737.55, - 1738.65, - 1737.55, - 1738.25, - 152 - ], - [ - "2017-12-26T14:40:00+0530", - 1738.25, - 1738.25, - 1738, - 1738, - 48 - ], - [ - "2017-12-26T14:41:00+0530", - 1738, - 1738, - 1733.8, - 1735.1, - 571 - ], - [ - "2017-12-26T14:42:00+0530", - 1735.1, - 1735.1, - 1735.1, - 1735.1, - 0 - ], - [ - "2017-12-26T14:43:00+0530", - 1735.05, - 1735.05, - 1735, - 1735, - 171 - ], - [ - "2017-12-26T14:44:00+0530", - 1735, - 1735, - 1735, - 1735, - 40 - ], - [ - "2017-12-26T14:45:00+0530", - 1735, - 1735.7, - 1734.65, - 1735.7, - 182 - ], - [ - "2017-12-26T14:46:00+0530", - 1735.7, - 1735.75, - 1734.65, - 1734.65, - 32 - ], - [ - "2017-12-26T14:47:00+0530", - 1734.65, - 1734.65, - 1734.65, - 1734.65, - 32 - ], - [ - "2017-12-26T14:48:00+0530", - 1734.65, - 1734.65, - 1734.65, - 1734.65, - 56 - ], - [ - "2017-12-26T14:49:00+0530", - 1734.65, - 1734.65, - 1734.65, - 1734.65, - 16 - ], - [ - "2017-12-26T14:50:00+0530", - 1734.65, - 1736, - 1734.65, - 1735.5, - 290 - ], - [ - "2017-12-26T14:51:00+0530", - 1735.5, - 1735.5, - 1733.8, - 1733.8, - 337 - ], - [ - "2017-12-26T14:52:00+0530", - 1733.8, - 1737, - 1733.8, - 1737, - 158 - ], - [ - "2017-12-26T14:53:00+0530", - 1737, - 1737.5, - 1737, - 1737.45, - 254 - ], - [ - "2017-12-26T14:54:00+0530", - 1737.45, - 1737.45, - 1735.9, - 1737.05, - 457 - ], - [ - "2017-12-26T14:55:00+0530", - 1737.05, - 1738, - 1737.05, - 1738, - 1039 - ], - [ - "2017-12-26T14:56:00+0530", - 1738, - 1739, - 1738, - 1739, - 1317 - ], - [ - "2017-12-26T14:57:00+0530", - 1739, - 1740, - 1737.55, - 1739.95, - 567 - ], - [ - "2017-12-26T14:58:00+0530", - 1739.8, - 1740, - 1737.65, - 1737.65, - 2310 - ], - [ - "2017-12-26T14:59:00+0530", - 1737.65, - 1738.7, - 1736.2, - 1738.7, - 1167 - ], - [ - "2017-12-26T15:00:00+0530", - 1738.1, - 1740, - 1738.1, - 1739.9, - 1328 - ], - [ - "2017-12-26T15:01:00+0530", - 1741, - 1741, - 1740, - 1740, - 498 - ], - [ - "2017-12-26T15:02:00+0530", - 1740, - 1740.05, - 1740, - 1740, - 179 - ], - [ - "2017-12-26T15:03:00+0530", - 1740, - 1741, - 1740, - 1741, - 250 - ], - [ - "2017-12-26T15:04:00+0530", - 1741, - 1742, - 1739.65, - 1742, - 1286 - ], - [ - "2017-12-26T15:05:00+0530", - 1742, - 1742.9, - 1740.85, - 1742, - 1589 - ], - [ - "2017-12-26T15:06:00+0530", - 1742, - 1743.7, - 1741.05, - 1743.7, - 1189 - ], - [ - "2017-12-26T15:07:00+0530", - 1742, - 1744.2, - 1742, - 1742.7, - 1706 - ], - [ - "2017-12-26T15:08:00+0530", - 1742.7, - 1744.75, - 1742.7, - 1744.75, - 380 - ], - [ - "2017-12-26T15:09:00+0530", - 1744.75, - 1744.75, - 1743.7, - 1743.7, - 703 - ], - [ - "2017-12-26T15:10:00+0530", - 1743.7, - 1744, - 1740.7, - 1741.95, - 389 - ], - [ - "2017-12-26T15:11:00+0530", - 1741.95, - 1743.85, - 1741.95, - 1743.5, - 526 - ], - [ - "2017-12-26T15:12:00+0530", - 1743.5, - 1744, - 1742.6, - 1743.75, - 1040 - ], - [ - "2017-12-26T15:13:00+0530", - 1743.95, - 1744, - 1743.2, - 1743.2, - 150 - ], - [ - "2017-12-26T15:14:00+0530", - 1743.2, - 1743.55, - 1742.7, - 1742.7, - 55 - ], - [ - "2017-12-26T15:15:00+0530", - 1742.7, - 1744, - 1742.7, - 1744, - 397 - ], - [ - "2017-12-26T15:16:00+0530", - 1744, - 1744, - 1742.55, - 1742.7, - 959 - ], - [ - "2017-12-26T15:17:00+0530", - 1742.45, - 1743.4, - 1741.7, - 1741.7, - 337 - ], - [ - "2017-12-26T15:18:00+0530", - 1741.7, - 1742.65, - 1740.4, - 1741.6, - 559 - ], - [ - "2017-12-26T15:19:00+0530", - 1741.6, - 1742.85, - 1741.4, - 1741.4, - 308 - ], - [ - "2017-12-26T15:20:00+0530", - 1741.4, - 1741.9, - 1740, - 1741.9, - 2971 - ], - [ - "2017-12-26T15:21:00+0530", - 1741.75, - 1742.75, - 1741.05, - 1741.05, - 667 - ], - [ - "2017-12-26T15:22:00+0530", - 1741.05, - 1742, - 1740.45, - 1741.95, - 583 - ], - [ - "2017-12-26T15:23:00+0530", - 1741.95, - 1743.75, - 1741.8, - 1743.75, - 701 - ], - [ - "2017-12-26T15:24:00+0530", - 1743.75, - 1743.75, - 1742.4, - 1742.4, - 169 - ], - [ - "2017-12-26T15:25:00+0530", - 1742.4, - 1743.05, - 1742.4, - 1742.95, - 208 - ], - [ - "2017-12-26T15:26:00+0530", - 1742.95, - 1744, - 1742.95, - 1743.4, - 739 - ], - [ - "2017-12-26T15:27:00+0530", - 1743.4, - 1743.5, - 1741, - 1741, - 1045 - ], - [ - "2017-12-26T15:28:00+0530", - 1741, - 1742, - 1740, - 1742, - 416 - ], - [ - "2017-12-26T15:29:00+0530", - 1742, - 1743.95, - 1740.1, - 1743.9, - 1224 - ], - [ - "2017-12-27T09:15:00+0530", - 1740.25, - 1740.9, - 1732.1, - 1738.45, - 1860 - ], - [ - "2017-12-27T09:16:00+0530", - 1738.45, - 1738.45, - 1735.65, - 1736.9, - 492 - ], - [ - "2017-12-27T09:17:00+0530", - 1736.75, - 1738.6, - 1736.35, - 1736.9, - 416 - ], - [ - "2017-12-27T09:18:00+0530", - 1736.9, - 1738, - 1736.75, - 1737.15, - 252 - ], - [ - "2017-12-27T09:19:00+0530", - 1737.15, - 1738, - 1735.8, - 1738, - 1173 - ], - [ - "2017-12-27T09:20:00+0530", - 1738, - 1738, - 1735.5, - 1735.5, - 246 - ], - [ - "2017-12-27T09:21:00+0530", - 1735.5, - 1735.5, - 1734.2, - 1735, - 101 - ], - [ - "2017-12-27T09:22:00+0530", - 1735, - 1736, - 1732, - 1733.5, - 763 - ], - [ - "2017-12-27T09:23:00+0530", - 1733.5, - 1738, - 1733, - 1738, - 1855 - ], - [ - "2017-12-27T09:24:00+0530", - 1738, - 1741.8, - 1738, - 1739.95, - 325 - ], - [ - "2017-12-27T09:25:00+0530", - 1739.95, - 1742.55, - 1739.95, - 1740.85, - 536 - ], - [ - "2017-12-27T09:26:00+0530", - 1740.85, - 1745.25, - 1740.85, - 1742.4, - 674 - ], - [ - "2017-12-27T09:27:00+0530", - 1742.4, - 1743.55, - 1741.6, - 1743.15, - 968 - ], - [ - "2017-12-27T09:28:00+0530", - 1743.15, - 1743.65, - 1741.75, - 1742.3, - 253 - ], - [ - "2017-12-27T09:29:00+0530", - 1742.3, - 1743.25, - 1740.45, - 1741.4, - 103 - ], - [ - "2017-12-27T09:30:00+0530", - 1741.4, - 1741.65, - 1740, - 1740, - 180 - ], - [ - "2017-12-27T09:31:00+0530", - 1740, - 1741.1, - 1739.9, - 1740.5, - 182 - ], - [ - "2017-12-27T09:32:00+0530", - 1740.5, - 1741, - 1739, - 1740.2, - 234 - ], - [ - "2017-12-27T09:33:00+0530", - 1740.2, - 1740.2, - 1736.15, - 1736.95, - 234 - ], - [ - "2017-12-27T09:34:00+0530", - 1736.95, - 1738, - 1736.2, - 1736.85, - 564 - ], - [ - "2017-12-27T09:35:00+0530", - 1736.85, - 1736.85, - 1735.1, - 1736, - 263 - ], - [ - "2017-12-27T09:36:00+0530", - 1736.45, - 1737.7, - 1735.1, - 1736.65, - 831 - ], - [ - "2017-12-27T09:37:00+0530", - 1736.65, - 1739.9, - 1736.65, - 1739.85, - 1191 - ], - [ - "2017-12-27T09:38:00+0530", - 1739.85, - 1739.85, - 1737.5, - 1737.7, - 34 - ], - [ - "2017-12-27T09:39:00+0530", - 1737.7, - 1737.7, - 1735.7, - 1735.7, - 958 - ], - [ - "2017-12-27T09:40:00+0530", - 1735.7, - 1736.5, - 1735.7, - 1736, - 113 - ], - [ - "2017-12-27T09:41:00+0530", - 1736, - 1737.45, - 1735.7, - 1735.7, - 499 - ], - [ - "2017-12-27T09:42:00+0530", - 1735.7, - 1736.15, - 1735.7, - 1736.15, - 25 - ], - [ - "2017-12-27T09:43:00+0530", - 1736.15, - 1736.9, - 1735.05, - 1736.9, - 593 - ], - [ - "2017-12-27T09:44:00+0530", - 1736.9, - 1736.9, - 1735.7, - 1736.85, - 129 - ], - [ - "2017-12-27T09:45:00+0530", - 1736.85, - 1736.85, - 1735.1, - 1735.1, - 410 - ], - [ - "2017-12-27T09:46:00+0530", - 1735, - 1735.3, - 1734.35, - 1735.3, - 301 - ], - [ - "2017-12-27T09:47:00+0530", - 1734.6, - 1736.15, - 1734.6, - 1735, - 443 - ], - [ - "2017-12-27T09:48:00+0530", - 1735.65, - 1736, - 1734.6, - 1736, - 260 - ], - [ - "2017-12-27T09:49:00+0530", - 1736, - 1736, - 1735.1, - 1735.1, - 178 - ], - [ - "2017-12-27T09:50:00+0530", - 1735.1, - 1735.1, - 1735.1, - 1735.1, - 0 - ], - [ - "2017-12-27T09:51:00+0530", - 1735.1, - 1736, - 1734.6, - 1735.7, - 168 - ], - [ - "2017-12-27T09:52:00+0530", - 1735.7, - 1739.7, - 1735.7, - 1739.7, - 1183 - ], - [ - "2017-12-27T09:53:00+0530", - 1739.7, - 1739.95, - 1739.55, - 1739.95, - 61 - ], - [ - "2017-12-27T09:54:00+0530", - 1739.95, - 1739.95, - 1738.35, - 1738.35, - 151 - ], - [ - "2017-12-27T09:55:00+0530", - 1739.65, - 1743.4, - 1739.65, - 1743, - 2137 - ], - [ - "2017-12-27T09:56:00+0530", - 1743, - 1743, - 1740.6, - 1742, - 300 - ], - [ - "2017-12-27T09:57:00+0530", - 1742, - 1742.45, - 1740.95, - 1742.2, - 892 - ], - [ - "2017-12-27T09:58:00+0530", - 1742.2, - 1744, - 1741.95, - 1742.5, - 1180 - ], - [ - "2017-12-27T09:59:00+0530", - 1742.5, - 1744, - 1742.5, - 1743.95, - 361 - ], - [ - "2017-12-27T10:00:00+0530", - 1743.95, - 1745.5, - 1743, - 1744.45, - 1333 - ], - [ - "2017-12-27T10:01:00+0530", - 1744.45, - 1745.1, - 1744.05, - 1744.25, - 32 - ], - [ - "2017-12-27T10:02:00+0530", - 1744.25, - 1745, - 1744, - 1744, - 358 - ], - [ - "2017-12-27T10:03:00+0530", - 1744, - 1744.95, - 1743.4, - 1744.9, - 114 - ], - [ - "2017-12-27T10:04:00+0530", - 1743.6, - 1744.7, - 1743.6, - 1743.6, - 96 - ], - [ - "2017-12-27T10:05:00+0530", - 1743.6, - 1744.7, - 1743.6, - 1744, - 239 - ], - [ - "2017-12-27T10:06:00+0530", - 1744, - 1744, - 1743.25, - 1743.25, - 812 - ], - [ - "2017-12-27T10:07:00+0530", - 1743.25, - 1743.9, - 1743.25, - 1743.25, - 73 - ], - [ - "2017-12-27T10:08:00+0530", - 1743.25, - 1743.95, - 1740.75, - 1741, - 1027 - ], - [ - "2017-12-27T10:09:00+0530", - 1741.55, - 1741.9, - 1741, - 1741, - 207 - ], - [ - "2017-12-27T10:10:00+0530", - 1741, - 1741.95, - 1740.3, - 1740.3, - 400 - ], - [ - "2017-12-27T10:11:00+0530", - 1740.3, - 1741.95, - 1740, - 1740.45, - 409 - ], - [ - "2017-12-27T10:12:00+0530", - 1740.45, - 1741.75, - 1739.5, - 1740.45, - 264 - ], - [ - "2017-12-27T10:13:00+0530", - 1740.45, - 1741.55, - 1740.45, - 1740.45, - 109 - ], - [ - "2017-12-27T10:14:00+0530", - 1740.45, - 1740.45, - 1739.55, - 1739.55, - 54 - ], - [ - "2017-12-27T10:15:00+0530", - 1739.55, - 1742.4, - 1739.55, - 1742.4, - 261 - ], - [ - "2017-12-27T10:16:00+0530", - 1742.4, - 1742.4, - 1740.55, - 1741.6, - 126 - ], - [ - "2017-12-27T10:17:00+0530", - 1741.6, - 1741.6, - 1740.55, - 1740.55, - 59 - ], - [ - "2017-12-27T10:18:00+0530", - 1740.55, - 1741.35, - 1740.55, - 1740.55, - 61 - ], - [ - "2017-12-27T10:19:00+0530", - 1740.55, - 1740.55, - 1740.55, - 1740.55, - 15 - ], - [ - "2017-12-27T10:20:00+0530", - 1740.55, - 1741, - 1740.55, - 1740.6, - 30 - ], - [ - "2017-12-27T10:21:00+0530", - 1740.6, - 1740.6, - 1740.55, - 1740.55, - 120 - ], - [ - "2017-12-27T10:22:00+0530", - 1740.55, - 1741.1, - 1740.55, - 1740.65, - 68 - ], - [ - "2017-12-27T10:23:00+0530", - 1740.65, - 1741.65, - 1740.6, - 1741.65, - 164 - ], - [ - "2017-12-27T10:24:00+0530", - 1741.65, - 1741.8, - 1740.55, - 1740.55, - 211 - ], - [ - "2017-12-27T10:25:00+0530", - 1740.55, - 1741.2, - 1740.15, - 1741.05, - 70 - ], - [ - "2017-12-27T10:26:00+0530", - 1741.05, - 1741.6, - 1740.55, - 1740.55, - 48 - ], - [ - "2017-12-27T10:27:00+0530", - 1740.55, - 1741.6, - 1740.5, - 1740.65, - 230 - ], - [ - "2017-12-27T10:28:00+0530", - 1740.65, - 1741.7, - 1740.65, - 1741.7, - 187 - ], - [ - "2017-12-27T10:29:00+0530", - 1741.7, - 1741.7, - 1740.65, - 1740.65, - 104 - ], - [ - "2017-12-27T10:30:00+0530", - 1740.65, - 1742.55, - 1740.65, - 1742.15, - 294 - ], - [ - "2017-12-27T10:31:00+0530", - 1742.15, - 1742.15, - 1740.85, - 1741.95, - 30 - ], - [ - "2017-12-27T10:32:00+0530", - 1741.95, - 1742.35, - 1740.7, - 1740.7, - 70 - ], - [ - "2017-12-27T10:33:00+0530", - 1740.7, - 1741.05, - 1740.7, - 1741.05, - 23 - ], - [ - "2017-12-27T10:34:00+0530", - 1741.05, - 1741.05, - 1741.05, - 1741.05, - 0 - ], - [ - "2017-12-27T10:35:00+0530", - 1741.05, - 1741.1, - 1741.05, - 1741.05, - 50 - ], - [ - "2017-12-27T10:36:00+0530", - 1741.05, - 1741.05, - 1741.05, - 1741.05, - 0 - ], - [ - "2017-12-27T10:37:00+0530", - 1741.05, - 1744.7, - 1741.05, - 1742.75, - 1131 - ], - [ - "2017-12-27T10:38:00+0530", - 1742.75, - 1744.6, - 1742.75, - 1743.35, - 87 - ], - [ - "2017-12-27T10:39:00+0530", - 1743.35, - 1744.5, - 1743.35, - 1744.1, - 457 - ], - [ - "2017-12-27T10:40:00+0530", - 1744.1, - 1747.5, - 1744, - 1746.85, - 2732 - ], - [ - "2017-12-27T10:41:00+0530", - 1746.85, - 1747.25, - 1745.7, - 1745.9, - 813 - ], - [ - "2017-12-27T10:42:00+0530", - 1745.9, - 1747.95, - 1745.9, - 1747.75, - 1686 - ], - [ - "2017-12-27T10:43:00+0530", - 1747.75, - 1748, - 1746, - 1747.1, - 1497 - ], - [ - "2017-12-27T10:44:00+0530", - 1747.4, - 1747.75, - 1746.4, - 1746.4, - 763 - ], - [ - "2017-12-27T10:45:00+0530", - 1746.4, - 1747, - 1745.2, - 1745.2, - 544 - ], - [ - "2017-12-27T10:46:00+0530", - 1745.2, - 1746, - 1744.85, - 1744.85, - 689 - ], - [ - "2017-12-27T10:47:00+0530", - 1744.85, - 1745.9, - 1744.5, - 1745.15, - 217 - ], - [ - "2017-12-27T10:48:00+0530", - 1745.15, - 1745.95, - 1744.65, - 1744.65, - 821 - ], - [ - "2017-12-27T10:49:00+0530", - 1744.65, - 1745.05, - 1744.65, - 1744.65, - 106 - ], - [ - "2017-12-27T10:50:00+0530", - 1744.65, - 1744.8, - 1743.45, - 1743.45, - 523 - ], - [ - "2017-12-27T10:51:00+0530", - 1743.45, - 1744, - 1743, - 1744, - 424 - ], - [ - "2017-12-27T10:52:00+0530", - 1744, - 1744, - 1742.25, - 1744, - 647 - ], - [ - "2017-12-27T10:53:00+0530", - 1744, - 1745, - 1744, - 1745, - 45 - ], - [ - "2017-12-27T10:54:00+0530", - 1745, - 1745, - 1743.9, - 1744.4, - 42 - ], - [ - "2017-12-27T10:55:00+0530", - 1744.4, - 1744.4, - 1742.2, - 1742.2, - 251 - ], - [ - "2017-12-27T10:56:00+0530", - 1742.2, - 1743, - 1741.7, - 1741.7, - 75 - ], - [ - "2017-12-27T10:57:00+0530", - 1741.7, - 1741.7, - 1741, - 1741, - 136 - ], - [ - "2017-12-27T10:58:00+0530", - 1741, - 1742.25, - 1741, - 1741.55, - 403 - ], - [ - "2017-12-27T10:59:00+0530", - 1741.55, - 1741.85, - 1741, - 1741.85, - 197 - ], - [ - "2017-12-27T11:00:00+0530", - 1741.85, - 1741.9, - 1741, - 1741.9, - 72 - ], - [ - "2017-12-27T11:01:00+0530", - 1741.9, - 1741.9, - 1740.65, - 1741.85, - 214 - ], - [ - "2017-12-27T11:02:00+0530", - 1741.85, - 1741.9, - 1740.65, - 1740.65, - 54 - ], - [ - "2017-12-27T11:03:00+0530", - 1740.65, - 1741.8, - 1740.65, - 1740.65, - 176 - ], - [ - "2017-12-27T11:04:00+0530", - 1740.65, - 1740.7, - 1740.65, - 1740.7, - 20 - ], - [ - "2017-12-27T11:05:00+0530", - 1740.7, - 1741.75, - 1740.7, - 1741.75, - 67 - ], - [ - "2017-12-27T11:06:00+0530", - 1741.75, - 1742.05, - 1740.7, - 1742.05, - 140 - ], - [ - "2017-12-27T11:07:00+0530", - 1742.05, - 1742.05, - 1740.65, - 1740.65, - 123 - ], - [ - "2017-12-27T11:08:00+0530", - 1740.65, - 1742.35, - 1740.65, - 1742, - 81 - ], - [ - "2017-12-27T11:09:00+0530", - 1742, - 1742.25, - 1740.65, - 1742.25, - 95 - ], - [ - "2017-12-27T11:10:00+0530", - 1742.25, - 1742.45, - 1740.85, - 1742.45, - 229 - ], - [ - "2017-12-27T11:11:00+0530", - 1742.45, - 1742.8, - 1741.1, - 1742, - 278 - ], - [ - "2017-12-27T11:12:00+0530", - 1742, - 1743, - 1741.55, - 1741.55, - 182 - ], - [ - "2017-12-27T11:13:00+0530", - 1741.55, - 1742.4, - 1740.65, - 1741.9, - 110 - ], - [ - "2017-12-27T11:14:00+0530", - 1741.9, - 1742.35, - 1740.65, - 1741.25, - 234 - ], - [ - "2017-12-27T11:15:00+0530", - 1741.25, - 1742.2, - 1741.25, - 1742.2, - 22 - ], - [ - "2017-12-27T11:16:00+0530", - 1742.2, - 1742.8, - 1741.35, - 1742.3, - 199 - ], - [ - "2017-12-27T11:17:00+0530", - 1742.3, - 1744.9, - 1742.3, - 1744.9, - 618 - ], - [ - "2017-12-27T11:18:00+0530", - 1744.9, - 1744.9, - 1743.85, - 1743.85, - 40 - ], - [ - "2017-12-27T11:19:00+0530", - 1743.85, - 1743.85, - 1743.55, - 1743.55, - 75 - ], - [ - "2017-12-27T11:20:00+0530", - 1743.55, - 1743.7, - 1743.15, - 1743.15, - 121 - ], - [ - "2017-12-27T11:21:00+0530", - 1743.15, - 1744.95, - 1743.1, - 1744.95, - 113 - ], - [ - "2017-12-27T11:22:00+0530", - 1744.95, - 1744.95, - 1744, - 1744, - 22 - ], - [ - "2017-12-27T11:23:00+0530", - 1744, - 1745, - 1743.2, - 1743.6, - 291 - ], - [ - "2017-12-27T11:24:00+0530", - 1743.6, - 1744.9, - 1743.6, - 1744.9, - 41 - ], - [ - "2017-12-27T11:25:00+0530", - 1744.9, - 1744.9, - 1744.9, - 1744.9, - 0 - ], - [ - "2017-12-27T11:26:00+0530", - 1744.9, - 1744.95, - 1743.6, - 1743.6, - 207 - ], - [ - "2017-12-27T11:27:00+0530", - 1743.6, - 1744.7, - 1743.4, - 1744.7, - 12 - ], - [ - "2017-12-27T11:28:00+0530", - 1744.7, - 1744.9, - 1743.85, - 1743.85, - 75 - ], - [ - "2017-12-27T11:29:00+0530", - 1743.85, - 1744, - 1743.7, - 1744, - 28 - ], - [ - "2017-12-27T11:30:00+0530", - 1744, - 1744.05, - 1743.4, - 1744.05, - 264 - ], - [ - "2017-12-27T11:31:00+0530", - 1744.05, - 1744.3, - 1742.8, - 1743.4, - 70 - ], - [ - "2017-12-27T11:32:00+0530", - 1743.4, - 1744.25, - 1742.95, - 1744.25, - 164 - ], - [ - "2017-12-27T11:33:00+0530", - 1744.25, - 1744.25, - 1743.2, - 1743.2, - 54 - ], - [ - "2017-12-27T11:34:00+0530", - 1743.25, - 1744, - 1743.05, - 1743.05, - 64 - ], - [ - "2017-12-27T11:35:00+0530", - 1743.05, - 1743.6, - 1743, - 1743, - 68 - ], - [ - "2017-12-27T11:36:00+0530", - 1743, - 1743.7, - 1742.75, - 1743.5, - 208 - ], - [ - "2017-12-27T11:37:00+0530", - 1743.5, - 1743.85, - 1742.7, - 1743.8, - 36 - ], - [ - "2017-12-27T11:38:00+0530", - 1743.8, - 1743.8, - 1743.8, - 1743.8, - 5 - ], - [ - "2017-12-27T11:39:00+0530", - 1743.8, - 1743.8, - 1742.75, - 1743.6, - 83 - ], - [ - "2017-12-27T11:40:00+0530", - 1743.6, - 1743.6, - 1742.55, - 1742.55, - 119 - ], - [ - "2017-12-27T11:41:00+0530", - 1742.55, - 1742.95, - 1742.3, - 1742.45, - 56 - ], - [ - "2017-12-27T11:42:00+0530", - 1741.8, - 1742.4, - 1740.7, - 1742.4, - 172 - ], - [ - "2017-12-27T11:43:00+0530", - 1742.4, - 1742.4, - 1740.65, - 1741.05, - 56 - ], - [ - "2017-12-27T11:44:00+0530", - 1741.05, - 1741.85, - 1741.05, - 1741.05, - 94 - ], - [ - "2017-12-27T11:45:00+0530", - 1741.05, - 1741.35, - 1741.05, - 1741.05, - 22 - ], - [ - "2017-12-27T11:46:00+0530", - 1741.05, - 1741.85, - 1741.05, - 1741.15, - 44 - ], - [ - "2017-12-27T11:47:00+0530", - 1741.15, - 1741.85, - 1741.15, - 1741.15, - 40 - ], - [ - "2017-12-27T11:48:00+0530", - 1741.15, - 1741.85, - 1741.15, - 1741.85, - 118 - ], - [ - "2017-12-27T11:49:00+0530", - 1741.85, - 1741.85, - 1741.05, - 1741.05, - 138 - ], - [ - "2017-12-27T11:50:00+0530", - 1742.6, - 1742.6, - 1742.6, - 1742.6, - 11 - ], - [ - "2017-12-27T11:51:00+0530", - 1742.6, - 1742.75, - 1740.65, - 1742.65, - 540 - ], - [ - "2017-12-27T11:52:00+0530", - 1742.65, - 1742.65, - 1741.35, - 1741.35, - 22 - ], - [ - "2017-12-27T11:53:00+0530", - 1741.35, - 1741.35, - 1741.25, - 1741.25, - 26 - ], - [ - "2017-12-27T11:54:00+0530", - 1741.25, - 1741.45, - 1740.85, - 1741.45, - 88 - ], - [ - "2017-12-27T11:55:00+0530", - 1741.45, - 1744.25, - 1741.2, - 1744.25, - 235 - ], - [ - "2017-12-27T11:56:00+0530", - 1744.25, - 1744.25, - 1743.05, - 1743.05, - 40 - ], - [ - "2017-12-27T11:57:00+0530", - 1743.05, - 1743.05, - 1742.7, - 1742.7, - 20 - ], - [ - "2017-12-27T11:58:00+0530", - 1742.7, - 1742.7, - 1742.7, - 1742.7, - 0 - ], - [ - "2017-12-27T11:59:00+0530", - 1742.7, - 1745, - 1741, - 1741.85, - 1102 - ], - [ - "2017-12-27T12:00:00+0530", - 1741.85, - 1742.45, - 1740, - 1742.45, - 1129 - ], - [ - "2017-12-27T12:01:00+0530", - 1742.45, - 1742.55, - 1742, - 1742.55, - 75 - ], - [ - "2017-12-27T12:02:00+0530", - 1742.55, - 1742.65, - 1741.25, - 1741.25, - 77 - ], - [ - "2017-12-27T12:03:00+0530", - 1741.25, - 1742.85, - 1740, - 1741.65, - 1670 - ], - [ - "2017-12-27T12:04:00+0530", - 1741, - 1742, - 1736.6, - 1737.6, - 7847 - ], - [ - "2017-12-27T12:05:00+0530", - 1736, - 1740.7, - 1735, - 1740, - 6623 - ], - [ - "2017-12-27T12:06:00+0530", - 1740, - 1740.85, - 1738.45, - 1738.95, - 1316 - ], - [ - "2017-12-27T12:07:00+0530", - 1738.95, - 1739.9, - 1738.15, - 1739.4, - 795 - ], - [ - "2017-12-27T12:08:00+0530", - 1740, - 1740, - 1739.05, - 1739.5, - 1022 - ], - [ - "2017-12-27T12:09:00+0530", - 1739.5, - 1740.55, - 1739.45, - 1740.15, - 781 - ], - [ - "2017-12-27T12:10:00+0530", - 1740.15, - 1740.65, - 1739.2, - 1740, - 305 - ], - [ - "2017-12-27T12:11:00+0530", - 1740, - 1740, - 1739.1, - 1739.85, - 539 - ], - [ - "2017-12-27T12:12:00+0530", - 1739.85, - 1739.85, - 1739.5, - 1739.8, - 1671 - ], - [ - "2017-12-27T12:13:00+0530", - 1739.8, - 1739.8, - 1739.1, - 1739.75, - 102 - ], - [ - "2017-12-27T12:14:00+0530", - 1739.75, - 1741.85, - 1739, - 1740.95, - 1663 - ], - [ - "2017-12-27T12:15:00+0530", - 1740.95, - 1741.75, - 1740.7, - 1740.75, - 55 - ], - [ - "2017-12-27T12:16:00+0530", - 1741.8, - 1741.8, - 1740.7, - 1741, - 210 - ], - [ - "2017-12-27T12:17:00+0530", - 1741, - 1741, - 1739.5, - 1739.95, - 491 - ], - [ - "2017-12-27T12:18:00+0530", - 1739.95, - 1739.95, - 1739, - 1739.5, - 93 - ], - [ - "2017-12-27T12:19:00+0530", - 1739.5, - 1739.9, - 1739, - 1739.9, - 993 - ], - [ - "2017-12-27T12:20:00+0530", - 1739.9, - 1739.9, - 1739, - 1739.5, - 1500 - ], - [ - "2017-12-27T12:21:00+0530", - 1739.85, - 1739.85, - 1738.55, - 1739.25, - 1380 - ], - [ - "2017-12-27T12:22:00+0530", - 1739.25, - 1739.9, - 1739.25, - 1739.9, - 161 - ], - [ - "2017-12-27T12:23:00+0530", - 1739.9, - 1739.9, - 1739.5, - 1739.5, - 961 - ], - [ - "2017-12-27T12:24:00+0530", - 1739.5, - 1739.85, - 1739, - 1739.4, - 137 - ], - [ - "2017-12-27T12:25:00+0530", - 1739.4, - 1739.4, - 1738.55, - 1738.55, - 174 - ], - [ - "2017-12-27T12:26:00+0530", - 1738.55, - 1739, - 1738.55, - 1738.6, - 30 - ], - [ - "2017-12-27T12:27:00+0530", - 1738.6, - 1739.5, - 1738.6, - 1738.7, - 264 - ], - [ - "2017-12-27T12:28:00+0530", - 1738.7, - 1739, - 1738.6, - 1739, - 147 - ], - [ - "2017-12-27T12:29:00+0530", - 1739, - 1739, - 1738.6, - 1738.95, - 152 - ], - [ - "2017-12-27T12:30:00+0530", - 1738.95, - 1738.95, - 1738.55, - 1738.55, - 20 - ], - [ - "2017-12-27T12:31:00+0530", - 1738.55, - 1738.95, - 1738.55, - 1738.95, - 64 - ], - [ - "2017-12-27T12:32:00+0530", - 1738.95, - 1739.7, - 1738.55, - 1739.4, - 175 - ], - [ - "2017-12-27T12:33:00+0530", - 1739.4, - 1739.5, - 1737.55, - 1739, - 772 - ], - [ - "2017-12-27T12:34:00+0530", - 1739, - 1739, - 1738.5, - 1738.9, - 196 - ], - [ - "2017-12-27T12:35:00+0530", - 1738.9, - 1738.9, - 1738.75, - 1738.9, - 156 - ], - [ - "2017-12-27T12:36:00+0530", - 1738.9, - 1738.9, - 1738.5, - 1738.9, - 97 - ], - [ - "2017-12-27T12:37:00+0530", - 1737.65, - 1738.5, - 1737.65, - 1738.5, - 112 - ], - [ - "2017-12-27T12:38:00+0530", - 1738.5, - 1738.95, - 1738.5, - 1738.95, - 970 - ], - [ - "2017-12-27T12:39:00+0530", - 1738.5, - 1740, - 1738.5, - 1740, - 1803 - ], - [ - "2017-12-27T12:40:00+0530", - 1740, - 1740, - 1739.6, - 1739.85, - 425 - ], - [ - "2017-12-27T12:41:00+0530", - 1739.85, - 1739.85, - 1739.45, - 1739.45, - 51 - ], - [ - "2017-12-27T12:42:00+0530", - 1739.45, - 1739.8, - 1739.05, - 1739.8, - 43 - ], - [ - "2017-12-27T12:43:00+0530", - 1739.25, - 1739.25, - 1738.5, - 1738.5, - 228 - ], - [ - "2017-12-27T12:44:00+0530", - 1738.5, - 1738.55, - 1738.05, - 1738.5, - 94 - ], - [ - "2017-12-27T12:45:00+0530", - 1738.5, - 1739.7, - 1738.15, - 1738.85, - 200 - ], - [ - "2017-12-27T12:46:00+0530", - 1738.85, - 1739.8, - 1738.5, - 1738.55, - 92 - ], - [ - "2017-12-27T12:47:00+0530", - 1738.55, - 1739.7, - 1738.55, - 1739.7, - 83 - ], - [ - "2017-12-27T12:48:00+0530", - 1739.7, - 1739.8, - 1738.5, - 1739.35, - 113 - ], - [ - "2017-12-27T12:49:00+0530", - 1739.35, - 1739.35, - 1738.5, - 1738.5, - 21 - ], - [ - "2017-12-27T12:50:00+0530", - 1738.5, - 1739.85, - 1738.5, - 1739.85, - 72 - ], - [ - "2017-12-27T12:51:00+0530", - 1739.85, - 1739.85, - 1738.5, - 1739.6, - 53 - ], - [ - "2017-12-27T12:52:00+0530", - 1739.6, - 1739.6, - 1739.6, - 1739.6, - 0 - ], - [ - "2017-12-27T12:53:00+0530", - 1739.6, - 1739.85, - 1738.5, - 1739.85, - 135 - ], - [ - "2017-12-27T12:54:00+0530", - 1739.85, - 1739.85, - 1738.6, - 1738.65, - 92 - ], - [ - "2017-12-27T12:55:00+0530", - 1738.65, - 1738.65, - 1738.65, - 1738.65, - 20 - ], - [ - "2017-12-27T12:56:00+0530", - 1738.65, - 1739, - 1738.65, - 1739, - 47 - ], - [ - "2017-12-27T12:57:00+0530", - 1738.85, - 1740, - 1738.75, - 1740, - 230 - ], - [ - "2017-12-27T12:58:00+0530", - 1739.3, - 1739.3, - 1739.25, - 1739.25, - 49 - ], - [ - "2017-12-27T12:59:00+0530", - 1739.25, - 1740, - 1738.75, - 1738.75, - 424 - ], - [ - "2017-12-27T13:00:00+0530", - 1738.75, - 1739.55, - 1738.5, - 1738.75, - 81 - ], - [ - "2017-12-27T13:01:00+0530", - 1738.75, - 1739.5, - 1738.5, - 1738.75, - 165 - ], - [ - "2017-12-27T13:02:00+0530", - 1738.75, - 1739.35, - 1738.5, - 1739.35, - 180 - ], - [ - "2017-12-27T13:03:00+0530", - 1738.75, - 1738.75, - 1738.5, - 1738.5, - 29 - ], - [ - "2017-12-27T13:04:00+0530", - 1738.75, - 1740, - 1738.75, - 1740, - 256 - ], - [ - "2017-12-27T13:05:00+0530", - 1740, - 1740, - 1738.85, - 1738.85, - 31 - ], - [ - "2017-12-27T13:06:00+0530", - 1738.85, - 1740, - 1738.85, - 1740, - 62 - ], - [ - "2017-12-27T13:07:00+0530", - 1740, - 1740.1, - 1739.9, - 1740.1, - 57 - ], - [ - "2017-12-27T13:08:00+0530", - 1740.1, - 1740.3, - 1739.9, - 1740, - 107 - ], - [ - "2017-12-27T13:09:00+0530", - 1739.9, - 1741.7, - 1739.9, - 1740.15, - 191 - ], - [ - "2017-12-27T13:10:00+0530", - 1740.15, - 1741.35, - 1740, - 1740.85, - 50 - ], - [ - "2017-12-27T13:11:00+0530", - 1740.5, - 1741.55, - 1740.05, - 1741.55, - 76 - ], - [ - "2017-12-27T13:12:00+0530", - 1741.55, - 1741.55, - 1740, - 1740.2, - 97 - ], - [ - "2017-12-27T13:13:00+0530", - 1740.2, - 1740.2, - 1740, - 1740, - 60 - ], - [ - "2017-12-27T13:14:00+0530", - 1740.05, - 1741, - 1740, - 1740, - 39 - ], - [ - "2017-12-27T13:15:00+0530", - 1740, - 1740.35, - 1740, - 1740.35, - 34 - ], - [ - "2017-12-27T13:16:00+0530", - 1740.4, - 1741.15, - 1740.05, - 1740.05, - 60 - ], - [ - "2017-12-27T13:17:00+0530", - 1740.05, - 1740.05, - 1740.05, - 1740.05, - 29 - ], - [ - "2017-12-27T13:18:00+0530", - 1740.25, - 1740.25, - 1740, - 1740, - 73 - ], - [ - "2017-12-27T13:19:00+0530", - 1739.9, - 1740, - 1739.9, - 1740, - 45 - ], - [ - "2017-12-27T13:20:00+0530", - 1740, - 1741.15, - 1739.9, - 1739.9, - 639 - ], - [ - "2017-12-27T13:21:00+0530", - 1739.55, - 1740.55, - 1739.5, - 1739.6, - 81 - ], - [ - "2017-12-27T13:22:00+0530", - 1739.6, - 1740.75, - 1739.5, - 1739.5, - 43 - ], - [ - "2017-12-27T13:23:00+0530", - 1739.5, - 1740.55, - 1739.5, - 1740.55, - 58 - ], - [ - "2017-12-27T13:24:00+0530", - 1739.55, - 1739.6, - 1739.55, - 1739.6, - 29 - ], - [ - "2017-12-27T13:25:00+0530", - 1739.4, - 1740.35, - 1739.4, - 1740, - 56 - ], - [ - "2017-12-27T13:26:00+0530", - 1740, - 1740.5, - 1739.55, - 1740.5, - 60 - ], - [ - "2017-12-27T13:27:00+0530", - 1739.7, - 1740.1, - 1739.55, - 1740.1, - 569 - ], - [ - "2017-12-27T13:28:00+0530", - 1740.1, - 1740.1, - 1738.75, - 1738.75, - 29 - ], - [ - "2017-12-27T13:29:00+0530", - 1738.75, - 1738.75, - 1738.75, - 1738.75, - 29 - ], - [ - "2017-12-27T13:30:00+0530", - 1738.75, - 1740, - 1738.75, - 1740, - 45 - ], - [ - "2017-12-27T13:31:00+0530", - 1740, - 1740, - 1739.25, - 1739.25, - 39 - ], - [ - "2017-12-27T13:32:00+0530", - 1739.05, - 1739.05, - 1739, - 1739, - 29 - ], - [ - "2017-12-27T13:33:00+0530", - 1739, - 1740.45, - 1739, - 1740.45, - 112 - ], - [ - "2017-12-27T13:34:00+0530", - 1740.45, - 1740.45, - 1739, - 1739, - 157 - ], - [ - "2017-12-27T13:35:00+0530", - 1739.05, - 1740.35, - 1739.05, - 1739.1, - 96 - ], - [ - "2017-12-27T13:36:00+0530", - 1739.15, - 1740.45, - 1739, - 1740.45, - 128 - ], - [ - "2017-12-27T13:37:00+0530", - 1740.45, - 1740.45, - 1739.05, - 1739.55, - 84 - ], - [ - "2017-12-27T13:38:00+0530", - 1739.55, - 1739.55, - 1739, - 1739, - 29 - ], - [ - "2017-12-27T13:39:00+0530", - 1739.3, - 1740.3, - 1739.3, - 1740.3, - 57 - ], - [ - "2017-12-27T13:40:00+0530", - 1740.3, - 1740.3, - 1739, - 1739, - 52 - ], - [ - "2017-12-27T13:41:00+0530", - 1739, - 1739.9, - 1739, - 1739, - 92 - ], - [ - "2017-12-27T13:42:00+0530", - 1739, - 1739, - 1739, - 1739, - 20 - ], - [ - "2017-12-27T13:43:00+0530", - 1739, - 1739, - 1739, - 1739, - 0 - ], - [ - "2017-12-27T13:44:00+0530", - 1739, - 1739.4, - 1739, - 1739, - 67 - ], - [ - "2017-12-27T13:45:00+0530", - 1739, - 1739.45, - 1739, - 1739.45, - 34 - ], - [ - "2017-12-27T13:46:00+0530", - 1739.45, - 1739.45, - 1739.05, - 1739.05, - 20 - ], - [ - "2017-12-27T13:47:00+0530", - 1739.05, - 1739.45, - 1739.05, - 1739.45, - 65 - ], - [ - "2017-12-27T13:48:00+0530", - 1739.45, - 1739.45, - 1739, - 1739.05, - 120 - ], - [ - "2017-12-27T13:49:00+0530", - 1739.1, - 1739.65, - 1738.7, - 1739.05, - 888 - ], - [ - "2017-12-27T13:50:00+0530", - 1739.05, - 1740.5, - 1739.05, - 1739.1, - 233 - ], - [ - "2017-12-27T13:51:00+0530", - 1739.1, - 1739.3, - 1739.05, - 1739.05, - 36 - ], - [ - "2017-12-27T13:52:00+0530", - 1739.05, - 1739.8, - 1739.05, - 1739.8, - 18 - ], - [ - "2017-12-27T13:53:00+0530", - 1739.25, - 1740.15, - 1739.15, - 1739.5, - 85 - ], - [ - "2017-12-27T13:54:00+0530", - 1739.25, - 1740, - 1739.15, - 1739.95, - 69 - ], - [ - "2017-12-27T13:55:00+0530", - 1739.5, - 1740, - 1739.35, - 1739.35, - 46 - ], - [ - "2017-12-27T13:56:00+0530", - 1739.25, - 1739.95, - 1739.2, - 1739.95, - 63 - ], - [ - "2017-12-27T13:57:00+0530", - 1739.2, - 1739.95, - 1739.1, - 1739.95, - 65 - ], - [ - "2017-12-27T13:58:00+0530", - 1739.1, - 1739.95, - 1739.05, - 1739.8, - 146 - ], - [ - "2017-12-27T13:59:00+0530", - 1739.05, - 1739.95, - 1739.05, - 1739.9, - 12 - ], - [ - "2017-12-27T14:00:00+0530", - 1739.05, - 1739.05, - 1739.05, - 1739.05, - 54 - ], - [ - "2017-12-27T14:01:00+0530", - 1739.05, - 1739.5, - 1739, - 1739.4, - 415 - ], - [ - "2017-12-27T14:02:00+0530", - 1739.1, - 1739.5, - 1739.05, - 1739.5, - 125 - ], - [ - "2017-12-27T14:03:00+0530", - 1739.5, - 1739.6, - 1739.05, - 1739.05, - 51 - ], - [ - "2017-12-27T14:04:00+0530", - 1739.05, - 1739.85, - 1739.05, - 1739.05, - 159 - ], - [ - "2017-12-27T14:05:00+0530", - 1739.05, - 1739.85, - 1739, - 1739.75, - 277 - ], - [ - "2017-12-27T14:06:00+0530", - 1739.1, - 1739.1, - 1739.05, - 1739.05, - 31 - ], - [ - "2017-12-27T14:07:00+0530", - 1739.05, - 1739.8, - 1739.05, - 1739.8, - 59 - ], - [ - "2017-12-27T14:08:00+0530", - 1739.05, - 1739.9, - 1739, - 1739.9, - 166 - ], - [ - "2017-12-27T14:09:00+0530", - 1739.05, - 1740.1, - 1739.05, - 1739.15, - 828 - ], - [ - "2017-12-27T14:10:00+0530", - 1739.15, - 1740.5, - 1739.05, - 1739.5, - 392 - ], - [ - "2017-12-27T14:11:00+0530", - 1739.5, - 1739.5, - 1739, - 1739.45, - 56 - ], - [ - "2017-12-27T14:12:00+0530", - 1739.05, - 1739.5, - 1739, - 1739.5, - 475 - ], - [ - "2017-12-27T14:13:00+0530", - 1739.1, - 1739.9, - 1739.05, - 1739.9, - 148 - ], - [ - "2017-12-27T14:14:00+0530", - 1739, - 1739.45, - 1738.55, - 1739.45, - 123 - ], - [ - "2017-12-27T14:15:00+0530", - 1739.05, - 1739.85, - 1738.55, - 1739.8, - 229 - ], - [ - "2017-12-27T14:16:00+0530", - 1739.05, - 1739.05, - 1738.55, - 1738.55, - 31 - ], - [ - "2017-12-27T14:17:00+0530", - 1739.05, - 1739.6, - 1739.05, - 1739.05, - 33 - ], - [ - "2017-12-27T14:18:00+0530", - 1739.05, - 1739.35, - 1739, - 1739.25, - 189 - ], - [ - "2017-12-27T14:19:00+0530", - 1739.25, - 1739.85, - 1739.05, - 1739.25, - 70 - ], - [ - "2017-12-27T14:20:00+0530", - 1739, - 1739.8, - 1739, - 1739.8, - 492 - ], - [ - "2017-12-27T14:21:00+0530", - 1739.25, - 1739.7, - 1739.25, - 1739.25, - 2672 - ], - [ - "2017-12-27T14:22:00+0530", - 1739.65, - 1739.95, - 1738.6, - 1739.2, - 1800 - ], - [ - "2017-12-27T14:23:00+0530", - 1739.2, - 1739.2, - 1738, - 1738.7, - 425 - ], - [ - "2017-12-27T14:24:00+0530", - 1738, - 1738.6, - 1738, - 1738.6, - 1250 - ], - [ - "2017-12-27T14:25:00+0530", - 1738.3, - 1739.25, - 1737.6, - 1738.75, - 556 - ], - [ - "2017-12-27T14:26:00+0530", - 1738, - 1738.8, - 1737.05, - 1738.7, - 1017 - ], - [ - "2017-12-27T14:27:00+0530", - 1738, - 1738.75, - 1737.9, - 1738.1, - 1072 - ], - [ - "2017-12-27T14:28:00+0530", - 1738.1, - 1738.5, - 1737.25, - 1738, - 846 - ], - [ - "2017-12-27T14:29:00+0530", - 1738, - 1738.35, - 1736.25, - 1736.25, - 1019 - ], - [ - "2017-12-27T14:30:00+0530", - 1736.05, - 1737.8, - 1736.05, - 1736.5, - 439 - ], - [ - "2017-12-27T14:31:00+0530", - 1736, - 1736.25, - 1735, - 1735, - 1161 - ], - [ - "2017-12-27T14:32:00+0530", - 1735, - 1736.15, - 1735, - 1735.05, - 208 - ], - [ - "2017-12-27T14:33:00+0530", - 1736.35, - 1737.75, - 1735.75, - 1736.4, - 245 - ], - [ - "2017-12-27T14:34:00+0530", - 1735.1, - 1736, - 1735, - 1736, - 907 - ], - [ - "2017-12-27T14:35:00+0530", - 1735.5, - 1736.6, - 1734.8, - 1734.8, - 1799 - ], - [ - "2017-12-27T14:36:00+0530", - 1735.5, - 1737.6, - 1734.15, - 1737.6, - 2623 - ], - [ - "2017-12-27T14:37:00+0530", - 1735.5, - 1736.4, - 1735.5, - 1735.5, - 772 - ], - [ - "2017-12-27T14:38:00+0530", - 1735.5, - 1736.35, - 1734.35, - 1736.3, - 3209 - ], - [ - "2017-12-27T14:39:00+0530", - 1735.5, - 1737, - 1735.5, - 1735.5, - 1169 - ], - [ - "2017-12-27T14:40:00+0530", - 1735.5, - 1736.4, - 1735, - 1735, - 4324 - ], - [ - "2017-12-27T14:41:00+0530", - 1734.15, - 1737.05, - 1733.55, - 1735, - 4313 - ], - [ - "2017-12-27T14:42:00+0530", - 1735, - 1736, - 1735, - 1735, - 1824 - ], - [ - "2017-12-27T14:43:00+0530", - 1734.15, - 1735, - 1730.9, - 1730.9, - 2682 - ], - [ - "2017-12-27T14:44:00+0530", - 1730.75, - 1732, - 1730.75, - 1730.75, - 622 - ], - [ - "2017-12-27T14:45:00+0530", - 1730.75, - 1731, - 1727.15, - 1727.15, - 2209 - ], - [ - "2017-12-27T14:46:00+0530", - 1727.15, - 1730.95, - 1727.1, - 1727.95, - 901 - ], - [ - "2017-12-27T14:47:00+0530", - 1727.95, - 1729.9, - 1726.45, - 1728.8, - 2331 - ], - [ - "2017-12-27T14:48:00+0530", - 1728.5, - 1730.95, - 1727.6, - 1730.85, - 743 - ], - [ - "2017-12-27T14:49:00+0530", - 1730.15, - 1730.9, - 1728, - 1729, - 625 - ], - [ - "2017-12-27T14:50:00+0530", - 1729, - 1729.25, - 1725.4, - 1729.25, - 1310 - ], - [ - "2017-12-27T14:51:00+0530", - 1727.9, - 1729, - 1726.55, - 1727.55, - 224 - ], - [ - "2017-12-27T14:52:00+0530", - 1728.4, - 1729.65, - 1727.1, - 1729.65, - 629 - ], - [ - "2017-12-27T14:53:00+0530", - 1728.55, - 1730, - 1728, - 1729.6, - 451 - ], - [ - "2017-12-27T14:54:00+0530", - 1729.6, - 1732.9, - 1729.6, - 1732.1, - 741 - ], - [ - "2017-12-27T14:55:00+0530", - 1730.95, - 1731.9, - 1730.6, - 1731.9, - 168 - ], - [ - "2017-12-27T14:56:00+0530", - 1731.9, - 1732.25, - 1730.9, - 1730.9, - 268 - ], - [ - "2017-12-27T14:57:00+0530", - 1730.9, - 1732.25, - 1730.1, - 1732, - 389 - ], - [ - "2017-12-27T14:58:00+0530", - 1732.15, - 1732.15, - 1730.9, - 1731.35, - 221 - ], - [ - "2017-12-27T14:59:00+0530", - 1731.35, - 1732.25, - 1730.55, - 1732.25, - 838 - ], - [ - "2017-12-27T15:00:00+0530", - 1732.2, - 1733, - 1732, - 1732.85, - 967 - ], - [ - "2017-12-27T15:01:00+0530", - 1732.55, - 1734.4, - 1732.55, - 1734.4, - 321 - ], - [ - "2017-12-27T15:02:00+0530", - 1734.4, - 1735.9, - 1734.15, - 1734.8, - 882 - ], - [ - "2017-12-27T15:03:00+0530", - 1734.8, - 1737.95, - 1734.8, - 1737, - 837 - ], - [ - "2017-12-27T15:04:00+0530", - 1737, - 1737, - 1736, - 1736, - 2101 - ], - [ - "2017-12-27T15:05:00+0530", - 1736, - 1737.35, - 1735.7, - 1736.5, - 1802 - ], - [ - "2017-12-27T15:06:00+0530", - 1736.5, - 1737.9, - 1735.9, - 1736.9, - 2940 - ], - [ - "2017-12-27T15:07:00+0530", - 1736.9, - 1737.95, - 1736.2, - 1737.6, - 317 - ], - [ - "2017-12-27T15:08:00+0530", - 1737.8, - 1738, - 1736.8, - 1737.4, - 549 - ], - [ - "2017-12-27T15:09:00+0530", - 1737.4, - 1738, - 1736.55, - 1736.8, - 521 - ], - [ - "2017-12-27T15:10:00+0530", - 1736.8, - 1736.8, - 1735.65, - 1736, - 577 - ], - [ - "2017-12-27T15:11:00+0530", - 1736, - 1736.8, - 1735.55, - 1736.1, - 136 - ], - [ - "2017-12-27T15:12:00+0530", - 1736, - 1737.05, - 1736, - 1736.95, - 2115 - ], - [ - "2017-12-27T15:13:00+0530", - 1736.95, - 1737.4, - 1736.2, - 1736.95, - 255 - ], - [ - "2017-12-27T15:14:00+0530", - 1736, - 1738.85, - 1736, - 1738.85, - 579 - ], - [ - "2017-12-27T15:15:00+0530", - 1738.85, - 1739.5, - 1737.75, - 1738, - 801 - ], - [ - "2017-12-27T15:16:00+0530", - 1737.9, - 1738.7, - 1736.15, - 1737, - 380 - ], - [ - "2017-12-27T15:17:00+0530", - 1737.05, - 1738.6, - 1737.05, - 1737.5, - 273 - ], - [ - "2017-12-27T15:18:00+0530", - 1737.5, - 1738, - 1736.5, - 1736.5, - 654 - ], - [ - "2017-12-27T15:19:00+0530", - 1736, - 1737.5, - 1735.1, - 1736.5, - 2438 - ], - [ - "2017-12-27T15:20:00+0530", - 1736.5, - 1736.5, - 1734.75, - 1736.05, - 8466 - ], - [ - "2017-12-27T15:21:00+0530", - 1736.9, - 1737.5, - 1735.45, - 1736, - 3553 - ], - [ - "2017-12-27T15:22:00+0530", - 1736, - 1738.8, - 1734, - 1734, - 8319 - ], - [ - "2017-12-27T15:23:00+0530", - 1734, - 1735.5, - 1734, - 1735.5, - 603 - ], - [ - "2017-12-27T15:24:00+0530", - 1735.5, - 1735.5, - 1734, - 1735.1, - 942 - ], - [ - "2017-12-27T15:25:00+0530", - 1735.1, - 1735.75, - 1734.3, - 1734.75, - 366 - ], - [ - "2017-12-27T15:26:00+0530", - 1734.75, - 1734.75, - 1733.75, - 1734.1, - 1476 - ], - [ - "2017-12-27T15:27:00+0530", - 1734.1, - 1734.5, - 1734, - 1734, - 754 - ], - [ - "2017-12-27T15:28:00+0530", - 1734, - 1734.5, - 1733.15, - 1734.5, - 1557 - ], - [ - "2017-12-27T15:29:00+0530", - 1734.5, - 1734.5, - 1730.45, - 1730.45, - 567 - ] - ] - } -} diff --git a/mock_responses/holdings.json b/mock_responses/holdings.json deleted file mode 100644 index a9b6449..0000000 --- a/mock_responses/holdings.json +++ /dev/null @@ -1,822 +0,0 @@ -{ - "status": "success", - "data": [ - { - "tradingsymbol": "BENGALASM", - "exchange": "BSE", - "instrument_token": 136472324, - "isin": "INE083K01017", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 1150, - "last_price": 2620, - "close_price": 2751.1, - "pnl": 1470, - "day_change": -131.0999999999999, - "day_change_percentage": -4.7653665806404675 - }, - { - "tradingsymbol": "CONFIPET", - "exchange": "BSE", - "instrument_token": 134868228, - "isin": "INE552D01024", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 5.89, - "last_price": 31.35, - "close_price": 31.5, - "pnl": 25.46, - "day_change": -0.14999999999999858, - "day_change_percentage": -0.4761904761904716 - }, - { - "tradingsymbol": "IPOWER", - "exchange": "BSE", - "instrument_token": 131175684, - "isin": "INE468F01010", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 0, - "last_price": 1.95, - "close_price": 0, - "pnl": 1.95, - "day_change": 0, - "day_change_percentage": 0 - }, - { - "tradingsymbol": "JCTLTD", - "exchange": "BSE", - "instrument_token": 128057092, - "isin": "INE945A01026", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 6.03, - "last_price": 3.5, - "close_price": 3.48, - "pnl": -2.5300000000000002, - "day_change": 0.020000000000000018, - "day_change_percentage": 0.5747126436781614 - }, - { - "tradingsymbol": "SPICEJET", - "exchange": "BSE", - "instrument_token": 128072964, - "isin": "INE285B01017", - "product": "CNC", - "price": 0, - "quantity": 5, - "t1_quantity": 0, - "realised_quantity": 5, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 61.2, - "last_price": 145.65, - "close_price": 146.05, - "pnl": 422.25, - "day_change": -0.4000000000000057, - "day_change_percentage": -0.2738788086271864 - }, - { - "tradingsymbol": "ADANIENT", - "exchange": "NSE", - "instrument_token": 6401, - "isin": "INE423A01024", - "product": "CNC", - "price": 0, - "quantity": 2, - "t1_quantity": 0, - "realised_quantity": 2, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 77.375, - "last_price": 165.25, - "close_price": 165.95, - "pnl": 175.75, - "day_change": -0.6999999999999886, - "day_change_percentage": -0.42181379933714286 - }, - { - "tradingsymbol": "ADANIPORTS", - "exchange": "NSE", - "instrument_token": 3861249, - "isin": "INE742F01042", - "product": "CNC", - "price": 0, - "quantity": 2, - "t1_quantity": 0, - "realised_quantity": 2, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 238.875, - "last_price": 398.7, - "close_price": 404.2, - "pnl": 319.65, - "day_change": -5.5, - "day_change_percentage": -1.3607125185551707 - }, - { - "tradingsymbol": "ADANIPOWER", - "exchange": "NSE", - "instrument_token": 4451329, - "isin": "INE814H01011", - "product": "CNC", - "price": 0, - "quantity": 2, - "t1_quantity": 0, - "realised_quantity": 2, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 32, - "last_price": 40.7, - "close_price": 40.65, - "pnl": 17.400000000000006, - "day_change": 0.05000000000000426, - "day_change_percentage": 0.12300123001231063 - }, - { - "tradingsymbol": "APOLLOTYRE", - "exchange": "NSE", - "instrument_token": 41729, - "isin": "INE438A01022", - "product": "CNC", - "price": 0, - "quantity": 4, - "t1_quantity": 0, - "realised_quantity": 4, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 206.9, - "last_price": 268.8, - "close_price": 268.85, - "pnl": 247.60000000000002, - "day_change": -0.05000000000001137, - "day_change_percentage": -0.018597731076812854 - }, - { - "tradingsymbol": "ASHOKLEY", - "exchange": "NSE", - "instrument_token": 54273, - "isin": "INE208A01029", - "product": "CNC", - "price": 0, - "quantity": 3, - "t1_quantity": 0, - "realised_quantity": 3, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 103.08333333333299, - "last_price": 117.7, - "close_price": 118.6, - "pnl": 43.850000000001046, - "day_change": -0.8999999999999915, - "day_change_percentage": -0.7588532883642424 - }, - { - "tradingsymbol": "AXISBANK", - "exchange": "NSE", - "instrument_token": 1510401, - "isin": "INE238A01034", - "product": "CNC", - "price": 0, - "quantity": 11, - "t1_quantity": 0, - "realised_quantity": 11, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 460.227272727273, - "last_price": 546.85, - "close_price": 554.6, - "pnl": 952.8499999999975, - "day_change": -7.75, - "day_change_percentage": -1.3974035340786153 - }, - { - "tradingsymbol": "CIPLA", - "exchange": "NSE", - "instrument_token": 177665, - "isin": "INE059A01026", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 546.6, - "last_price": 606.05, - "close_price": 612.65, - "pnl": 59.44999999999993, - "day_change": -6.600000000000023, - "day_change_percentage": -1.0772871949726637 - }, - { - "tradingsymbol": "DBCORP", - "exchange": "NSE", - "instrument_token": 4577537, - "isin": "INE950I01011", - "product": "CNC", - "price": 0, - "quantity": 2, - "t1_quantity": 0, - "realised_quantity": 2, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 351, - "last_price": 353.7, - "close_price": 346.7, - "pnl": 5.399999999999977, - "day_change": 7, - "day_change_percentage": 2.0190366310931642 - }, - { - "tradingsymbol": "DHANBANK", - "exchange": "NSE", - "instrument_token": 2907905, - "isin": "INE680A01011", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 24.7, - "last_price": 29.95, - "close_price": 29.8, - "pnl": 5.25, - "day_change": 0.14999999999999858, - "day_change_percentage": 0.5033557046979817 - }, - { - "tradingsymbol": "DMART", - "exchange": "NSE", - "instrument_token": 5097729, - "isin": "INE192R01011", - "product": "CNC", - "price": 0, - "quantity": 2, - "t1_quantity": 0, - "realised_quantity": 2, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 889.95, - "last_price": 1148.35, - "close_price": 1146.35, - "pnl": 516.7999999999997, - "day_change": 2, - "day_change_percentage": 0.17446678588563705 - }, - { - "tradingsymbol": "DQE-BE", - "exchange": "NSE", - "instrument_token": 6211329, - "isin": "INE656K01010", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 35.7, - "last_price": 18.45, - "close_price": 18.45, - "pnl": -17.250000000000004, - "day_change": 0, - "day_change_percentage": 0 - }, - { - "tradingsymbol": "FINCABLES", - "exchange": "NSE", - "instrument_token": 265729, - "isin": "INE235A01022", - "product": "CNC", - "price": 0, - "quantity": 2, - "t1_quantity": 0, - "realised_quantity": 2, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 411.55, - "last_price": 699.45, - "close_price": 706.25, - "pnl": 575.8000000000001, - "day_change": -6.7999999999999545, - "day_change_percentage": -0.9628318584070731 - }, - { - "tradingsymbol": "FSL", - "exchange": "NSE", - "instrument_token": 3661825, - "isin": "INE684F01012", - "product": "CNC", - "price": 0, - "quantity": 17, - "t1_quantity": 0, - "realised_quantity": 17, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 36.8, - "last_price": 40.5, - "close_price": 40.15, - "pnl": 62.90000000000005, - "day_change": 0.3500000000000014, - "day_change_percentage": 0.8717310087173136 - }, - { - "tradingsymbol": "GABRIEL", - "exchange": "NSE", - "instrument_token": 277761, - "isin": "INE524A01029", - "product": "CNC", - "price": 0, - "quantity": 6, - "t1_quantity": 0, - "realised_quantity": 6, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 107.55, - "last_price": 196.15, - "close_price": 195.25, - "pnl": 531.6, - "day_change": 0.9000000000000057, - "day_change_percentage": 0.46094750320102723 - }, - { - "tradingsymbol": "GAIL", - "exchange": "NSE", - "instrument_token": 1207553, - "isin": "INE129A01019", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 454.7, - "last_price": 511.2, - "close_price": 508.1, - "pnl": 56.5, - "day_change": 3.099999999999966, - "day_change_percentage": 0.6101161188742307 - }, - { - "tradingsymbol": "GVKPIL-BE", - "exchange": "NSE", - "instrument_token": 3386625, - "isin": "INE251H01024", - "product": "CNC", - "price": 0, - "quantity": 20, - "t1_quantity": 0, - "realised_quantity": 20, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 5.75, - "last_price": 18.15, - "close_price": 18.1, - "pnl": 247.99999999999997, - "day_change": 0.04999999999999716, - "day_change_percentage": 0.27624309392263624 - }, - { - "tradingsymbol": "HDFCBANK", - "exchange": "NSE", - "instrument_token": 341249, - "isin": "INE040A01026", - "product": "CNC", - "price": 0, - "quantity": 2, - "t1_quantity": 0, - "realised_quantity": 2, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 1234.5, - "last_price": 1878.05, - "close_price": 1856.75, - "pnl": 1287.1, - "day_change": 21.299999999999955, - "day_change_percentage": 1.14716574660024 - }, - { - "tradingsymbol": "HMVL", - "exchange": "NSE", - "instrument_token": 4918017, - "isin": "INE871K01015", - "product": "CNC", - "price": 0, - "quantity": 2, - "t1_quantity": 0, - "realised_quantity": 2, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 271.9, - "last_price": 250.55, - "close_price": 248.35, - "pnl": -42.69999999999993, - "day_change": 2.200000000000017, - "day_change_percentage": 0.8858465874773574 - }, - { - "tradingsymbol": "ICICIBANK", - "exchange": "NSE", - "instrument_token": 1270529, - "isin": "INE090A01021", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 309.7, - "last_price": 315.3, - "close_price": 312.8, - "pnl": 5.600000000000023, - "day_change": 2.5, - "day_change_percentage": 0.7992327365728901 - }, - { - "tradingsymbol": "ICIL", - "exchange": "NSE", - "instrument_token": 3068673, - "isin": "INE483B01026", - "product": "CNC", - "price": 0, - "quantity": 4, - "t1_quantity": 0, - "realised_quantity": 4, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 157.5, - "last_price": 125.7, - "close_price": 120.25, - "pnl": -127.19999999999999, - "day_change": 5.450000000000003, - "day_change_percentage": 4.532224532224535 - }, - { - "tradingsymbol": "IDBI", - "exchange": "NSE", - "instrument_token": 377857, - "isin": "INE008A01015", - "product": "CNC", - "price": 0, - "quantity": 3, - "t1_quantity": 0, - "realised_quantity": 3, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 59.79999999999999, - "last_price": 60.35, - "close_price": 60.05, - "pnl": 1.650000000000034, - "day_change": 0.30000000000000426, - "day_change_percentage": 0.4995836802664517 - }, - { - "tradingsymbol": "INFY", - "exchange": "NSE", - "instrument_token": 408065, - "isin": "INE009A01021", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 967.95, - "last_price": 1033.25, - "close_price": 1034.25, - "pnl": 65.29999999999995, - "day_change": -1, - "day_change_percentage": -0.09668842156151801 - }, - { - "tradingsymbol": "ITC", - "exchange": "NSE", - "instrument_token": 424961, - "isin": "INE154A01025", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 274.5, - "last_price": 261.85, - "close_price": 262.15, - "pnl": -12.649999999999977, - "day_change": -0.2999999999999545, - "day_change_percentage": -0.11443829868394223 - }, - { - "tradingsymbol": "JKIL", - "exchange": "NSE", - "instrument_token": 3908097, - "isin": "INE576I01022", - "product": "CNC", - "price": 0, - "quantity": 3, - "t1_quantity": 0, - "realised_quantity": 3, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 216.1, - "last_price": 301.75, - "close_price": 308.2, - "pnl": 256.95000000000005, - "day_change": -6.449999999999989, - "day_change_percentage": -2.0927968851395162 - }, - { - "tradingsymbol": "JPASSOCIAT", - "exchange": "NSE", - "instrument_token": 2933761, - "isin": "INE455F01025", - "product": "CNC", - "price": 0, - "quantity": 11, - "t1_quantity": 0, - "realised_quantity": 11, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 8.00909090909091, - "last_price": 23.2, - "close_price": 21.35, - "pnl": 167.1, - "day_change": 1.8499999999999979, - "day_change_percentage": 8.665105386416851 - }, - { - "tradingsymbol": "KRIDHANINF", - "exchange": "NSE", - "instrument_token": 2938881, - "isin": "INE524L01026", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 91.75, - "last_price": 121.2, - "close_price": 122.25, - "pnl": 29.450000000000003, - "day_change": -1.0499999999999972, - "day_change_percentage": -0.85889570552147 - }, - { - "tradingsymbol": "KSL", - "exchange": "NSE", - "instrument_token": 4835585, - "isin": "INE907A01026", - "product": "CNC", - "price": 0, - "quantity": 2, - "t1_quantity": 0, - "realised_quantity": 2, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 289.75, - "last_price": 408.4, - "close_price": 398.5, - "pnl": 237.29999999999995, - "day_change": 9.899999999999977, - "day_change_percentage": 2.484316185696356 - }, - { - "tradingsymbol": "KTKBANK", - "exchange": "NSE", - "instrument_token": 2061825, - "isin": "INE614B01018", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 122.05, - "last_price": 149.4, - "close_price": 151.9, - "pnl": 27.35000000000001, - "day_change": -2.5, - "day_change_percentage": -1.6458196181698483 - }, - { - "tradingsymbol": "L&TFH", - "exchange": "NSE", - "instrument_token": 6386689, - "isin": "INE498L01015", - "product": "CNC", - "price": 0, - "quantity": 2, - "t1_quantity": 0, - "realised_quantity": 2, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 85.075, - "last_price": 173.45, - "close_price": 176.75, - "pnl": 176.74999999999997, - "day_change": -3.3000000000000114, - "day_change_percentage": -1.8670438472418733 - }, - { - "tradingsymbol": "NFL", - "exchange": "NSE", - "instrument_token": 3564801, - "isin": "INE870D01012", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 0, - "last_price": 69.25, - "close_price": 68.25, - "pnl": 69.25, - "day_change": 1, - "day_change_percentage": 1.465201465201465 - }, - { - "tradingsymbol": "PNB", - "exchange": "NSE", - "instrument_token": 2730497, - "isin": "INE160A01022", - "product": "CNC", - "price": 0, - "quantity": 2, - "t1_quantity": 0, - "realised_quantity": 2, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 112.3, - "last_price": 170.8, - "close_price": 174.1, - "pnl": 117.00000000000003, - "day_change": -3.299999999999983, - "day_change_percentage": -1.8954623779437008 - }, - { - "tradingsymbol": "PTC", - "exchange": "NSE", - "instrument_token": 2906881, - "isin": "INE877F01012", - "product": "CNC", - "price": 0, - "quantity": 2, - "t1_quantity": 0, - "realised_quantity": 2, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 75.125, - "last_price": 115.55, - "close_price": 116.55, - "pnl": 80.85, - "day_change": -1, - "day_change_percentage": -0.8580008580008579 - }, - { - "tradingsymbol": "QUICKHEAL", - "exchange": "NSE", - "instrument_token": 3357697, - "isin": "INE306L01010", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 245, - "last_price": 318.15, - "close_price": 313.2, - "pnl": 73.14999999999998, - "day_change": 4.949999999999989, - "day_change_percentage": 1.5804597701149388 - }, - { - "tradingsymbol": "RAJRAYON-BE", - "exchange": "NSE", - "instrument_token": 3577601, - "isin": "INE533D01024", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 0.2, - "last_price": 0.35, - "close_price": 0.35, - "pnl": 0.14999999999999997, - "day_change": 0, - "day_change_percentage": 0 - }, - { - "tradingsymbol": "RELIANCE", - "exchange": "NSE", - "instrument_token": 738561, - "isin": "INE002A01018", - "product": "CNC", - "price": 0, - "quantity": 160, - "t1_quantity": 0, - "realised_quantity": 160, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 513.513924050633, - "last_price": 924.2, - "close_price": 923.75, - "pnl": 65709.77215189872, - "day_change": 0.4500000000000455, - "day_change_percentage": 0.04871447902571534 - }, - { - "tradingsymbol": "SAIL", - "exchange": "NSE", - "instrument_token": 758529, - "isin": "INE114A01011", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 61, - "last_price": 92.75, - "close_price": 91.1, - "pnl": 31.75, - "day_change": 1.6500000000000057, - "day_change_percentage": 1.8111964873765156 - }, - { - "tradingsymbol": "SBIN", - "exchange": "NSE", - "instrument_token": 779521, - "isin": "INE062A01020", - "product": "CNC", - "price": 0, - "quantity": 50, - "t1_quantity": 0, - "realised_quantity": 50, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 263.824, - "last_price": 308.4, - "close_price": 314.85, - "pnl": 2228.7999999999984, - "day_change": -6.4500000000000455, - "day_change_percentage": -2.0485945688423204 - }, - { - "tradingsymbol": "SKMEGGPROD", - "exchange": "NSE", - "instrument_token": 1211393, - "isin": "INE411D01015", - "product": "CNC", - "price": 0, - "quantity": 1, - "t1_quantity": 0, - "realised_quantity": 1, - "collateral_quantity": 0, - "collateral_type": "", - "average_price": 181.4, - "last_price": 96.95, - "close_price": 97.15, - "pnl": -84.45, - "day_change": -0.20000000000000284, - "day_change_percentage": -0.20586721564591132 - } - ] -} diff --git a/mock_responses/instruments_all.csv b/mock_responses/instruments_all.csv deleted file mode 100644 index 3efe3ed..0000000 --- a/mock_responses/instruments_all.csv +++ /dev/null @@ -1,100 +0,0 @@ -instrument_token,exchange_token,tradingsymbol,name,last_price,expiry,strike,tick_size,lot_size,instrument_type,segment,exchange -3813889,14898,CENTRALBK-BE,CENTRAL BANK OF INDIA,0.0,,0.0,0.05,1,EQ,NSE,NSE -4645121,18145,EMMBI-BL,EMMBI INDUSTRIES,0.0,,0.0,0.05,1,EQ,NSE,NSE -4531969,17703,MIDCAPIWIN-BL,ICICI PRU MIDCAP IWIN ETF,0.0,,0.0,0.01,1,EQ,NSE,NSE -5533953,21617,ABCAPITAL-BL,ADITYA BIRLA CAPITAL,0.0,,0.0,0.05,1,EQ,NSE,NSE -3861249,15083,ADANIPORTS,ADANI PORT & SEZ,0.0,,0.0,0.05,1,EQ,NSE,NSE -4419329,17263,ARMANFIN,ARMAN FIN SERV,0.0,,0.0,0.05,1,EQ,NSE,NSE -12073986,47164,BANKNIFTY18JAN23500CE,,2528.4,2018-01-25,23500.0,0.05,40,CE,NFO-OPT,NFO -13693186,53489,ADANIPORTS17DEC490PE,,80.65,2017-12-28,490.0,0.05,2500,PE,NFO-OPT,NFO -136483588,533139,FFTF16BGR,FORTIS FIXED TERM FUND - SERIE,0.0,,0.0,0.01,1,EQ,BSE,BSE -3713281,14505,BALAMINES-BE,BALAJI AMINES,0.0,,0.0,0.05,1,EQ,NSE,NSE -1373441,5365,BATAINDIA-BE,BATA INDIA DEP RS,0.0,,0.0,0.05,1,EQ,NSE,NSE -5421569,21178,CDSL-BE,CENTRAL DEPO SER (I),0.0,,0.0,0.05,1,EQ,NSE,NSE -5421313,21177,CDSL-BL,CENTRAL DEPO SER (I),0.0,,0.0,0.05,1,EQ,NSE,NSE -1374209,5368,CHENNPETRO-BE,CHENNAI PETRO CORP DE,0.0,,0.0,0.05,1,EQ,NSE,NSE -3419393,13357,GANGOTRI,GANGOTRI TEXTILES,0.0,,0.0,0.05,1,EQ,NSE,NSE -2703361,10560,NAVKARCORP-BL,NAVKAR CORPORATION,0.0,,0.0,0.05,1,EQ,NSE,NSE -5001473,19537,PDPL,PARENTERAL DRUGS,0.0,,0.0,0.05,1,EQ,NSE,NSE -12074242,47165,BANKNIFTY18JAN23500PE,,35.15,2018-01-25,23500.0,0.05,40,PE,NFO-OPT,NFO -12074498,47166,BANKNIFTY18JAN23600CE,,2435.55,2018-01-25,23600.0,0.05,40,CE,NFO-OPT,NFO -5420545,21174,CDSL,CENTRAL DEPO SER (I),0.0,,0.0,0.05,1,EQ,NSE,NSE -3370497,13166,CELEBRITY-BL,CELEBRITY FASHIONS,0.0,,0.0,0.05,1,EQ,NSE,NSE -12074754,47167,BANKNIFTY18JAN23600PE,,41.25,2018-01-25,23600.0,0.05,40,PE,NFO-OPT,NFO -3146497,12291,CENTEXT-BL,CENTURY EXTRUSIONS,0.0,,0.0,0.05,1,EQ,NSE,NSE -4550145,17774,GROBTEA-BE,THE GROB TEA COMPANY,0.0,,0.0,0.05,1,EQ,NSE,NSE -21227266,82919,INDIACEM17DEC220PE,,43.45,2017-12-28,220.0,0.05,3500,PE,NFO-OPT,NFO -6938881,27105,CHROMATIC-BE,CHROMATIC INDIA,0.0,,0.0,0.05,1,EQ,NSE,NSE -4578305,17884,DBCORP-BL,D.B.CORP,0.0,,0.0,0.05,1,EQ,NSE,NSE -3155457,12326,DCW-BL,DCW,0.0,,0.0,0.05,1,EQ,NSE,NSE -5101569,19928,HUDCO-N8,7.64% TAX FREETRI SR2B,0.0,,0.0,0.01,1,EQ,NSE,NSE -1707521,6670,INFARINDIA,INFAR (INDIA),0.0,,0.0,0.05,1,EQ,NSE,NSE -21227522,82920,INDIACEM17DEC225CE,,0.4,2017-12-28,225.0,0.05,3500,CE,NFO-OPT,NFO -21228290,82923,INDIACEM17DEC230PE,,53.1,2017-12-28,230.0,0.05,3500,PE,NFO-OPT,NFO -136484868,533144,COX&KINGS,COX & KINGS,0.0,,0.0,0.05,1,EQ,BSE,BSE -12072962,47160,BANKNIFTY18JAN23400CE,,2622.0,2018-01-25,23400.0,0.05,40,CE,NFO-OPT,NFO -12073474,47162,BANKNIFTY18JAN23400PE,,29.85,2018-01-25,23400.0,0.05,40,PE,NFO-OPT,NFO -12075010,47168,BANKNIFTY18JAN23700CE,,2343.55,2018-01-25,23700.0,0.05,40,CE,NFO-OPT,NFO -21227778,82921,INDIACEM17DEC225PE,,48.25,2017-12-28,225.0,0.05,3500,PE,NFO-OPT,NFO -21228034,82922,INDIACEM17DEC230CE,,0.25,2017-12-28,230.0,0.05,3500,CE,NFO-OPT,NFO -112655620,440061,828GOI27-ML,828GOI2027,0.0,,0.0,0.25,500000,EQ,BSE,BSE -136441604,532975,AISHWARYA,AISHWARYA TELECOM,0.0,,0.0,0.01,1,EQ,BSE,BSE -136483076,533137,DEN,DEN NETWORKS,0.0,,0.0,0.05,1,EQ,BSE,BSE -136483332,533138,ASTEC,ASTEC LIFESCIENCES,0.0,,0.0,0.05,1,EQ,BSE,BSE -136485380,533146,DLINKINDIA,D-LINK (INDIA),0.0,,0.0,0.05,1,EQ,BSE,BSE -1219329,4763,BANKBARODA-BE,BOB - DEPO SETT,0.0,,0.0,0.05,1,EQ,NSE,NSE -2928385,11439,BANKBEES,RELIANCE ETF BANK BEES,0.0,,0.0,0.01,1,EQ,NSE,NSE -3715841,14515,BANSWRAS-BE,BANSWARA SYNTEX,0.0,,0.0,0.05,1,EQ,NSE,NSE -3137281,12255,BERGEPAINT-BL,BERGER PAINTS (I),0.0,,0.0,0.05,1,EQ,NSE,NSE -3901185,15239,BIRLAMONEY,ADITYA BIRLA MONEY,0.0,,0.0,0.05,1,EQ,NSE,NSE -1789185,6989,CARRIERAIR-BE,CARRIER AIRCON DEPO,0.0,,0.0,0.05,1,EQ,NSE,NSE -3123713,12202,CASTEXTECH-BL,CASTEX TECHNOLOGIES,0.0,,0.0,0.05,1,EQ,NSE,NSE -136485892,533148,JSWENERGY,JSW ENERGY,0.0,,0.0,0.05,1,EQ,BSE,BSE -136486916,533152,MBLINFRA,MBL INFRASTRUCTURES,0.0,,0.0,0.05,1,EQ,BSE,BSE -136487172,533153,FDCLTDBBPH,FDC*,0.0,,0.0,0.05,1,EQ,BSE,BSE -138027524,539170,AXISHB23DD,AXIS MUTUAL FUND,0.0,,0.0,0.01,1,EQ,BSE,BSE -244332292,954423,RCL14JUL16B,RCL-NIFTY-14-1-19-PVT,0.0,,0.0,0.01,10,EQ,BSE,BSE -244352260,954501,8HDFCL18,HDFCL-8%-15-1-18-PVT,0.0,,0.0,0.01,1,EQ,BSE,BSE -244834820,956386,945SREI24,SREI-9.45%-26-5-24-PVT,0.0,,0.0,0.01,1,EQ,BSE,BSE -5534209,21618,ABCAPITAL-BE,ADITYA BIRLA CAPITAL,0.0,,0.0,0.05,1,EQ,NSE,NSE -3412225,13329,ERAINFRA-BL,ERA INFRA ENGINEERING,0.0,,0.0,0.05,1,EQ,NSE,NSE -1884161,7360,SETFNN50-BL,SBI-ETF NIFTY NEXT 50,0.0,,0.0,0.01,1,EQ,NSE,NSE -3028225,11829,SSWL,STEEL STRIPS WHEELS,0.0,,0.0,0.05,1,EQ,NSE,NSE -12075266,47169,BANKNIFTY18JAN23700PE,,48.15,2018-01-25,23700.0,0.05,40,PE,NFO-OPT,NFO -12525058,48926,BANKNIFTY17DEC22500PE,,8.0,2017-12-28,22500.0,0.05,40,PE,NFO-OPT,NFO -13842434,54072,BANKNIFTY17NOV23600PE,,3.0,2017-11-30,23600.0,0.05,40,PE,NFO-OPT,NFO -6128129,23938,ESSARPORTS-BE,ESSAR PORTS,0.0,,0.0,0.05,1,EQ,NSE,NSE -21231874,82937,INDIANB17DEC160PE,,0.05,2017-12-28,160.0,0.05,2000,PE,NFO-OPT,NFO -136492036,533172,IVZINGOLD,INVESCO INDIA GOLD EXCHANGE TR,0.0,,0.0,0.01,1,EQ,BSE,BSE -21232386,82939,INDIANB17DEC170PE,,0.05,2017-12-28,170.0,0.05,2000,PE,NFO-OPT,NFO -13845506,54084,BANKNIFTY17NOV23900PE,,2.25,2017-11-30,23900.0,0.05,40,PE,NFO-OPT,NFO -136504580,533221,AHLWEST,ASIAN HOTELS (WEST),0.0,,0.0,0.05,1,EQ,BSE,BSE -4671233,18247,DEEPIND-BL,DEEP INDUSTRIES,0.0,,0.0,0.05,1,EQ,NSE,NSE -6562305,25634,ESSARSHPNG,ESSAR SHIPPING,0.0,,0.0,0.05,1,EQ,NSE,NSE -136518404,533275,GAL,GYSCOAL ALLOYS,0.0,,0.0,0.01,1,EQ,BSE,BSE -3604481,14080,GODREJIND-BE,GODREJ INDUSTRIES,0.0,,0.0,0.05,1,EQ,NSE,NSE -4527361,17685,GPTINFRA,GPT INFRAPROJECTS,0.0,,0.0,0.05,1,EQ,NSE,NSE -13845762,54085,BANKNIFTY17NOV24000CE,,1776.2,2017-11-30,24000.0,0.05,40,CE,NFO-OPT,NFO -211713,827,DEEPAKFERT,DEEPAK FERTILIZERS & PETR,0.0,,0.0,0.05,1,EQ,NSE,NSE -1256193,4907,ENGINERSIN,ENGINEERS INDIA,0.0,,0.0,0.05,1,EQ,NSE,NSE -3449089,13473,GTNTEX,GTN TEXTILES,0.0,,0.0,0.05,1,EQ,NSE,NSE -5003009,19543,HDFCMFGETF,HDFC GOLD ETF,0.0,,0.0,0.05,1,EQ,NSE,NSE -2166273,8462,DUNCANSIND-BE,DUNCANS INDUSTRIES,0.0,,0.0,0.05,1,EQ,NSE,NSE -21230850,82933,INDIANB17DEC140PE,,0.05,2017-12-28,140.0,0.05,2000,PE,NFO-OPT,NFO -21231106,82934,INDIANB17DEC150CE,,262.45,2017-12-28,150.0,0.05,2000,CE,NFO-OPT,NFO -21231362,82935,INDIANB17DEC150PE,,0.05,2017-12-28,150.0,0.05,2000,PE,NFO-OPT,NFO -136518660,533276,BSLIMITED,BS,0.0,,0.0,0.01,1,EQ,BSE,BSE -3798529,14838,DECCANCE,DECCAN CEMENTS,0.0,,0.0,0.05,1,EQ,NSE,NSE -212481,830,DEEPAKNITR,DEEPAK NITRITE,0.0,,0.0,0.05,1,EQ,NSE,NSE -3542273,13837,DONEAR-BL,DONEAR IND.,0.0,,0.0,0.05,1,EQ,NSE,NSE -3862529,15088,EDL,EMPEE DISTI.,0.0,,0.0,0.05,1,EQ,NSE,NSE -2389505,9334,RAVALSUGAR-BE,RAVALGAONSUGAR FARM,0.0,,0.0,0.05,1,EQ,NSE,NSE -21231618,82936,INDIANB17DEC160CE,,252.5,2017-12-28,160.0,0.05,2000,CE,NFO-OPT,NFO -21232130,82938,INDIANB17DEC170CE,,242.55,2017-12-28,170.0,0.05,2000,CE,NFO-OPT,NFO -112653060,440051,830GOI42-ML,830GOI2042,0.0,,0.0,0.25,500000,EQ,BSE,BSE -7697153,30067,DUNCANSLTD-BE,DUNCANS INDUSTRIES,0.0,,0.0,0.05,1,EQ,NSE,NSE -4818433,18822,ENDURANCE,ENDURANCE TECHNO.,0.0,,0.0,0.05,1,EQ,NSE,NSE -2683649,10483,ENTEGRA,ENTEGRA,0.0,,0.0,0.05,1,EQ,NSE,NSE -3411713,13327,ERAINFRA,ERA INFRA ENGINEERING,0.0,,0.0,0.05,1,EQ,NSE,NSE -6563329,25638,ESSARSHPNG-BE,ESSAR SHIPPING,0.0,,0.0,0.05,1,EQ,NSE,NSE -4352001,17000,GISOLUTION-BE,GI ENGINEERING SOLNS,0.0,,0.0,0.05,1,EQ,NSE,NSE diff --git a/mock_responses/instruments_nse.csv b/mock_responses/instruments_nse.csv deleted file mode 100644 index 79ee2eb..0000000 --- a/mock_responses/instruments_nse.csv +++ /dev/null @@ -1,100 +0,0 @@ -instrument_token,exchange_token,tradingsymbol,name,last_price,expiry,strike,tick_size,lot_size,instrument_type,segment,exchange -3813889,14898,CENTRALBK-BE,CENTRAL BANK OF INDIA,0.0,,0.0,0.05,1,EQ,NSE,NSE -4645121,18145,EMMBI-BL,EMMBI INDUSTRIES,0.0,,0.0,0.05,1,EQ,NSE,NSE -4531969,17703,MIDCAPIWIN-BL,ICICI PRU MIDCAP IWIN ETF,0.0,,0.0,0.01,1,EQ,NSE,NSE -5533953,21617,ABCAPITAL-BL,ADITYA BIRLA CAPITAL,0.0,,0.0,0.05,1,EQ,NSE,NSE -3861249,15083,ADANIPORTS,ADANI PORT & SEZ,0.0,,0.0,0.05,1,EQ,NSE,NSE -4419329,17263,ARMANFIN,ARMAN FIN SERV,0.0,,0.0,0.05,1,EQ,NSE,NSE -3713281,14505,BALAMINES-BE,BALAJI AMINES,0.0,,0.0,0.05,1,EQ,NSE,NSE -1373441,5365,BATAINDIA-BE,BATA INDIA DEP RS,0.0,,0.0,0.05,1,EQ,NSE,NSE -5421569,21178,CDSL-BE,CENTRAL DEPO SER (I),0.0,,0.0,0.05,1,EQ,NSE,NSE -5421313,21177,CDSL-BL,CENTRAL DEPO SER (I),0.0,,0.0,0.05,1,EQ,NSE,NSE -1374209,5368,CHENNPETRO-BE,CHENNAI PETRO CORP DE,0.0,,0.0,0.05,1,EQ,NSE,NSE -3419393,13357,GANGOTRI,GANGOTRI TEXTILES,0.0,,0.0,0.05,1,EQ,NSE,NSE -2703361,10560,NAVKARCORP-BL,NAVKAR CORPORATION,0.0,,0.0,0.05,1,EQ,NSE,NSE -5001473,19537,PDPL,PARENTERAL DRUGS,0.0,,0.0,0.05,1,EQ,NSE,NSE -5420545,21174,CDSL,CENTRAL DEPO SER (I),0.0,,0.0,0.05,1,EQ,NSE,NSE -3370497,13166,CELEBRITY-BL,CELEBRITY FASHIONS,0.0,,0.0,0.05,1,EQ,NSE,NSE -3146497,12291,CENTEXT-BL,CENTURY EXTRUSIONS,0.0,,0.0,0.05,1,EQ,NSE,NSE -4550145,17774,GROBTEA-BE,THE GROB TEA COMPANY,0.0,,0.0,0.05,1,EQ,NSE,NSE -6938881,27105,CHROMATIC-BE,CHROMATIC INDIA,0.0,,0.0,0.05,1,EQ,NSE,NSE -4578305,17884,DBCORP-BL,D.B.CORP,0.0,,0.0,0.05,1,EQ,NSE,NSE -3155457,12326,DCW-BL,DCW,0.0,,0.0,0.05,1,EQ,NSE,NSE -5101569,19928,HUDCO-N8,7.64% TAX FREETRI SR2B,0.0,,0.0,0.01,1,EQ,NSE,NSE -1707521,6670,INFARINDIA,INFAR (INDIA),0.0,,0.0,0.05,1,EQ,NSE,NSE -1219329,4763,BANKBARODA-BE,BOB - DEPO SETT,0.0,,0.0,0.05,1,EQ,NSE,NSE -2928385,11439,BANKBEES,RELIANCE ETF BANK BEES,0.0,,0.0,0.01,1,EQ,NSE,NSE -3715841,14515,BANSWRAS-BE,BANSWARA SYNTEX,0.0,,0.0,0.05,1,EQ,NSE,NSE -3137281,12255,BERGEPAINT-BL,BERGER PAINTS (I),0.0,,0.0,0.05,1,EQ,NSE,NSE -3901185,15239,BIRLAMONEY,ADITYA BIRLA MONEY,0.0,,0.0,0.05,1,EQ,NSE,NSE -1789185,6989,CARRIERAIR-BE,CARRIER AIRCON DEPO,0.0,,0.0,0.05,1,EQ,NSE,NSE -3123713,12202,CASTEXTECH-BL,CASTEX TECHNOLOGIES,0.0,,0.0,0.05,1,EQ,NSE,NSE -5534209,21618,ABCAPITAL-BE,ADITYA BIRLA CAPITAL,0.0,,0.0,0.05,1,EQ,NSE,NSE -3412225,13329,ERAINFRA-BL,ERA INFRA ENGINEERING,0.0,,0.0,0.05,1,EQ,NSE,NSE -1884161,7360,SETFNN50-BL,SBI-ETF NIFTY NEXT 50,0.0,,0.0,0.01,1,EQ,NSE,NSE -3028225,11829,SSWL,STEEL STRIPS WHEELS,0.0,,0.0,0.05,1,EQ,NSE,NSE -6128129,23938,ESSARPORTS-BE,ESSAR PORTS,0.0,,0.0,0.05,1,EQ,NSE,NSE -4671233,18247,DEEPIND-BL,DEEP INDUSTRIES,0.0,,0.0,0.05,1,EQ,NSE,NSE -6562305,25634,ESSARSHPNG,ESSAR SHIPPING,0.0,,0.0,0.05,1,EQ,NSE,NSE -3604481,14080,GODREJIND-BE,GODREJ INDUSTRIES,0.0,,0.0,0.05,1,EQ,NSE,NSE -4527361,17685,GPTINFRA,GPT INFRAPROJECTS,0.0,,0.0,0.05,1,EQ,NSE,NSE -211713,827,DEEPAKFERT,DEEPAK FERTILIZERS & PETR,0.0,,0.0,0.05,1,EQ,NSE,NSE -1256193,4907,ENGINERSIN,ENGINEERS INDIA,0.0,,0.0,0.05,1,EQ,NSE,NSE -3449089,13473,GTNTEX,GTN TEXTILES,0.0,,0.0,0.05,1,EQ,NSE,NSE -5003009,19543,HDFCMFGETF,HDFC GOLD ETF,0.0,,0.0,0.05,1,EQ,NSE,NSE -2166273,8462,DUNCANSIND-BE,DUNCANS INDUSTRIES,0.0,,0.0,0.05,1,EQ,NSE,NSE -3798529,14838,DECCANCE,DECCAN CEMENTS,0.0,,0.0,0.05,1,EQ,NSE,NSE -212481,830,DEEPAKNITR,DEEPAK NITRITE,0.0,,0.0,0.05,1,EQ,NSE,NSE -3542273,13837,DONEAR-BL,DONEAR IND.,0.0,,0.0,0.05,1,EQ,NSE,NSE -3862529,15088,EDL,EMPEE DISTI.,0.0,,0.0,0.05,1,EQ,NSE,NSE -2389505,9334,RAVALSUGAR-BE,RAVALGAONSUGAR FARM,0.0,,0.0,0.05,1,EQ,NSE,NSE -7697153,30067,DUNCANSLTD-BE,DUNCANS INDUSTRIES,0.0,,0.0,0.05,1,EQ,NSE,NSE -4818433,18822,ENDURANCE,ENDURANCE TECHNO.,0.0,,0.0,0.05,1,EQ,NSE,NSE -2683649,10483,ENTEGRA,ENTEGRA,0.0,,0.0,0.05,1,EQ,NSE,NSE -3411713,13327,ERAINFRA,ERA INFRA ENGINEERING,0.0,,0.0,0.05,1,EQ,NSE,NSE -6563329,25638,ESSARSHPNG-BE,ESSAR SHIPPING,0.0,,0.0,0.05,1,EQ,NSE,NSE -4352001,17000,GISOLUTION-BE,GI ENGINEERING SOLNS,0.0,,0.0,0.05,1,EQ,NSE,NSE -1934849,7558,GONTERPEIP-BE,GONTERMANN PEIPERS DEPO,0.0,,0.0,0.05,1,EQ,NSE,NSE -2185985,8539,GTNIND-BE,GTN INDUSTRIES,0.0,,0.0,0.05,1,EQ,NSE,NSE -3179009,12418,GUFICBIO-BL,GUFIC BIOSCIENCES,0.0,,0.0,0.05,1,EQ,NSE,NSE -4915969,19203,SGBNOV24-GB,2.50% GOLDBONDS2024 TR-VI,0.0,,0.0,0.01,1,EQ,NSE,NSE -5401857,21101,STARCEMENT-BE,STAR CEMENT,0.0,,0.0,0.05,1,EQ,NSE,NSE -5533185,21614,ABCAPITAL,ADITYA BIRLA CAPITAL,0.0,,0.0,0.05,1,EQ,NSE,NSE -3372545,13174,BALKRISIND-BL,BALKRISHNA IND.,0.0,,0.0,0.05,1,EQ,NSE,NSE -2160129,8438,DATAPROINF-BE,DATAPROINFO - ROLL SETT,0.0,,0.0,0.05,1,EQ,NSE,NSE -7590401,29650,HUDCO-N7,BOND 7.19% PA TAX FREE S2,0.0,,0.0,0.01,1,EQ,NSE,NSE -3914497,15291,HERCULES-BL,HERCULES HOI.,0.0,,0.0,0.05,1,EQ,NSE,NSE -4365313,17052,HARITASEAT,HARITA SEATING SYS.,0.0,,0.0,0.05,1,EQ,NSE,NSE -3183361,12435,HERITGFOOD-BL,HERITAGE FOODS,0.0,,0.0,0.05,1,EQ,NSE,NSE -1806849,7058,HESTERBIO-BL,HESTER BIOSCIENCES,0.0,,0.0,0.05,1,EQ,NSE,NSE -4895233,19122,HIGHGROUND-BE,HIGH GROUND ENTP,0.0,,0.0,0.05,1,EQ,NSE,NSE -3508225,13704,HINDZINC-BL,HINDUSTAN ZINC,0.0,,0.0,0.05,1,EQ,NSE,NSE -1804289,7048,HESTERBIO,HESTER BIOSCIENCES,0.0,,0.0,0.05,1,EQ,NSE,NSE -4894977,19121,HIGHGROUND-BL,HIGH GROUND ENTP,0.0,,0.0,0.05,1,EQ,NSE,NSE -3188225,12454,HIL-BL,HIL,0.0,,0.0,0.05,1,EQ,NSE,NSE -3745537,14631,HILTON-BE,HILTON METAL FORGING,0.0,,0.0,0.05,1,EQ,NSE,NSE -4593409,17943,HINDCOPPER-BE,HINDUSTAN COPPER,0.0,,0.0,0.05,1,EQ,NSE,NSE -4364801,17050,HINDNATGLS-BE,HIND NATL GLASS & IND,0.0,,0.0,0.05,1,EQ,NSE,NSE -4767233,18622,IBULHSGFIN-N7,SEC RED NCD SR. IV,0.0,,0.0,0.01,1,EQ,NSE,NSE -7589889,29648,HUDCO-N6,BOND 7.03% PA TAX FREE S1,0.0,,0.0,0.01,1,EQ,NSE,NSE -5110273,19962,HUDCO-NA,8.14% TAX FREETRI SR1A,0.0,,0.0,0.01,1,EQ,NSE,NSE -3790593,14807,HDIL-BE,HOUSING DEV & INFRA,0.0,,0.0,0.05,1,EQ,NSE,NSE -3914753,15292,HERCULES-BE,HERCULES HOI.,0.0,,0.0,0.05,1,EQ,NSE,NSE -4774913,18652,ICICIPRULI,ICICI PRU LIFE INS CO,0.0,,0.0,0.05,1,EQ,NSE,NSE -3607041,14090,IGPL-BE,I G PETROCHEMICALS,0.0,,0.0,0.05,1,EQ,NSE,NSE -3606017,14086,IGPL,I G PETROCHEMICALS,0.0,,0.0,0.05,1,EQ,NSE,NSE -3718401,14525,ICRA-BL,ICRA,0.0,,0.0,0.05,1,EQ,NSE,NSE -3489793,13632,ICSA,ICSA (INDIA),0.0,,0.0,0.05,1,EQ,NSE,NSE -3189761,12460,IDBI-BL,IDBI BANK,0.0,,0.0,0.05,1,EQ,NSE,NSE -2795521,10920,IDFCBANK-NE,BOND 0% 2022 TR-3 SR-II,0.0,,0.0,0.01,1,EQ,NSE,NSE -2883073,11262,IGL,INDRAPRASTHA GAS,0.0,,0.0,0.05,1,EQ,NSE,NSE -5357825,20929,JALAN-SM,JALAN TRANSOLU. INDIA,0.0,,0.0,0.05,1,EQ,NSE,NSE -1388801,5425,JBFIND-BE,JBF INDUS -DEP-LS ML,0.0,,0.0,0.05,1,EQ,NSE,NSE -3083265,12044,JCHAC-BL,JOHNSON CONTROLS HITACHI,0.0,,0.0,0.05,1,EQ,NSE,NSE -3857153,15067,JCTEL-BL,JCT ELE.,0.0,,0.0,0.05,1,EQ,NSE,NSE -2997505,11709,JETAIRWAYS,JET AIRWAYS (INDIA),0.0,,0.0,0.05,1,EQ,NSE,NSE -3513089,13723,JHS-BE,JHS SVEND. LAB.,0.0,,0.0,0.05,1,EQ,NSE,NSE -3006209,11743,JINDALPHOT,JINDAL PHOTO,0.0,,0.0,0.05,1,EQ,NSE,NSE -4400641,17190,SHRIPISTON-BE,SHRIRAM PIST. & RING,0.0,,0.0,0.05,1,EQ,NSE,NSE -2122497,8291,SHRIYAMSEC-BE,SHRIYAM SEC & FIN,0.0,,0.0,0.05,1,EQ,NSE,NSE -510209,1993,IRFC-ND,BOND 8.44% PA TF TII-SIB,0.0,,0.0,0.01,1,EQ,NSE,NSE diff --git a/mock_responses/ltp.json b/mock_responses/ltp.json deleted file mode 100644 index 2dbc7b6..0000000 --- a/mock_responses/ltp.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "status": "success", - "data": { - "NSE:INFY": { - "instrument_token": 408065, - "last_price": 1074.35 - } - } -} diff --git a/mock_responses/margins.json b/mock_responses/margins.json deleted file mode 100644 index e2b9fa8..0000000 --- a/mock_responses/margins.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "status": "success", - "data": { - "equity": { - "enabled": true, - "net": 15481.524, - "available": { - "adhoc_margin": 0, - "cash": 9929.024, - "collateral": 5554.5, - "intraday_payin": 0 - }, - "utilised": { - "debits": 2, - "exposure": 0, - "m2m_realised": -2, - "m2m_unrealised": 0, - "option_premium": 0, - "payout": 0, - "span": 0, - "holding_sales": 0, - "turnover": 0 - } - }, - "commodity": { - "enabled": true, - "net": 29675.93, - "available": { - "adhoc_margin": 0, - "cash": 29249.93, - "collateral": 0, - "intraday_payin": 0 - }, - "utilised": { - "debits": -426, - "exposure": 0, - "m2m_realised": 426, - "m2m_unrealised": 0, - "option_premium": 0, - "payout": 0, - "span": 0, - "holding_sales": 0, - "turnover": 0 - } - } - } -} diff --git a/mock_responses/margins_equity.json b/mock_responses/margins_equity.json deleted file mode 100644 index 50c232b..0000000 --- a/mock_responses/margins_equity.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "status": "success", - "data": { - "enabled": true, - "net": 15481.524, - "available": { - "adhoc_margin": 0, - "cash": 9929.024, - "collateral": 5554.5, - "intraday_payin": 0 - }, - "utilised": { - "debits": 2, - "exposure": 0, - "m2m_realised": -2, - "m2m_unrealised": 0, - "option_premium": 0, - "payout": 0, - "span": 0, - "holding_sales": 0, - "turnover": 0 - } - } -} diff --git a/mock_responses/mf_holdings.json b/mock_responses/mf_holdings.json deleted file mode 100644 index 6ba40f0..0000000 --- a/mock_responses/mf_holdings.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "status": "success", - "data": [ - { - "folio": "123123/123", - "fund": "Kotak Select Focus Fund - Direct Plan", - "tradingsymbol": "INF174K01LS2", - "average_price": 30.729, - "last_price": 33.014, - "pnl": 594.769, - "last_price_date": "2016-11-11", - "quantity": 260.337 - }, - { - "folio": "385080203", - "fund": "DSP BlackRock Money Manager Fund", - "tradingsymbol": "INF740K01QQ3", - "average_price": 2146.131, - "last_price": 2277.0708, - "pnl": 61.018, - "quantity": 0.466 - }, - { - "folio": "1052046771", - "fund": "HDFC TaxSaver - Regular Plan", - "tradingsymbol": "INF179K01BB8", - "average_price": 345.849, - "last_price": 559.081, - "pnl": 61963.074, - "quantity": 290.59 - }, - { - "folio": "91022348426", - "fund": "Axis Long Term Equity Fund", - "tradingsymbol": "INF846K01131", - "average_price": 28.779, - "last_price": 41.3876, - "pnl": 44467.717, - "quantity": 3526.834 - }, - { - "folio": "488155267386", - "fund": "Reliance Money Manager Fund", - "tradingsymbol": "INF204K01EY0", - "average_price": 1002.948, - "last_price": 1007.5645, - "pnl": 2.304, - "quantity": 0.499 - } - ] -} diff --git a/mock_responses/mf_instruments.csv b/mock_responses/mf_instruments.csv deleted file mode 100644 index ec9e6fc..0000000 --- a/mock_responses/mf_instruments.csv +++ /dev/null @@ -1,100 +0,0 @@ -tradingsymbol,amc,name,purchase_allowed,redemption_allowed,minimum_purchase_amount,purchase_amount_multiplier,minimum_additional_purchase_amount,minimum_redemption_quantity,redemption_quantity_multiplier,dividend_type,scheme_type,plan,settlement_type,last_price,last_price_date -INF209K01157,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Advantage Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,regular,T3,106.8,2017-11-23 -INF209K01165,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Advantage Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,regular,T3,436.72,2017-11-23 -INF209K01VG0,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Advantage Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,direct,T3,134.2,2017-11-23 -INF209K01VH8,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Advantage Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,direct,T3,453.46,2017-11-23 -INF209K01BS7,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Balanced 95 Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,regular,T3,153.26,2017-11-23 -INF209K01BT5,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Balanced 95 Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,regular,T3,758.0,2017-11-23 -INF209K01ZC0,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Balanced 95 Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,direct,T3,796.56,2017-11-23 -INF209KA1LH3,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Balanced 95 Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,direct,T3,219.49,2017-11-23 -INF084M01AB8,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Balanced Advantage Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,balanced,regular,T3,50.46,2017-11-23 -INF084M01AC6,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Balanced Advantage Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,balanced,regular,T3,22.07,2017-11-23 -INF084M01DJ5,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Balanced Advantage Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,balanced,direct,T3,52.43,2017-11-23 -INF084M01DK3,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Balanced Advantage Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,balanced,direct,T3,23.0,2017-11-23 -INF209K010W9,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Banking And Financial Services Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,regular,T3,19.62,2017-11-23 -INF209K011W7,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Banking And Financial Services Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,regular,T3,27.94,2017-11-23 -INF209K013W3,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Banking And Financial Services Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,direct,T3,24.55,2017-11-23 -INF209K014W1,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Banking And Financial Services Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,direct,T3,28.99,2017-11-23 -INF209K01BE7,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Banking and PSU Debt Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,debt,regular,T1,9.9875,2017-11-23 -INF209K01BF4,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Banking and PSU Debt Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,regular,T1,49.8034,2017-11-23 -INF209K01YJ8,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Banking and PSU Debt Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,debt,direct,T1,12.7089,2017-11-23 -INF209K01YK6,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Banking and PSU Debt Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,debt,direct,T1,10.4884,2017-11-23 -INF209K01YL4,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Banking and PSU Debt Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,direct,T1,51.1321,2017-11-23 -INF209K01LQ0,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Cash Manager,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,regular,T1,408.9951,2017-11-23 -INF209K01XU7,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Cash Manager - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,direct,T1,425.8148,2017-11-23 -INF209K01RU9,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Cash Plus,1,1,5000.0,1.0,1000.0,0.001,0.001,growth,liquid,regular,T1,271.5949,2017-11-23 -INF209K01VA3,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Cash Plus - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,liquid,direct,T1,272.5712,2017-11-23 -INF209K01VD7,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Cash Plus - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,liquid,direct,T1,147.9867,2017-11-23 -INF209K01199,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Commodity Equities Fund - Global Agri Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,regular,T6,16.4009,2017-11-23 -INF209K01207,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Commodity Equities Fund - Global Agri Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,regular,T6,23.1229,2017-11-23 -INF209K01AH2,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Constant Maturity 10 Year Gilt Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,regular,T1,50.6235,2017-11-23 -INF209K01AI0,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Constant Maturity 10 Year Gilt Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,debt,regular,T1,12.0695,2017-11-23 -INF209K01XS1,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Constant Maturity 10 Year Gilt Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,direct,T1,50.998,2017-11-23 -INF209KA1K47,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Corporate Bond Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,regular,T1,12.6521,2017-11-23 -INF209KA1K54,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Corporate Bond Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,debt,regular,T1,11.4171,2017-11-23 -INF209KA1K88,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Corporate Bond Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,direct,T1,12.9524,2017-11-23 -INF209KA1K96,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Corporate Bond Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,debt,direct,T1,11.708,2017-11-23 -INF209K01397,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Dividend Yield Plus,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,regular,T3,17.25,2017-11-23 -INF209K01405,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Dividend Yield Plus,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,regular,T3,178.4,2017-11-23 -INF209K01Q55,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Dividend Yield Plus - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,direct,T3,26.66,2017-11-23 -INF209K01WA1,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Dividend Yield Plus - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,direct,T3,185.33,2017-11-23 -INF209K01793,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Dynamic Bond Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,regular,T1,30.0556,2017-11-23 -INF209K01801,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Dynamic Bond Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,debt,regular,T1,10.9249,2017-11-23 -INF209K01819,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Dynamic Bond Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,debt,regular,T1,10.1744,2017-11-23 -INF209KA1TV7,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Dynamic Bond Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,regular,T1,12.1802,2017-11-23 -INF209K01N82,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Dynamic Bond Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,direct,T1,30.8721,2017-11-23 -INF209K01R62,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Dynamic Bond Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,debt,direct,T1,11.1149,2017-11-23 -INF209K01R88,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Dynamic Bond Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,debt,direct,T1,10.4108,2017-11-23 -INF209KA1TX3,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Dynamic Bond Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,debt,direct,T1,12.4196,2017-11-23 -INF209K01256,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Enhanced Arbitrage Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,regular,T3,10.8783,2017-11-23 -INF209K01264,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Enhanced Arbitrage Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,regular,T3,17.5067,2017-11-23 -INF209K01P80,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Enhanced Arbitrage Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,direct,T3,11.0934,2017-11-23 -INF209K01VP1,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Enhanced Arbitrage Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,direct,T3,17.9567,2017-11-23 -INF209K01AJ8,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Equity Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,regular,T3,710.7,2017-11-23 -INF209K01AQ3,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Equity Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,regular,T3,104.58,2017-11-23 -INF209K01XX1,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Equity Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,direct,T3,742.17,2017-11-23 -INF209KA1TS3,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Equity Savings Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,regular,T3,13.1,2017-11-23 -INF209KA1TT1,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Equity Savings Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,regular,T3,11.64,2017-11-23 -INF209KA1TP9,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Equity Savings Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,direct,T3,13.54,2017-11-23 -INF209KA1TQ7,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Equity Savings Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,direct,T3,12.27,2017-11-23 -INF084M01101,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Financial Planning FoF Aggressive Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,fof,regular,T4,21.9919,2017-11-23 -INF084M01119,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Financial Planning FoF Aggressive Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,fof,regular,T4,20.13,2017-11-23 -INF084M01044,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Financial Planning FoF Conservative Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,fof,regular,T4,17.3032,2017-11-23 -INF084M01051,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Financial Planning FoF Conservative Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,fof,regular,T4,15.744,2017-11-23 -INF084M01077,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Financial Planning FoF Prudent Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,fof,regular,T4,19.0899,2017-11-23 -INF084M01085,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Financial Planning FoF Prudent Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,fof,regular,T4,17.1217,2017-11-23 -INF209K01MG9,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Floating Rate Fund - Long Term Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,regular,T1,208.1037,2017-11-23 -INF209K01UX7,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Floating Rate Fund - Long Term Plan - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,direct,T1,210.3858,2017-11-23 -INF209K01RV7,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Floating Rate Fund - Short Term Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,liquid,regular,T1,225.569,2017-11-23 -INF209K01UU3,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Floating Rate Fund - Short Term Plan - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,liquid,direct,T1,226.363,2017-11-23 -INF209K01BO6,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Frontline Equity Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,regular,T3,27.34,2017-11-23 -INF209K01BR9,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Frontline Equity Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,regular,T3,217.34,2017-11-23 -INF209K01YX9,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Frontline Equity Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,direct,T3,50.73,2017-11-23 -INF209K01YY7,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Frontline Equity Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,direct,T3,227.39,2017-11-23 -INF209K01AC3,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Gilt Plus - PF Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,regular,T1,48.6101,2017-11-23 -INF209K01AD1,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Gilt Plus - PF Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,regular,T1,48.6101,2017-11-23 -INF209K01AF6,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Gilt Plus - PF Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,debt,regular,T1,10.1758,2017-11-23 -INF209K01XP7,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Gilt Plus - PF Plan - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,direct,T1,49.8019,2017-11-23 -INF209K01XQ5,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Gilt Plus - PF Plan - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,direct,T1,49.8019,2017-11-23 -INF209KA1LC4,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Gilt Plus - PF Plan - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,debt,direct,T1,10.3855,2017-11-23 -INF209K01PF4,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Gold Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,fof,regular,T3,9.5415,2017-11-23 -INF209K01PG2,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Gold Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,fof,regular,T3,9.5402,2017-11-23 -INF209K01YT7,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Gold Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,fof,direct,T3,9.6571,2017-11-23 -INF209K01YU5,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Gold Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,fof,direct,T3,9.6609,2017-11-23 -INF209K01R13,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Income Plus - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,debt,direct,T1,13.3298,2017-11-23 -INF209K01WY1,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Income Plus - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,direct,T1,78.7456,2017-11-23 -INF209KA1WL2,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Income Plus - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,debt,direct,T1,11.621,2017-11-23 -INF209K01579,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Income Plus - Regular Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,debt,regular,T1,76.0586,2017-11-23 -INF209K01587,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Income Plus - Regular Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,debt,regular,T1,12.7941,2017-11-23 -INF209K01LA4,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Index Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,regular,T3,13.3014,2017-11-23 -INF209K01LB2,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Index Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,regular,T3,101.4926,2017-11-23 -INF209K01VX5,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Index Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,direct,T3,13.4709,2017-11-23 -INF209K01VY3,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life Index Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,direct,T3,101.6988,2017-11-23 -INF209K01439,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life India GenNext Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,regular,T3,25.71,2017-11-23 -INF209K01447,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life India GenNext Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,regular,T3,78.3,2017-11-23 -INF209K01Q63,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life India GenNext Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,direct,T3,29.23,2017-11-23 -INF209K01WC7,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life India GenNext Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,direct,T3,82.08,2017-11-23 -INF209K01280,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life India Opportunities Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,regular,T3,30.52,2017-11-23 -INF209K01298,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life India Opportunities Fund,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,regular,T3,146.95,2017-11-23 -INF209K01P98,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life India Opportunities Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,payout,equity,direct,T3,42.01,2017-11-23 -INF209K01VR7,BirlaSunLifeMutualFund_MF,Aditya Birla Sun Life India Opportunities Fund - Direct Plan,1,1,1000.0,1.0,1000.0,0.001,0.001,growth,equity,direct,T3,151.59,2017-11-23 diff --git a/mock_responses/mf_order_response.json b/mock_responses/mf_order_response.json deleted file mode 100644 index feb3d6a..0000000 --- a/mock_responses/mf_order_response.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "status": "success", - "data": { - "order_id": "123457", - "sip_id": "123457" - } - } \ No newline at end of file diff --git a/mock_responses/mf_orders.json b/mock_responses/mf_orders.json deleted file mode 100644 index 6062c1b..0000000 --- a/mock_responses/mf_orders.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "status": "success", - "data": [ - { - "order_id": "867688079445476", - "exchange_order_id": "", - "tradingsymbol": "INF174K01LS2", - "status": "CANCELLED", - "status_message": "", - "folio": "", - "fund": "Kotak Select Focus Fund - Direct Plan", - "order_timestamp": "2017-12-28 11:44", - "exchange_timestamp": "", - "settlement_id": "", - "transaction_type": "BUY", - "variety": "regular", - "purchase_type": "FRESH", - "quantity": 0, - "amount": 5000, - "last_price": 35.135, - "average_price": 0, - "placed_by": "DA0017", - "tag": "" - }, - { - "order_id": "396109826218232", - "exchange_order_id": "", - "tradingsymbol": "INF174K01LS2", - "status": "CANCELLED", - "status_message": "", - "folio": "", - "fund": "Kotak Select Focus Fund - Direct Plan", - "order_timestamp": "2017-12-28 11:40", - "exchange_timestamp": "", - "settlement_id": "", - "transaction_type": "BUY", - "variety": "regular", - "purchase_type": "FRESH", - "quantity": 0, - "amount": 5000, - "last_price": 35.135, - "average_price": 0, - "placed_by": "DA0017", - "tag": "" - } - ] -} diff --git a/mock_responses/mf_orders_info.json b/mock_responses/mf_orders_info.json deleted file mode 100644 index bc77860..0000000 --- a/mock_responses/mf_orders_info.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "status": "success", - "data": { - "order_id": "460687158435713", - "exchange_order_id": "", - "tradingsymbol": "INF174K01LS2", - "status": "CANCELLED", - "status_message": "", - "folio": "", - "fund": "Kotak Select Focus Fund - Direct Plan", - "order_timestamp": "2017-12-29 11:44", - "exchange_timestamp": "", - "settlement_id": "", - "transaction_type": "BUY", - "variety": "regular", - "purchase_type": "FRESH", - "quantity": 0, - "amount": 5000, - "last_price": 35.135, - "average_price": 0, - "placed_by": "DA0017", - "tag": "" - } -} diff --git a/mock_responses/mf_sip_info.json b/mock_responses/mf_sip_info.json deleted file mode 100644 index 196e5c6..0000000 --- a/mock_responses/mf_sip_info.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "status": "success", - "data": { - "sip_id": "1234", - "tradingsymbol": "INF090I01239", - "fund": "Franklin India Prima Plus", - "dividend_type": "growth", - "transaction_type": "BUY", - "status": "ACTIVE", - "created": "2016-01-01 13:00:00", - "frequency": "monthly", - "instalment_amount": 1000, - "instalments": -1, - "last_instalment": "2017-07-05 07:33:32", - "pending_instalments": -1, - "instalment_date": 5, - "tag": "" - } -} diff --git a/mock_responses/mf_sips.json b/mock_responses/mf_sips.json deleted file mode 100644 index 3f9ec95..0000000 --- a/mock_responses/mf_sips.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "status": "success", - "data": [{ - "sip_id": "1234", - "tradingsymbol": "INF090I01239", - "fund": "Franklin India Prima Plus", - "dividend_type": "growth", - "transaction_type": "BUY", - "status": "ACTIVE", - "created": "2016-01-01 13:00:00", - "frequency": "monthly", - "instalment_amount": 1000, - "instalments": -1, - "last_instalment": "2017-07-05 07:33:32", - "pending_instalments": -1, - "instalment_date": 5, - "tag": "" - }] -} diff --git a/mock_responses/ohlc.json b/mock_responses/ohlc.json deleted file mode 100644 index b4401f8..0000000 --- a/mock_responses/ohlc.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "status": "success", - "data": { - "NSE:INFY": { - "instrument_token": 408065, - "last_price": 1075, - "ohlc": { - "open": 1085.8, - "high": 1085.9, - "low": 1070.9, - "close": 1075.8 - } - } - } -} diff --git a/mock_responses/order_info.json b/mock_responses/order_info.json deleted file mode 100644 index 05d9073..0000000 --- a/mock_responses/order_info.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "status": "success", - "data": [ - { - "average_price": 0, - "cancelled_quantity": 0, - "disclosed_quantity": 0, - "exchange": "NSE", - "exchange_order_id": null, - "exchange_timestamp": null, - "filled_quantity": 0, - "instrument_token": 1, - "order_id": "171229000724687", - "order_timestamp": "2017-12-29 11:06:52", - "order_type": "LIMIT", - "parent_order_id": null, - "pending_quantity": 1, - "placed_by": "DA0017", - "price": 300, - "product": "CNC", - "quantity": 1, - "status": "PUT ORDER REQ RECEIVED", - "status_message": null, - "tag": null, - "tradingsymbol": "SBIN", - "transaction_type": "BUY", - "trigger_price": 0, - "validity": "DAY", - "variety": "regular" - }, - { - "average_price": 0, - "cancelled_quantity": 0, - "disclosed_quantity": 0, - "exchange": "NSE", - "exchange_order_id": null, - "exchange_timestamp": null, - "filled_quantity": 0, - "instrument_token": 779521, - "order_id": "171229000724687", - "order_timestamp": "2017-12-29 11:06:52", - "order_type": "LIMIT", - "parent_order_id": null, - "pending_quantity": 1, - "placed_by": "DA0017", - "price": 300, - "product": "CNC", - "quantity": 1, - "status": "VALIDATION PENDING", - "status_message": null, - "tag": null, - "tradingsymbol": "SBIN", - "transaction_type": "BUY", - "trigger_price": 0, - "validity": "DAY", - "variety": "regular" - }, - { - "average_price": 0, - "cancelled_quantity": 0, - "disclosed_quantity": 0, - "exchange": "NSE", - "exchange_order_id": null, - "exchange_timestamp": null, - "filled_quantity": 0, - "instrument_token": 779521, - "order_id": "171229000724687", - "order_timestamp": "2017-12-29 11:06:52", - "order_type": "LIMIT", - "parent_order_id": null, - "pending_quantity": 1, - "placed_by": "DA0017", - "price": 300, - "product": "CNC", - "quantity": 1, - "status": "OPEN PENDING", - "status_message": null, - "tag": null, - "tradingsymbol": "SBIN", - "transaction_type": "BUY", - "trigger_price": 0, - "validity": "DAY", - "variety": "regular" - }, - { - "average_price": 0, - "cancelled_quantity": 0, - "disclosed_quantity": 0, - "exchange": "NSE", - "exchange_order_id": "1300000001887410", - "exchange_timestamp": "2017-12-29 11:06:52", - "filled_quantity": 0, - "instrument_token": 779521, - "order_id": "171229000724687", - "order_timestamp": "2017-12-29 11:06:52", - "order_type": "LIMIT", - "parent_order_id": null, - "pending_quantity": 1, - "placed_by": "DA0017", - "price": 300, - "product": "CNC", - "quantity": 1, - "status": "OPEN", - "status_message": null, - "tag": null, - "tradingsymbol": "SBIN", - "transaction_type": "BUY", - "trigger_price": 0, - "validity": "DAY", - "variety": "regular" - }, - { - "average_price": 0, - "cancelled_quantity": 0, - "disclosed_quantity": 0, - "exchange": "NSE", - "exchange_order_id": "1300000001887410", - "exchange_timestamp": "2017-12-29 11:06:52", - "filled_quantity": 0, - "instrument_token": 779521, - "order_id": "171229000724687", - "order_timestamp": "2017-12-29 11:08:16", - "order_type": "LIMIT", - "parent_order_id": null, - "pending_quantity": 1, - "placed_by": "DA0017", - "price": 300, - "product": "CNC", - "quantity": 1, - "status": "MODIFY VALIDATION PENDING", - "status_message": null, - "tag": null, - "tradingsymbol": "SBIN", - "transaction_type": "BUY", - "trigger_price": 0, - "validity": "DAY", - "variety": "regular" - }, - { - "average_price": 0, - "cancelled_quantity": 0, - "disclosed_quantity": 0, - "exchange": "NSE", - "exchange_order_id": "1300000001887410", - "exchange_timestamp": "2017-12-29 11:06:52", - "filled_quantity": 0, - "instrument_token": 779521, - "order_id": "171229000724687", - "order_timestamp": "2017-12-29 11:08:16", - "order_type": "LIMIT", - "parent_order_id": null, - "pending_quantity": 1, - "placed_by": "DA0017", - "price": 300, - "product": "CNC", - "quantity": 1, - "status": "MODIFY PENDING", - "status_message": null, - "tag": null, - "tradingsymbol": "SBIN", - "transaction_type": "BUY", - "trigger_price": 0, - "validity": "DAY", - "variety": "regular" - }, - { - "average_price": 0, - "cancelled_quantity": 0, - "disclosed_quantity": 0, - "exchange": "NSE", - "exchange_order_id": "1300000001887410", - "exchange_timestamp": "2017-12-29 11:08:16", - "filled_quantity": 0, - "instrument_token": 779521, - "order_id": "171229000724687", - "order_timestamp": "2017-12-29 11:08:16", - "order_type": "LIMIT", - "parent_order_id": null, - "pending_quantity": 1, - "placed_by": "DA0017", - "price": 300, - "product": "CNC", - "quantity": 1, - "status": "MODIFIED", - "status_message": null, - "tag": null, - "tradingsymbol": "SBIN", - "transaction_type": "BUY", - "trigger_price": 0, - "validity": "DAY", - "variety": "regular" - }, - { - "average_price": 0, - "cancelled_quantity": 0, - "disclosed_quantity": 0, - "exchange": "NSE", - "exchange_order_id": "1300000001887410", - "exchange_timestamp": "2017-12-29 11:08:16", - "filled_quantity": 0, - "instrument_token": 779521, - "order_id": "171229000724687", - "order_timestamp": "2017-12-29 11:08:16", - "order_type": "LIMIT", - "parent_order_id": null, - "pending_quantity": 1, - "placed_by": "DA0017", - "price": 300.1, - "product": "CNC", - "quantity": 1, - "status": "OPEN", - "status_message": null, - "tag": null, - "tradingsymbol": "SBIN", - "transaction_type": "BUY", - "trigger_price": 0, - "validity": "DAY", - "variety": "regular" - } - ] - } diff --git a/mock_responses/order_response.json b/mock_responses/order_response.json deleted file mode 100644 index 334b163..0000000 --- a/mock_responses/order_response.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "status": "success", - "data": { - "order_id": "151220000000000" - } - } \ No newline at end of file diff --git a/mock_responses/order_trades.json b/mock_responses/order_trades.json deleted file mode 100644 index ded3a44..0000000 --- a/mock_responses/order_trades.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "status": "success", - "data": [ - { - "average_price": 310.7, - "exchange": "NSE", - "exchange_order_id": "1300000001887410", - "exchange_timestamp": "2017-12-29 12:02:05", - "instrument_token": 779521, - "order_id": "171229000724687", - "order_timestamp": "12:02:05", - "product": "CNC", - "quantity": 1, - "trade_id": "75894751", - "tradingsymbol": "SBIN", - "transaction_type": "BUY" - } - ] -} diff --git a/mock_responses/orders.json b/mock_responses/orders.json deleted file mode 100644 index 42ef31b..0000000 --- a/mock_responses/orders.json +++ /dev/null @@ -1,215 +0,0 @@ -{ - "status": "success", - "data": [ - { - "account_id": "", - "placed_by": "DA0017", - "order_id": "171228000850038", - "exchange_order_id": "211736200053802", - "parent_order_id": "", - "status": "COMPLETE", - "status_message": "", - "order_timestamp": "2017-12-28 11:39:14", - "exchange_update_timestamp": "", - "exchange_timestamp": "2017-12-28 11:39:14", - "meta": {}, - "rejected_by": "", - "variety": "regular", - "exchange": "MCX", - "tradingsymbol": "GOLDGUINEA17DECFUT", - "instrument_token": 53505799, - "order_type": "LIMIT", - "transaction_type": "SELL", - "validity": "DAY", - "product": "NRML", - "quantity": 3, - "disclosed_quantity": 0, - "price": 23337, - "trigger_price": 0, - "average_price": 23337, - "filled_quantity": 3, - "pending_quantity": 0, - "cancelled_quantity": 0 - }, - { - "account_id": "", - "placed_by": "DA0017", - "order_id": "171228000912853", - "exchange_order_id": "1300000002730006", - "parent_order_id": "", - "status": "COMPLETE", - "status_message": "", - "order_timestamp": "2017-12-28 12:09:31", - "exchange_update_timestamp": "", - "exchange_timestamp": "2017-12-28 12:00:28", - "meta": {}, - "rejected_by": "", - "variety": "co", - "exchange": "NSE", - "tradingsymbol": "SBIN", - "instrument_token": 779521, - "order_type": "LIMIT", - "transaction_type": "BUY", - "validity": "DAY", - "product": "CO", - "quantity": 1, - "disclosed_quantity": 0, - "price": 311, - "trigger_price": 0, - "average_price": 311, - "filled_quantity": 1, - "pending_quantity": 0, - "cancelled_quantity": 0 - }, - { - "account_id": "", - "placed_by": "DA0017", - "order_id": "171228001116651", - "exchange_order_id": "211736200111089", - "parent_order_id": "", - "status": "COMPLETE", - "status_message": "", - "order_timestamp": "2017-12-28 13:08:49", - "exchange_update_timestamp": "", - "exchange_timestamp": "2017-12-28 13:08:49", - "meta": {}, - "rejected_by": "", - "variety": "regular", - "exchange": "MCX", - "tradingsymbol": "GOLDGUINEA17DECFUT", - "instrument_token": 53505799, - "order_type": "LIMIT", - "transaction_type": "BUY", - "validity": "DAY", - "product": "NRML", - "quantity": 1, - "disclosed_quantity": 0, - "price": 23388, - "trigger_price": 0, - "average_price": 23388, - "filled_quantity": 1, - "pending_quantity": 0, - "cancelled_quantity": 0 - }, - { - "account_id": "", - "placed_by": "DA0017", - "order_id": "171228000912854", - "exchange_order_id": "1300000002730007", - "parent_order_id": "171228000912853", - "status": "COMPLETE", - "status_message": "", - "order_timestamp": "2017-12-28 15:00:40", - "exchange_update_timestamp": "", - "exchange_timestamp": "2017-12-28 15:00:40", - "meta": {}, - "rejected_by": "", - "variety": "co", - "exchange": "NSE", - "tradingsymbol": "SBIN", - "instrument_token": 779521, - "order_type": "LIMIT", - "transaction_type": "SELL", - "validity": "DAY", - "product": "CO", - "quantity": 1, - "disclosed_quantity": 0, - "price": 0, - "trigger_price": 309, - "average_price": 309, - "filled_quantity": 1, - "pending_quantity": 0, - "cancelled_quantity": 0 - }, - { - "account_id": "", - "placed_by": "DA0017", - "order_id": "171228001686586", - "exchange_order_id": "211736200181323", - "parent_order_id": "", - "status": "COMPLETE", - "status_message": "", - "order_timestamp": "2017-12-28 15:28:56", - "exchange_update_timestamp": "", - "exchange_timestamp": "2017-12-28 15:28:56", - "meta": {}, - "rejected_by": "", - "variety": "regular", - "exchange": "MCX", - "tradingsymbol": "GOLDGUINEA17DECFUT", - "instrument_token": 53505799, - "order_type": "LIMIT", - "transaction_type": "SELL", - "validity": "DAY", - "product": "NRML", - "quantity": 1, - "disclosed_quantity": 0, - "price": 23349, - "trigger_price": 0, - "average_price": 23349, - "filled_quantity": 1, - "pending_quantity": 0, - "cancelled_quantity": 0 - }, - { - "account_id": "", - "placed_by": "DA0017", - "order_id": "171228001730092", - "exchange_order_id": "211736200297236", - "parent_order_id": "", - "status": "COMPLETE", - "status_message": "", - "order_timestamp": "2017-12-28 19:28:27", - "exchange_update_timestamp": "", - "exchange_timestamp": "2017-12-28 19:28:27", - "meta": {}, - "rejected_by": "", - "variety": "regular", - "exchange": "MCX", - "tradingsymbol": "LEADMINI17DECFUT", - "instrument_token": 53496327, - "order_type": "LIMIT", - "transaction_type": "BUY", - "validity": "DAY", - "product": "NRML", - "quantity": 1, - "disclosed_quantity": 0, - "price": 161.05, - "trigger_price": 0, - "average_price": 161.05, - "filled_quantity": 1, - "pending_quantity": 0, - "cancelled_quantity": 0 - }, - { - "account_id": "", - "placed_by": "DA0017", - "order_id": "171228001731490", - "exchange_order_id": "211736200302177", - "parent_order_id": "", - "status": "COMPLETE", - "status_message": "", - "order_timestamp": "2017-12-28 19:37:12", - "exchange_update_timestamp": "", - "exchange_timestamp": "2017-12-28 19:37:12", - "meta": {}, - "rejected_by": "", - "variety": "regular", - "exchange": "MCX", - "tradingsymbol": "LEADMINI17DECFUT", - "instrument_token": 53496327, - "order_type": "LIMIT", - "transaction_type": "SELL", - "validity": "DAY", - "product": "NRML", - "quantity": 1, - "disclosed_quantity": 0, - "price": 161.2, - "trigger_price": 0, - "average_price": 161.2, - "filled_quantity": 1, - "pending_quantity": 0, - "cancelled_quantity": 0 - } - ] -} diff --git a/mock_responses/positions.json b/mock_responses/positions.json deleted file mode 100644 index 190e42a..0000000 --- a/mock_responses/positions.json +++ /dev/null @@ -1,195 +0,0 @@ -{ - "status": "success", - "data": { - "net": [ - { - "tradingsymbol": "LEADMINI17DECFUT", - "exchange": "MCX", - "instrument_token": 53496327, - "product": "NRML", - "quantity": 1, - "overnight_quantity": 0, - "multiplier": 1000, - "average_price": 161.05, - "close_price": 0, - "last_price": 161.05, - "value": -161050, - "pnl": 0, - "m2m": 0, - "unrealised": 0, - "realised": 0, - "buy_quantity": 1, - "buy_price": 161.05, - "buy_value": 161050, - "buy_m2m": 161050, - "sell_quantity": 0, - "sell_price": 0, - "sell_value": 0, - "sell_m2m": 0, - "day_buy_quantity": 1, - "day_buy_price": 161.05, - "day_buy_value": 161050, - "day_sell_quantity": 0, - "day_sell_price": 0, - "day_sell_value": 0 - }, - { - "tradingsymbol": "GOLDGUINEA17DECFUT", - "exchange": "MCX", - "instrument_token": 53505799, - "product": "NRML", - "quantity": 0, - "overnight_quantity": 3, - "multiplier": 1, - "average_price": 0, - "close_price": 23232, - "last_price": 23355, - "value": 801, - "pnl": 801, - "m2m": 276, - "unrealised": 801, - "realised": 0, - "buy_quantity": 4, - "buy_price": 23139.75, - "buy_value": 92559, - "buy_m2m": 93084, - "sell_quantity": 4, - "sell_price": 23340, - "sell_value": 93360, - "sell_m2m": 93360, - "day_buy_quantity": 1, - "day_buy_price": 23388, - "day_buy_value": 23388, - "day_sell_quantity": 4, - "day_sell_price": 23340, - "day_sell_value": 93360 - }, - { - "tradingsymbol": "SBIN", - "exchange": "NSE", - "instrument_token": 779521, - "product": "CO", - "quantity": 0, - "overnight_quantity": 0, - "multiplier": 1, - "average_price": 0, - "close_price": 0, - "last_price": 308.4, - "value": -2, - "pnl": -2, - "m2m": -2, - "unrealised": -2, - "realised": 0, - "buy_quantity": 1, - "buy_price": 311, - "buy_value": 311, - "buy_m2m": 311, - "sell_quantity": 1, - "sell_price": 309, - "sell_value": 309, - "sell_m2m": 309, - "day_buy_quantity": 1, - "day_buy_price": 311, - "day_buy_value": 311, - "day_sell_quantity": 1, - "day_sell_price": 309, - "day_sell_value": 309 - } - ], - "day": [ - { - "tradingsymbol": "GOLDGUINEA17DECFUT", - "exchange": "MCX", - "instrument_token": 53505799, - "product": "NRML", - "quantity": -3, - "overnight_quantity": 0, - "multiplier": 1, - "average_price": 23340, - "close_price": 23232, - "last_price": 23355, - "value": 69972, - "pnl": -93, - "m2m": -93, - "unrealised": -93, - "realised": 0, - "buy_quantity": 1, - "buy_price": 23388, - "buy_value": 23388, - "buy_m2m": 23388, - "sell_quantity": 4, - "sell_price": 23340, - "sell_value": 93360, - "sell_m2m": 93360, - "day_buy_quantity": 1, - "day_buy_price": 23388, - "day_buy_value": 23388, - "day_sell_quantity": 4, - "day_sell_price": 23340, - "day_sell_value": 93360 - }, - { - "tradingsymbol": "LEADMINI17DECFUT", - "exchange": "MCX", - "instrument_token": 53496327, - "product": "NRML", - "quantity": 1, - "overnight_quantity": 0, - "multiplier": 1000, - "average_price": 161.05, - "close_price": 0, - "last_price": 161.05, - "value": -161050, - "pnl": 0, - "m2m": 0, - "unrealised": 0, - "realised": 0, - "buy_quantity": 1, - "buy_price": 161.05, - "buy_value": 161050, - "buy_m2m": 161050, - "sell_quantity": 0, - "sell_price": 0, - "sell_value": 0, - "sell_m2m": 0, - "day_buy_quantity": 1, - "day_buy_price": 161.05, - "day_buy_value": 161050, - "day_sell_quantity": 0, - "day_sell_price": 0, - "day_sell_value": 0 - }, - { - "tradingsymbol": "SBIN", - "exchange": "NSE", - "instrument_token": 779521, - "product": "CO", - "quantity": 0, - "overnight_quantity": 0, - "multiplier": 1, - "average_price": 0, - "close_price": 0, - "last_price": 308.4, - "value": -2, - "pnl": -2, - "m2m": -2, - "unrealised": -2, - "realised": 0, - "buy_quantity": 1, - "buy_price": 311, - "buy_value": 311, - "buy_m2m": 311, - "sell_quantity": 1, - "sell_price": 309, - "sell_value": 309, - "sell_m2m": 309, - "day_buy_quantity": 1, - "day_buy_price": 311, - "day_buy_value": 311, - "day_sell_quantity": 1, - "day_sell_price": 309, - "day_sell_value": 309 - } - ] - } -} diff --git a/mock_responses/profile.json b/mock_responses/profile.json deleted file mode 100644 index ae210a7..0000000 --- a/mock_responses/profile.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "status": "success", - "data": { - "user_type": "investor", - "email": "xxxyyy@gmail.com", - "user_name": "AxAx Bxx", - "user_shortname": "abc", - "broker": "ZERODHA", - "exchanges": [ - "BSE", - "BFO", - "NFO", - "MCX", - "CDS", - "NSE" - ], - "products": [ - "BO", - "CNC", - "CO", - "MIS", - "NRML" - ], - "order_types": [ - "LIMIT", - "MARKET", - "SL", - "SL-M" - ] - } -} diff --git a/mock_responses/quote.json b/mock_responses/quote.json deleted file mode 100644 index 05079a1..0000000 --- a/mock_responses/quote.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "status": "success", - "data": { - "NSE:INFY": { - "instrument_token": 408065, - "timestamp": "2018-01-12 10:40:29", - "last_price": 1074.8, - "last_quantity": 55, - "last_trade_time": "2018-01-12 10:40:28", - "average_price": 1077.03, - "volume": 1368065, - "buy_quantity": 240020, - "sell_quantity": 509481, - "ohlc": { - "open": 1085.8, - "high": 1085.9, - "low": 1070.9, - "close": 1075.8 - }, - "net_change": 0, - "oi": 0, - "oi_day_high": 0, - "oi_day_low": 0, - "depth": { - "buy": [ - { - "price": 1074.8, - "quantity": 35, - "orders": 1 - }, - { - "price": 1074.65, - "quantity": 5, - "orders": 1 - }, - { - "price": 1074.6, - "quantity": 14, - "orders": 1 - }, - { - "price": 1074.5, - "quantity": 1529, - "orders": 3 - }, - { - "price": 1074.45, - "quantity": 139, - "orders": 1 - } - ], - "sell": [ - { - "price": 1074.85, - "quantity": 32, - "orders": 1 - }, - { - "price": 1075, - "quantity": 1264, - "orders": 18 - }, - { - "price": 1075.1, - "quantity": 14, - "orders": 1 - }, - { - "price": 1075.2, - "quantity": 600, - "orders": 1 - }, - { - "price": 1075.25, - "quantity": 22, - "orders": 2 - } - ] - } - } - } -} diff --git a/mock_responses/trades.json b/mock_responses/trades.json deleted file mode 100644 index c5a0950..0000000 --- a/mock_responses/trades.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "status": "success", - "data": [ - { - "average_price": 310.7, - "exchange": "NSE", - "exchange_order_id": "1300000001887410", - "exchange_timestamp": "2017-12-29 12:02:05", - "instrument_token": 779521, - "order_id": "171229000724687", - "order_timestamp": "12:02:05", - "product": "CNC", - "quantity": 1, - "trade_id": "75894751", - "tradingsymbol": "SBIN", - "transaction_type": "BUY" - } - ] - } diff --git a/mock_responses/trigger_range.json b/mock_responses/trigger_range.json deleted file mode 100644 index f84ba5c..0000000 --- a/mock_responses/trigger_range.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "status": "success", - "data": { - "NSE:INFY": { - "instrument_token": 0, - "lower": 1075.599, - "upper": 1138.2 - }, - "NSE:RELIANCE": { - "instrument_token": 0, - "lower": 870.57475, - "upper": 902.15 - } - } -} diff --git a/models/snaps.go b/models/snaps.go new file mode 100644 index 0000000..5964161 --- /dev/null +++ b/models/snaps.go @@ -0,0 +1,50 @@ +package models + +// OHLC represents OHLC packets. +type OHLC struct { + InstrumentToken uint32 `json:"-"` + Open float64 `json:"open"` + High float64 `json:"high"` + Low float64 `json:"low"` + Close float64 `json:"close"` +} + +// DepthItem represents a single market depth entry. +type DepthItem struct { + Price float64 `json:"price"` + Quantity uint32 `json:"quantity"` + Orders uint32 `json:"orders"` +} + +// Depth represents a group of buy/sell market depths. +type Depth struct { + Buy [5]DepthItem `json:"buy"` + Sell [5]DepthItem `json:"sell"` +} + +// Tick represents a single packet in the market feed. +type Tick struct { + Mode string + InstrumentToken uint32 + IsTradable bool + IsIndex bool + + // Timestamp represents Exchange timestamp + Timestamp Time + LastTradeTime Time + LastPrice float64 + LastTradedQuantity uint32 + TotalBuyQuantity uint32 + TotalSellQuantity uint32 + VolumeTraded uint32 + TotalBuy uint32 + TotalSell uint32 + AverageTradePrice float64 + OI uint32 + OIDayHigh uint32 + OIDayLow uint32 + NetChange float64 + + OHLC OHLC + Depth Depth +} diff --git a/models/time.go b/models/time.go new file mode 100644 index 0000000..f270649 --- /dev/null +++ b/models/time.go @@ -0,0 +1,79 @@ +package models + +import ( + "errors" + "strings" + "time" +) + +// Time is custom time format used in all responses +type Time struct { + time.Time +} + +// List of known time formats +var ( + ctLayouts = []string{"2006-01-02", "2006-01-02 15:04:05"} + ctZonedLayouts = []string{"2006-01-02T15:04:05-0700", time.RFC3339} +) + +// UnmarshalJSON parses JSON time string with custom time formats +func (t *Time) UnmarshalJSON(b []byte) error { + s := strings.TrimSpace(strings.Trim(string(b), "\"")) + + pTime, err := parseTime(s) + if err != nil { + return err + } + + t.Time = pTime + return nil +} + +// UnmarshalCSV converts CSV string field internal date +func (t *Time) UnmarshalCSV(s string) error { + s = strings.TrimSpace(s) + + pTime, err := parseTime(s) + if err != nil { + return err + } + + t.Time = pTime + return nil +} + +func parseTime(s string) (time.Time, error) { + var ( + pTime time.Time + err error + ) + + if s == "" || s == "null" { + return pTime, nil + } + + // Load IST location. + loc, err := time.LoadLocation("Asia/Kolkata") + if err != nil { + return pTime, err + } + + // Iterate through zoneless layouts and assign zone as IST. + for _, l := range ctLayouts { + pTime, err = time.ParseInLocation(l, s, loc) + if err == nil && !pTime.IsZero() { + return pTime, nil + } + } + + // If pattern not found then iterate and parse layouts with zone. + for _, l := range ctZonedLayouts { + pTime, err = time.Parse(l, s) + if err == nil && !pTime.IsZero() { + return pTime, nil + } + } + + return pTime, errors.New("unknown time format") +} diff --git a/utils_test.go b/models/time_test.go similarity index 96% rename from utils_test.go rename to models/time_test.go index fd28784..e6609dc 100644 --- a/utils_test.go +++ b/models/time_test.go @@ -1,4 +1,4 @@ -package kiteconnect +package models import ( "encoding/json" @@ -21,6 +21,7 @@ func TestCustomUnmarshalJSON(t *testing.T) { {"{\"date\":\"2006-01-02 15:04:05\"}", false}, {"{\"date\":\"2006-01-02T15:04:05-0700\"}", false}, {"{\"date\":\"2006-01-02T\"}", true}, + {"{\"date\":\"null\"}", true}, } for _, j := range testCases { diff --git a/mutualfunds.go b/mutualfunds.go index 4cf46c3..44ad508 100644 --- a/mutualfunds.go +++ b/mutualfunds.go @@ -6,6 +6,7 @@ import ( "net/url" "github.com/google/go-querystring/query" + "github.com/zerodha/gokiteconnect/v4/models" ) // MFHolding represents a individual mutualfund holding. @@ -20,21 +21,36 @@ type MFHolding struct { Quantity float64 `json:"quantity"` } +// MFTrade represents a individual trades of a mutualfund holding. +type MFTrade struct { + Fund string `json:"fund"` + Tradingsymbol string `json:"tradingsymbol"` + AveragePrice float64 `json:"average_price"` + Variety string `json:"variety"` + ExchangeTimestamp models.Time `json:"exchange_timestamp"` + Amount float64 `json:"amount"` + Folio string `json:"folio"` + Quantity float64 `json:"quantity"` +} + +// MFHoldingBreakdown represents a list of mutualfund holdings. +type MFHoldingBreakdown []MFTrade + // MFHoldings represents a list of mutualfund holdings. type MFHoldings []MFHolding // MFOrder represents a individual mutualfund order response. type MFOrder struct { - OrderID string `json:"order_id"` - ExchangeOrderID string `json:"exchange_order_id"` - Tradingsymbol string `json:"tradingsymbol"` - Status string `json:"status"` - StatusMessage string `json:"status_message"` - Folio string `json:"folio"` - Fund string `json:"fund"` - OrderTimestamp Time `json:"order_timestamp"` - ExchangeTimestamp Time `json:"exchange_timestamp"` - SettlementID string `json:"settlement_id"` + OrderID string `json:"order_id"` + ExchangeOrderID string `json:"exchange_order_id"` + Tradingsymbol string `json:"tradingsymbol"` + Status string `json:"status"` + StatusMessage string `json:"status_message"` + Folio string `json:"folio"` + Fund string `json:"fund"` + OrderTimestamp models.Time `json:"order_timestamp"` + ExchangeTimestamp models.Time `json:"exchange_timestamp"` + SettlementID string `json:"settlement_id"` TransactionType string `json:"transaction_type"` Variety string `json:"variety"` @@ -48,7 +64,13 @@ type MFOrder struct { } // MFOrders represents a list of mutualfund orders. -type MFOrders []Order +type MFOrders []MFOrder + +// MFAllottedISINs represents a list of all ISINs in which atleast one allotment is present. +type MFAllottedISINs []string + +// MFSIPStepUp represents stepup date and percentage for SIPs. +type MFSIPStepUp map[string]int // MFSIP represents a individual mutualfund SIP response. type MFSIP struct { @@ -58,15 +80,20 @@ type MFSIP struct { DividendType string `json:"dividend_type"` TransactionType string `json:"transaction_type"` - Status string `json:"status"` - Created Time `json:"created"` - Frequency string `json:"frequency"` - InstalmentAmount float64 `json:"instalment_amount"` - Instalments int `json:"instalments"` - LastInstalment Time `json:"last_instalment"` - PendingInstalments int `json:"pending_instalments"` - InstalmentDay int `json:"instalment_day"` - Tag string `json:"tag"` + Status string `json:"status"` + SipType string `json:"sip_type"` + Created models.Time `json:"created"` + Frequency string `json:"frequency"` + InstalmentAmount float64 `json:"instalment_amount"` + Instalments int `json:"instalments"` + LastInstalment models.Time `json:"last_instalment"` + PendingInstalments int `json:"pending_instalments"` + InstalmentDay int `json:"instalment_day"` + CompletedInstalments int `json:"completed_instalments"` + NextInstalment string `json:"next_instalment"` + TriggerPrice float64 `json:"trigger_price"` + StepUp MFSIPStepUp `json:"step_up"` + Tag string `json:"tag"` } // MFSIPs represents a list of mutualfund SIPs. @@ -100,6 +127,9 @@ type MFSIPParams struct { Frequency string `json:"frequency" url:"frequency"` InstalmentDay int `json:"instalment_day" url:"instalment_day,omitempty"` InitialAmount float64 `json:"initial_amount" url:"initial_amount,omitempty"` + TriggerPrice float64 `json:"trigger_price" url:"trigger_price,omitempty"` + StepUp string `json:"step_up" url:"step_up,omitempty"` + SipType string `json:"sip_type" url:"sip_type,omitempty"` Tag string `json:"tag" url:"tag,omitempty"` } @@ -109,6 +139,7 @@ type MFSIPModifyParams struct { Frequency string `json:"frequency" url:"frequency,omitempty"` InstalmentDay int `json:"instalment_day" url:"instalment_day,omitempty"` Instalments int `json:"instalments" url:"instalments,omitempty"` + StepUp string `json:"step_up" url:"step_up,omitempty"` Status string `json:"status" url:"status,omitempty"` } @@ -126,6 +157,20 @@ func (c *Client) GetMFOrderInfo(OrderID string) (MFOrder, error) { return orderInfo, err } +// GetMFOrdersByDate gets list of mutualfund orders for a custom date range. +func (c *Client) GetMFOrdersByDate(fromDate, toDate string) (MFOrders, error) { + var ( + orders MFOrders + ) + params := make(url.Values) + // from and to dates from request + params.Add("from", fromDate) + params.Add("to", toDate) + + err := c.doEnvelope(http.MethodGet, URIGetMFOrders, params, nil, &orders) + return orders, err +} + // PlaceMFOrder places an mutualfund order. func (c *Client) PlaceMFOrder(orderParams MFOrderParams) (MFOrderResponse, error) { var ( @@ -194,13 +239,34 @@ func (c *Client) CancelMFSIP(sipID string) (MFSIPResponse, error) { sipResponse MFSIPResponse ) - err := c.doEnvelope(http.MethodPut, fmt.Sprintf(URICancelMFSIP, sipID), nil, nil, &sipResponse) + err := c.doEnvelope(http.MethodDelete, fmt.Sprintf(URICancelMFSIP, sipID), nil, nil, &sipResponse) return sipResponse, err } +// CancelMFOrder cancels an mutualfund order. +func (c *Client) CancelMFOrder(orderID string) (MFOrderResponse, error) { + var orderResponse MFOrderResponse + err := c.doEnvelope(http.MethodDelete, fmt.Sprintf(URICancelMFOrder, orderID), nil, nil, &orderResponse) + return orderResponse, err +} + // GetMFHoldings gets list of user mutualfund holdings. func (c *Client) GetMFHoldings() (MFHoldings, error) { var holdings MFHoldings err := c.doEnvelope(http.MethodGet, URIGetMFHoldings, nil, nil, &holdings) return holdings, err } + +// GetMFHoldingInfo get individual Holding info. +func (c *Client) GetMFHoldingInfo(isin string) (MFHoldingBreakdown, error) { + var holdingBreakdown MFHoldingBreakdown + err := c.doEnvelope(http.MethodGet, fmt.Sprintf(URIGetMFHoldingInfo, isin), nil, nil, &holdingBreakdown) + return holdingBreakdown, err +} + +// GetMFAllottedISINs gets list of user mutualfund holdings. +func (c *Client) GetMFAllottedISINs() (MFAllottedISINs, error) { + var isins MFAllottedISINs + err := c.doEnvelope(http.MethodGet, URIGetAllotedISINs, nil, nil, &isins) + return isins, err +} diff --git a/orders.go b/orders.go index 6db7ff1..9f65547 100644 --- a/orders.go +++ b/orders.go @@ -6,6 +6,7 @@ import ( "net/url" "github.com/google/go-querystring/query" + "github.com/zerodha/gokiteconnect/v4/models" ) // Order represents a individual order response. @@ -18,12 +19,13 @@ type Order struct { ParentOrderID string `json:"parent_order_id"` Status string `json:"status"` StatusMessage string `json:"status_message"` - OrderTimestamp Time `json:"order_timestamp"` - ExchangeUpdateTimestamp Time `json:"exchange_update_timestamp"` - ExchangeTimestamp Time `json:"exchange_timestamp"` - Meta map[string]interface{} `json:"meta"` - RejectedBy string `json:"rejected_by"` + StatusMessageRaw string `json:"status_message_raw"` + OrderTimestamp models.Time `json:"order_timestamp"` + ExchangeUpdateTimestamp models.Time `json:"exchange_update_timestamp"` + ExchangeTimestamp models.Time `json:"exchange_timestamp"` Variety string `json:"variety"` + Modified bool `json:"modified"` + Meta map[string]interface{} `json:"meta"` Exchange string `json:"exchange"` TradingSymbol string `json:"tradingsymbol"` @@ -32,6 +34,7 @@ type Order struct { OrderType string `json:"order_type"` TransactionType string `json:"transaction_type"` Validity string `json:"validity"` + ValidityTTL int `json:"validity_ttl"` Product string `json:"product"` Quantity float64 `json:"quantity"` DisclosedQuantity float64 `json:"disclosed_quantity"` @@ -42,6 +45,13 @@ type Order struct { FilledQuantity float64 `json:"filled_quantity"` PendingQuantity float64 `json:"pending_quantity"` CancelledQuantity float64 `json:"cancelled_quantity"` + + AuctionNumber string `json:"auction_number"` + MarketProtection float64 `json:"market_protection"` + + Tag string `json:"tag"` + Tags []string `json:"tags"` + GUID string `json:"guid"` } // Orders is a list of orders. @@ -52,6 +62,7 @@ type OrderParams struct { Exchange string `url:"exchange,omitempty"` Tradingsymbol string `url:"tradingsymbol,omitempty"` Validity string `url:"validity,omitempty"` + ValidityTTL int `url:"validity_ttl,omitempty"` Product string `url:"product,omitempty"` OrderType string `url:"order_type,omitempty"` TransactionType string `url:"transaction_type,omitempty"` @@ -65,28 +76,56 @@ type OrderParams struct { Stoploss float64 `url:"stoploss,omitempty"` TrailingStoploss float64 `url:"trailing_stoploss,omitempty"` + IcebergLegs int `url:"iceberg_legs,omitempty"` + IcebergQty int `url:"iceberg_quantity,omitempty"` + + AuctionNumber string `url:"auction_number,omitempty"` + + MarketProtection float64 `url:"market_protection,omitempty"` + + Autoslice bool `url:"autoslice,omitempty"` + Tag string `json:"tag" url:"tag,omitempty"` } // OrderResponse represents the order place success response. +// For autoslice orders, the response includes the parent order ID +// and a list of child orders in the Children field. type OrderResponse struct { - OrderID string `json:"order_id"` + OrderID string `json:"order_id"` + Children []OrderChild `json:"children,omitempty"` +} + +// OrderChild represents a child order in an autoslice order response. +// Each child is either a successfully placed order (OrderID is set) or +// a failed order (Error is set). +type OrderChild struct { + OrderID string `json:"order_id,omitempty"` + Error *OrderChildError `json:"error,omitempty"` +} + +// OrderChildError represents an error for a child order in an autoslice response. +type OrderChildError struct { + Code int `json:"code"` + ErrorType string `json:"error_type"` + Message string `json:"message"` + Data interface{} `json:"data"` } // Trade represents an individual trade response. type Trade struct { - AveragePrice float64 `json:"average_price"` - Quantity float64 `json:"quantity"` - TradeID string `json:"trade_id"` - Product string `json:"product"` - FillTimestamp Time `json:"fill_timestamp"` - ExchangeTimestamp Time `json:"exchange_timestamp"` - ExchangeOrderID string `json:"exchange_order_id"` - OrderID string `json:"order_id"` - TransactionType string `json:"transaction_type"` - TradingSymbol string `json:"tradingsymbol"` - Exchange string `json:"exchange"` - InstrumentToken uint32 `json:"instrument_token"` + AveragePrice float64 `json:"average_price"` + Quantity float64 `json:"quantity"` + TradeID string `json:"trade_id"` + Product string `json:"product"` + FillTimestamp models.Time `json:"fill_timestamp"` + ExchangeTimestamp models.Time `json:"exchange_timestamp"` + ExchangeOrderID string `json:"exchange_order_id"` + OrderID string `json:"order_id"` + TransactionType string `json:"transaction_type"` + TradingSymbol string `json:"tradingsymbol"` + Exchange string `json:"exchange"` + InstrumentToken uint32 `json:"instrument_token"` } // Trades is a list of trades. diff --git a/orders_test.go b/orders_test.go index e395cb6..bc414b4 100644 --- a/orders_test.go +++ b/orders_test.go @@ -1,20 +1,46 @@ package kiteconnect import ( + "encoding/json" "testing" + + "github.com/stretchr/testify/require" ) func (ts *TestSuite) TestGetOrders(t *testing.T) { t.Parallel() orders, err := ts.KiteConnect.GetOrders() if err != nil { - t.Errorf("Error while fetching orders. %v", err) + t.Fatalf("Error while fetching orders. %v", err) } - for _, order := range orders { - if order.OrderID == "" { - t.Errorf("Error while fetching order id in orders. %v", err) - } + if len(orders) == 0 { + t.Fatal("No orders returned") } + t.Run("test empty/unparsed orders", func(t *testing.T) { + for _, order := range orders { + require.NotEqual(t, "", order.OrderID) + } + }) + t.Run("test tag parsing", func(t *testing.T) { + require.Equal(t, "", orders[0].Tag) + require.Equal(t, "connect test order1", orders[4].Tag) + require.Equal(t, []string{"connect test order2", "XXXXX"}, orders[5].Tags) + }) + t.Run("test ice-berg and TTL orders", func(t *testing.T) { + require.Equal(t, "iceberg", orders[3].Variety) + require.Equal(t, false, orders[3].Modified) + require.Equal(t, "TTL", orders[3].Validity) + require.Equal(t, 200.0, orders[3].Meta["iceberg"].(map[string]interface{})["leg_quantity"]) + require.Equal(t, 1000.0, orders[3].Meta["iceberg"].(map[string]interface{})["total_quantity"]) + }) + t.Run("test auction order", func(t *testing.T) { + require.Equal(t, "auction", orders[6].Variety) + require.Equal(t, "22", orders[6].AuctionNumber) + require.Equal(t, false, orders[6].Modified) + }) + t.Run("test mtf order", func(t *testing.T) { + require.Equal(t, "MTF", orders[7].Product) + }) } func (ts *TestSuite) TestGetTrades(t *testing.T) { @@ -40,6 +66,9 @@ func (ts *TestSuite) TestGetOrderHistory(t *testing.T) { if order.OrderID == "" { t.Errorf("Error while fetching order id in order history. %v", err) } + if order.Modified { + t.Errorf("Error for not modified order. %v", err) + } } } @@ -83,6 +112,98 @@ func (ts *TestSuite) TestPlaceOrder(t *testing.T) { } } +func (ts *TestSuite) TestPlaceIceBergOrder(t *testing.T) { + t.Parallel() + params := OrderParams{ + Exchange: "test_iceberg", + Tradingsymbol: "test_iceberg", + Validity: "TTL", + Product: "test_iceberg", + OrderType: "test_iceberg", + TransactionType: "test_iceberg", + Quantity: 1000, + Price: 100, + IcebergLegs: 2, + IcebergQty: 500, + Tag: "test_iceberg", + } + orderResponse, err := ts.KiteConnect.PlaceOrder("iceberg", params) + if err != nil { + t.Errorf("Error while placing iceberg order. %v", err) + } + if orderResponse.OrderID == "" { + t.Errorf("No order id returned. Error %v", err) + } +} + +func (ts *TestSuite) TestPlaceCoOrder(t *testing.T) { + t.Parallel() + params := OrderParams{ + Exchange: "test_co", + Tradingsymbol: "test_co", + Validity: "test_co", + Product: "test_co", + OrderType: "test_co", + TransactionType: "test_co", + Quantity: 100, + Price: 101, + TriggerPrice: 100, + Tag: "test_co", + } + orderResponse, err := ts.KiteConnect.PlaceOrder("co", params) + if err != nil { + t.Errorf("Error while placing co order. %v", err) + } + if orderResponse.OrderID == "" { + t.Errorf("No order id returned. Error %v", err) + } +} + +func (ts *TestSuite) TestPlaceAuctionOrder(t *testing.T) { + t.Parallel() + params := OrderParams{ + Exchange: "test_auction", + Tradingsymbol: "test_auction", + Validity: "test_auction", + Product: "test_auction", + OrderType: "test_auction", + TransactionType: "test_auction", + Quantity: 100, + Price: 100, + AuctionNumber: "7359", + Tag: "test_auction", + } + orderResponse, err := ts.KiteConnect.PlaceOrder("auction", params) + if err != nil { + t.Errorf("Error while placing auction order. %v", err) + } + if orderResponse.OrderID == "" { + t.Errorf("No order id returned. Error %v", err) + } +} + +func (ts *TestSuite) TestPlaceMTFOrder(t *testing.T) { + t.Parallel() + mtfParams := OrderParams{ + Exchange: "test_mtf", + Tradingsymbol: "test_mtf", + Validity: "test_mtf", + Product: ProductMTF, + OrderType: "test_mtf", + TransactionType: "test_mtf", + Quantity: 100, + Price: 100, + Tag: "test_mtf", + } + orderResponse, err := ts.KiteConnect.PlaceOrder("test", mtfParams) + if err != nil { + t.Errorf("Error while placing mtf order. %v", err) + } + if orderResponse.OrderID == "" { + t.Errorf("No order id returned for placing mtf order. Error %v", err) + } +} + func (ts *TestSuite) TestModifyOrder(t *testing.T) { t.Parallel() params := OrderParams{ @@ -115,11 +236,8 @@ func (ts *TestSuite) TestCancelOrder(t *testing.T) { parentOrderID := "test" orderResponse, err := ts.KiteConnect.CancelOrder("test", "test", &parentOrderID) - if err != nil { - t.Errorf("Error while placing order. %v", err) - } - if orderResponse.OrderID == "" { - t.Errorf("No order id returned. Error %v", err) + if err != nil || orderResponse.OrderID == "" { + t.Errorf("Error while placing cancel order. %v", err) } } @@ -135,3 +253,141 @@ func (ts *TestSuite) TestExitOrder(t *testing.T) { t.Errorf("No order id returned. Error %v", err) } } + +func TestAutosliceOrderResponse(t *testing.T) { + t.Parallel() + + t.Run("success response", func(t *testing.T) { + data := []byte(`{ + "order_id": "260318190751749", + "children": [ + {"order_id": "260318190751750"}, + {"order_id": "260318190751751"} + ] + }`) + var resp OrderResponse + err := json.Unmarshal(data, &resp) + require.NoError(t, err) + require.Equal(t, "260318190751749", resp.OrderID) + require.Len(t, resp.Children, 2) + require.Equal(t, "260318190751750", resp.Children[0].OrderID) + require.Equal(t, "260318190751751", resp.Children[1].OrderID) + require.Nil(t, resp.Children[0].Error) + }) + + t.Run("partial failure response", func(t *testing.T) { + data := []byte(`{ + "order_id": "2034173850391977984", + "children": [ + {"order_id": "2034173850391977985"}, + { + "error": { + "code": 400, + "error_type": "MarginException", + "message": "Insufficient funds. Required margin is 13751.67 but available margin is 13746.26.", + "data": null + } + } + ] + }`) + var resp OrderResponse + err := json.Unmarshal(data, &resp) + require.NoError(t, err) + require.Equal(t, "2034173850391977984", resp.OrderID) + require.Len(t, resp.Children, 2) + require.Equal(t, "2034173850391977985", resp.Children[0].OrderID) + require.Nil(t, resp.Children[0].Error) + require.NotNil(t, resp.Children[1].Error) + require.Equal(t, 400, resp.Children[1].Error.Code) + require.Equal(t, "MarginException", resp.Children[1].Error.ErrorType) + require.Contains(t, resp.Children[1].Error.Message, "Insufficient funds") + }) + + t.Run("regular order backward compat", func(t *testing.T) { + data := []byte(`{"order_id": "151220000000000"}`) + var resp OrderResponse + err := json.Unmarshal(data, &resp) + require.NoError(t, err) + require.Equal(t, "151220000000000", resp.OrderID) + require.Empty(t, resp.Children) + }) +} + +// TestPlaceAutosliceOrder tests autoslice order placement and response parsing. +// Note: In production, autoslice orders use variety "regular" with Autoslice: true. +// The test uses variety "autoslice" only for mock routing purposes. +func (ts *TestSuite) TestPlaceAutosliceOrder(t *testing.T) { + t.Parallel() + params := OrderParams{ + Exchange: "NFO", + Tradingsymbol: "NIFTY26APRFUT", + Validity: "DAY", + Product: "NRML", + OrderType: "LIMIT", + TransactionType: "BUY", + Quantity: 1755, + Price: 22693, + Autoslice: true, + } + orderResponse, err := ts.KiteConnect.PlaceOrder("autoslice", params) + if err != nil { + t.Errorf("Error while placing autoslice order. %v", err) + } + if orderResponse.OrderID == "" { + t.Errorf("No parent order id returned. Error %v", err) + } + if len(orderResponse.Children) == 0 { + t.Errorf("No children returned for autoslice order") + } + // Check that at least one child has an order_id + hasOrderID := false + for _, child := range orderResponse.Children { + if child.OrderID != "" { + hasOrderID = true + } + } + if !hasOrderID { + t.Errorf("No child order IDs returned") + } + // Check that partial failure child has error + hasError := false + for _, child := range orderResponse.Children { + if child.Error != nil { + hasError = true + require.Equal(t, 400, child.Error.Code) + require.Equal(t, "MarginException", child.Error.ErrorType) + } + } + if !hasError { + t.Errorf("Expected at least one child error in mock response") + } +} + +func (ts *TestSuite) TestIssue64(t *testing.T) { + t.Parallel() + orders, err := ts.KiteConnect.GetOrders() + if err != nil { + t.Errorf("Error while fetching orders. %v", err) + } + + // Check if marshal followed by unmarshall correctly parses timestamps + if len(orders) == 0 { + t.Errorf("No orders returned, cannot test timestamp parsing") + return + } + ord := orders[0] + js, err := json.Marshal(ord) + if err != nil { + t.Errorf("Error while marshalling order. %v", err) + } + + var outOrd Order + err = json.Unmarshal(js, &outOrd) + if err != nil { + t.Errorf("Error while unmarshalling order. %v", err) + } + + if !ord.ExchangeTimestamp.Equal(outOrd.ExchangeTimestamp.Time) { + t.Errorf("Incorrect timestamp parsing.\nwant:\t%v\ngot:\t%v", ord.ExchangeTimestamp, outOrd.ExchangeTimestamp) + } +} diff --git a/portfolio.go b/portfolio.go index 88d3f46..72b63a4 100644 --- a/portfolio.go +++ b/portfolio.go @@ -6,6 +6,17 @@ import ( "net/url" "github.com/google/go-querystring/query" + "github.com/zerodha/gokiteconnect/v4/models" +) + +const ( + HolAuthTypeMF = "mf" + HolAuthTypeEquity = "equity" + + HolAuthTransferTypePreTrade = "pre" + HolAuthTransferTypePostTrade = "post" + HolAuthTransferTypeOffMarket = "off" + HolAuthTransferTypeGift = "gift" ) // Holding is an individual holdings response. @@ -16,24 +27,66 @@ type Holding struct { ISIN string `json:"isin"` Product string `json:"product"` - Price float64 `json:"price"` - Quantity int `json:"quantity"` - T1Quantity int `json:"t1_quantity"` - RealisedQuantity int `json:"realised_quantity"` - CollateralQuantity int `json:"collateral_quantity"` - CollateralType string `json:"collateral_type"` + Price float64 `json:"price"` + UsedQuantity int `json:"used_quantity"` + Quantity int `json:"quantity"` + T1Quantity int `json:"t1_quantity"` + RealisedQuantity int `json:"realised_quantity"` + AuthorisedQuantity int `json:"authorised_quantity"` + AuthorisedDate models.Time `json:"authorised_date"` + OpeningQuantity int `json:"opening_quantity"` + CollateralQuantity int `json:"collateral_quantity"` + CollateralType string `json:"collateral_type"` + Discrepancy bool `json:"discrepancy"` AveragePrice float64 `json:"average_price"` LastPrice float64 `json:"last_price"` ClosePrice float64 `json:"close_price"` PnL float64 `json:"pnl"` DayChange float64 `json:"day_change"` DayChangePercentage float64 `json:"day_change_percentage"` + + MTF MTFHolding `json:"mtf"` +} + +// MTFHolding represents the mtf details for a holding +type MTFHolding struct { + Quantity int `json:"quantity"` + UsedQuantity int `json:"used_quantity"` + AveragePrice float64 `json:"average_price"` + Value float64 `json:"value"` + InitialMargin float64 `json:"initial_margin"` } // Holdings is a list of holdings type Holdings []Holding +// HoldingCompact represents a single compact equity holding item in the API response +type HoldingCompact struct { + Exchange string `json:"exchange"` + Tradingsymbol string `json:"tradingsymbol"` + InstrumentToken uint32 `json:"instrument_token"` + + T1Quantity int `json:"t1_quantity"` + Quantity int `json:"quantity"` + + // Hidden field, it gets nulled while sending to the outside world. + Exchanges []string `json:"exchanges,omitempty"` +} + +// HoldingsCompact represents a list of compact Holding entries. +type HoldingsCompact []HoldingCompact + +// HoldingSummary represents a summary of all holdings. +type HoldingSummary struct { + TotalPnL float64 `json:"total_pnl"` + TotalPnLPercent float64 `json:"total_pnl_percent"` + TodayPnL float64 `json:"today_pnl"` + TodayPnLPercent float64 `json:"today_pnl_percent"` + InvestedAmount float64 `json:"invested_amount"` + CurrentValue float64 `json:"current_value"` +} + // Position represents an individual position response. type Position struct { Tradingsymbol string `json:"tradingsymbol"` @@ -87,7 +140,33 @@ type ConvertPositionParams struct { NewProduct string `url:"new_product"` PositionType string `url:"position_type"` TransactionType string `url:"transaction_type"` - Quantity string `url:"quantity"` + Quantity int `url:"quantity"` +} + +// AuctionInstrument represents the auction instrument available for a auction session. +type AuctionInstrument struct { + TradingSymbol string `json:"tradingsymbol"` + Exchange string `json:"exchange"` + InstrumentToken uint32 `json:"instrument_token"` + ISIN string `json:"isin"` + Product string `json:"product"` + Price float64 `json:"price"` + Quantity int `json:"quantity"` + T1Quantity int `json:"t1_quantity"` + RealisedQuantity int `json:"realised_quantity"` + AuthorisedQuantity int `json:"authorised_quantity"` + AuthorisedDate string `json:"authorised_date"` + OpeningQuantity int `json:"opening_quantity"` + CollateralQuantity int `json:"collateral_quantity"` + CollateralType string `json:"collateral_type"` + Discrepancy bool `json:"discrepancy"` + AveragePrice float64 `json:"average_price"` + LastPrice float64 `json:"last_price"` + ClosePrice float64 `json:"close_price"` + Pnl float64 `json:"pnl"` + DayChange float64 `json:"day_change"` + DayChangePercentage float64 `json:"day_change_percentage"` + AuctionNumber string `json:"auction_number"` } // GetHoldings gets a list of holdings. @@ -97,6 +176,27 @@ func (c *Client) GetHoldings() (Holdings, error) { return holdings, err } +// GetHoldingsSummary gets a summary of holdings. +func (c *Client) GetHoldingsSummary() (HoldingSummary, error) { + var summary HoldingSummary + err := c.doEnvelope(http.MethodGet, URIGetHoldingsSummary, nil, nil, &summary) + return summary, err +} + +// GetHoldingsCompact gets a compact list of holdings. +func (c *Client) GetHoldingsCompact() (HoldingsCompact, error) { + var compact HoldingsCompact + err := c.doEnvelope(http.MethodGet, URIGetHoldingsCompact, nil, nil, &compact) + return compact, err +} + +// GetAuctionInstruments retrieves list of available instruments for a auction session +func (c *Client) GetAuctionInstruments() ([]AuctionInstrument, error) { + var auctionInstruments []AuctionInstrument + err := c.doEnvelope(http.MethodGet, URIAuctionInstruments, nil, nil, &auctionInstruments) + return auctionInstruments, err +} + // GetPositions gets user positions. func (c *Client) GetPositions() (Positions, error) { var positions Positions @@ -122,3 +222,71 @@ func (c *Client) ConvertPosition(positionParams ConvertPositionParams) (bool, er return b, err } + +// HoldingsAuthInstruments represents the instruments and respective quantities for +// use within the holdings auth initialization. +type HoldingsAuthInstruments struct { + ISIN string + Quantity float64 +} + +// HoldingAuthParams represents the inputs for initiating holdings authorization. +type HoldingAuthParams struct { + Type string + TransferType string + ExecDate string + + // Instruments are optional + Instruments []HoldingsAuthInstruments +} + +// HoldingsAuthParams represents the response from initiating holdings authorization +type HoldingsAuthResp struct { + RequestID string `json:"request_id"` + RedirectURL string `json:"redirect_url"` +} + +// InitiateHoldingsAuth initiates the holdings authorization flow. It accepts an optional +// list of HoldingsAuthInstruments which can be used to specify a set of ISINs with their +// respective quantities. Since, the isin and quantity pairs here are optional, you can +// provide it as nil. If they're provided, authorisation is sought only +// for those instruments and otherwise, the entire holdings is presented for +// authorisation. The response contains the RequestID which can then be used to +// redirect the user in a web view. The client forms and returns the +// formed RedirectURL as well. +func (c *Client) InitiateHoldingsAuth(haps HoldingAuthParams) (HoldingsAuthResp, error) { + var ( + params = make(url.Values) + ) + + if haps.Type != "" { + params.Set("type", haps.Type) + } + + if haps.TransferType != "" { + params.Set("transfer_type", haps.TransferType) + } + + if haps.ExecDate != "" { + params.Set("exec_date", haps.ExecDate) + } + + for _, hap := range haps.Instruments { + params.Add("isin", hap.ISIN) + params.Add("quantity", fmt.Sprintf("%f", hap.Quantity)) + } + + var resp HoldingsAuthResp + if err := c.doEnvelope(http.MethodPost, URIInitHoldingsAuth, params, nil, &resp); err != nil { + return resp, err + } + + // Form and set the URL in the response. + resp.RedirectURL = genHolAuthURL(c.apiKey, resp.RequestID) + + return resp, nil +} + +func genHolAuthURL(apiKey, reqID string) string { + return kiteBaseURI + "/connect/portfolio/authorise/holdings/" + apiKey + "/" + reqID +} diff --git a/portfolio_test.go b/portfolio_test.go index 205ad64..4c0d8b5 100644 --- a/portfolio_test.go +++ b/portfolio_test.go @@ -1,6 +1,7 @@ package kiteconnect import ( + "strings" "testing" ) @@ -39,6 +40,29 @@ func (ts *TestSuite) TestGetHoldings(t *testing.T) { t.Errorf("Error while fetching tradingsymbol in holdings. %v", err) } } + // MTF fields + if holdings[0].MTF.Quantity != 1000 { + t.Errorf("Error while fetching quantity in mtf holdings. %v", err) + } + if holdings[0].MTF.Value != 100000 { + t.Errorf("Error while fetching value in mtf holdings. %v", err) + } +} + +func (ts *TestSuite) TestGetAuctionInstruments(t *testing.T) { + t.Parallel() + auctionIns, err := ts.KiteConnect.GetAuctionInstruments() + if err != nil { + t.Errorf("Error while fetching auction instrument : %v", err) + } + for _, ins := range auctionIns { + if ins.AuctionNumber == "" { + t.Errorf("Error while retrieving auction number from the auction instruments list : %v", err) + } + if ins.Quantity == 0 { + t.Errorf("Error while retrieving auction qty from the auction instruments list : %v", err) + } + } } func (ts *TestSuite) TestConvertPosition(t *testing.T) { @@ -50,10 +74,142 @@ func (ts *TestSuite) TestConvertPosition(t *testing.T) { NewProduct: "test", PositionType: "test", TransactionType: "test", - Quantity: "test", + Quantity: 1, } response, err := ts.KiteConnect.ConvertPosition(params) if err != nil || response != true { t.Errorf("Error while converting position. %v", err) } } + +func (ts *TestSuite) TestGetHoldingsSummary(t *testing.T) { + t.Parallel() + summary, err := ts.KiteConnect.GetHoldingsSummary() + if err != nil { + t.Errorf("Error while fetching holdings summary. %v", err) + } + + // Verify fields are populated correctly based on mock data + if summary.TotalPnL == 0 { + t.Errorf("TotalPnL should not be zero in holdings summary") + } + if summary.TotalPnLPercent == 0 { + t.Errorf("TotalPnLPercent should not be zero in holdings summary") + } + if summary.InvestedAmount == 0 { + t.Errorf("InvestedAmount should not be zero in holdings summary") + } + if summary.CurrentValue == 0 { + t.Errorf("CurrentValue should not be zero in holdings summary") + } + + // Test specific values from mock response + if summary.TotalPnL != 6798.235950000001 { + t.Errorf("Expected TotalPnL to be 6798.235950000001, got %v", summary.TotalPnL) + } + if summary.TotalPnLPercent != 16.56312500412587 { + t.Errorf("Expected TotalPnLPercent to be 16.56312500412587, got %v", summary.TotalPnLPercent) + } + if summary.TodayPnL != -76.79999999999775 { + t.Errorf("Expected TodayPnL to be -76.79999999999775, got %v", summary.TodayPnL) + } + if summary.TodayPnLPercent != -0.16026898477945015 { + t.Errorf("Expected TodayPnLPercent to be -0.16026898477945015, got %v", summary.TodayPnLPercent) + } + if summary.InvestedAmount != 41044.40405 { + t.Errorf("Expected InvestedAmount to be 41044.40405, got %v", summary.InvestedAmount) + } + if summary.CurrentValue != 47842.64000000001 { + t.Errorf("Expected CurrentValue to be 47842.64000000001, got %v", summary.CurrentValue) + } +} + +func (ts *TestSuite) TestGetHoldingsCompact(t *testing.T) { + t.Parallel() + holdings, err := ts.KiteConnect.GetHoldingsCompact() + if err != nil { + t.Errorf("Error while fetching compact holdings. %v", err) + } + + // Verify we got holdings + if len(holdings) == 0 { + t.Errorf("Expected to receive compact holdings, got empty slice") + } + + // Test specific values from mock response + if len(holdings) != 21 { + t.Errorf("Expected 21 compact holdings, got %v", len(holdings)) + } + + // Test first holding + if holdings[0].Exchange != "NSE" { + t.Errorf("Expected first holding exchange to be NSE, got %v", holdings[0].Exchange) + } + if holdings[0].Tradingsymbol != "63MOONS" { + t.Errorf("Expected first holding tradingsymbol to be 63MOONS, got %v", holdings[0].Tradingsymbol) + } + if holdings[0].InstrumentToken != 3038209 { + t.Errorf("Expected first holding instrument token to be 3038209, got %v", holdings[0].InstrumentToken) + } + if holdings[0].Quantity != 1 { + t.Errorf("Expected first holding quantity to be 1, got %v", holdings[0].Quantity) + } + + // Test a BSE holding (index 7) + if holdings[7].Exchange != "BSE" { + t.Errorf("Expected holding[7] exchange to be BSE, got %v", holdings[7].Exchange) + } + if holdings[7].Tradingsymbol != "FEDERALBNK" { + t.Errorf("Expected holding[7] tradingsymbol to be FEDERALBNK, got %v", holdings[7].Tradingsymbol) + } + + // Test last holding + lastIdx := len(holdings) - 1 + if holdings[lastIdx].Tradingsymbol != "SBIN" { + t.Errorf("Expected last holding tradingsymbol to be SBIN, got %v", holdings[lastIdx].Tradingsymbol) + } + if holdings[lastIdx].Quantity != 32 { + t.Errorf("Expected last holding quantity to be 32, got %v", holdings[lastIdx].Quantity) + } + + // Verify all holdings have required fields + for i, holding := range holdings { + if holding.Exchange == "" { + t.Errorf("Holding at index %d has empty exchange", i) + } + if holding.Tradingsymbol == "" { + t.Errorf("Holding at index %d has empty tradingsymbol", i) + } + if holding.InstrumentToken == 0 { + t.Errorf("Holding at index %d has zero instrument token", i) + } + } +} + +func (ts *TestSuite) TestInitiateHoldingsAuth(t *testing.T) { + t.Parallel() + params := HoldingAuthParams{ + Instruments: []HoldingsAuthInstruments{ + { + ISIN: "INE002A01018", + Quantity: 50, + }, + { + ISIN: "INE009A01021", + Quantity: 50, + }, + }, + } + response, err := ts.KiteConnect.InitiateHoldingsAuth(params) + if err != nil { + t.Errorf("Error while initiating holdings auth. %v", err) + } + + if response.RequestID != "na8QgCeQm05UHG6NL9sAGRzdfSF64UdB" { + t.Errorf("Error while parsing holdings auth response") + } + + if !strings.Contains(response.RedirectURL, kiteBaseURI) { + t.Errorf("Incorrect response URL") + } +} diff --git a/ticker/ticker.go b/ticker/ticker.go index ef2e44a..a5e1d8a 100644 --- a/ticker/ticker.go +++ b/ticker/ticker.go @@ -2,71 +2,23 @@ package kiteticker import ( + "context" "encoding/binary" "encoding/json" "fmt" "math" "net/url" "sync" + "sync/atomic" "time" "github.com/gorilla/websocket" - "github.com/zerodhatech/gokiteconnect" + kiteconnect "github.com/zerodha/gokiteconnect/v4" + "github.com/zerodha/gokiteconnect/v4/models" ) -// OHLC represents OHLC packets. -type OHLC struct { - InstrumentToken uint32 - Open float64 - High float64 - Low float64 - Close float64 -} - -// LTP represents OHLC packets. -type LTP struct { - InstrumentToken uint32 - LastPrice float64 -} - -// DepthItem represents a single market depth entry. -type DepthItem struct { - Price float64 - Quantity uint32 - Orders uint32 -} - -// Depth represents a group of buy/sell market depths. -type Depth struct { - Buy [5]DepthItem - Sell [5]DepthItem -} - -// Tick represents a single packet in the market feed. -type Tick struct { - Mode Mode - InstrumentToken uint32 - IsTradable bool - IsIndex bool - - Timestamp kiteconnect.Time - LastTradeTime kiteconnect.Time - LastPrice float64 - LastTradedQuantity uint32 - TotalBuyQuantity uint32 - TotalSellQuantity uint32 - VolumeTraded uint32 - TotalBuy uint32 - TotalSell uint32 - AverageTradePrice float64 - OI uint32 - OIDayHigh uint32 - OIDayLow uint32 - NetChange float64 - - OHLC OHLC - Depth Depth -} +// Mode represents available ticker modes. +type Mode string // Ticker is a Kite connect ticker instance. type Ticker struct { @@ -77,7 +29,7 @@ type Ticker struct { url url.URL callbacks callbacks - lastPingTime time.Time + lastPingTime atomicTime autoReconnect bool reconnectMaxRetries int reconnectMaxDelay time.Duration @@ -86,14 +38,29 @@ type Ticker struct { reconnectAttempt int subscribedTokens map[uint32]Mode + + cancel context.CancelFunc } -// Mode represents available ticker modes. -type Mode string +// atomicTime is wrapper over time.Time to safely access +// an updating timestamp concurrently. +type atomicTime struct { + v atomic.Value +} + +// Get returns the current timestamp. +func (b *atomicTime) Get() time.Time { + return b.v.Load().(time.Time) +} + +// Set sets the current timestamp. +func (b *atomicTime) Set(value time.Time) { + b.v.Store(value) +} // callbacks represents callbacks available in ticker. type callbacks struct { - onTick func(Tick) + onTick func(models.Tick) onMessage func(int, []byte) onNoReconnect func(int) onReconnect func(int, time.Duration) @@ -269,7 +236,7 @@ func (t *Ticker) OnNoReconnect(f func(attempt int)) { } // OnTick callback. -func (t *Ticker) OnTick(f func(tick Tick)) { +func (t *Ticker) OnTick(f func(tick models.Tick)) { t.callbacks.onTick = f } @@ -278,89 +245,109 @@ func (t *Ticker) OnOrderUpdate(f func(order kiteconnect.Order)) { t.callbacks.onOrderUpdate = f } -// Serve starts the connection to ticker server. Since its blocking its recommended to use it in go routine. +// Serve starts the connection to ticker server. Since its blocking its +// recommended to use it in a go routine. func (t *Ticker) Serve() { + t.ServeWithContext(context.Background()) +} + +// ServeWithContext starts the connection to ticker server and additionally +// accepts a context. Since its blocking its recommended to use it in a go +// routine. +func (t *Ticker) ServeWithContext(ctx context.Context) { + ctx, cancel := context.WithCancel(ctx) + t.cancel = cancel + for { - // If reconnect attempt exceeds max then close the loop - if t.reconnectAttempt > t.reconnectMaxRetries { - t.triggerNoReconnect(t.reconnectAttempt) + select { + case <-ctx.Done(): return - } - - // If its a reconnect then wait exponentially based on reconnect attempt - if t.reconnectAttempt > 0 { - nextDelay := time.Duration(math.Pow(2, float64(t.reconnectAttempt))) * time.Second - if nextDelay > t.reconnectMaxDelay { - nextDelay = t.reconnectMaxDelay + default: + // If reconnect attempt exceeds max then close the loop + if t.reconnectAttempt > t.reconnectMaxRetries { + t.triggerNoReconnect(t.reconnectAttempt) + return } - t.triggerReconnect(t.reconnectAttempt, nextDelay) + // If its a reconnect then wait exponentially based on reconnect attempt + if t.reconnectAttempt > 0 { + nextDelay := time.Duration(math.Pow(2, float64(t.reconnectAttempt))) * time.Second + if nextDelay > t.reconnectMaxDelay || nextDelay <= 0 { + nextDelay = t.reconnectMaxDelay + } + + t.triggerReconnect(t.reconnectAttempt, nextDelay) - time.Sleep(nextDelay) + time.Sleep(nextDelay) - // Close the previous connection if exists - if t.Conn != nil { - t.Conn.Close() + // Close the previous connection if exists + if t.Conn != nil { + t.Conn.Close() + } } - } - // Prepare ticker URL with required params. - q := t.url.Query() - q.Set("api_key", t.apiKey) - q.Set("access_token", t.accessToken) - t.url.RawQuery = q.Encode() + // Prepare ticker URL with required params. + q := t.url.Query() + q.Set("api_key", t.apiKey) + q.Set("access_token", t.accessToken) + t.url.RawQuery = q.Encode() - // create a dialer - d := websocket.DefaultDialer - d.HandshakeTimeout = t.connectTimeout - conn, _, err := d.Dial(t.url.String(), nil) - if err != nil { - t.triggerError(err) + // create a dialer + d := websocket.DefaultDialer + d.HandshakeTimeout = t.connectTimeout + conn, _, err := d.Dial(t.url.String(), nil) + if err != nil { + t.triggerError(err) - // If auto reconnect is enabled then try reconneting else return error - if t.autoReconnect { - t.reconnectAttempt++ - continue + // If auto reconnect is enabled then try reconneting else return error + if t.autoReconnect { + t.reconnectAttempt++ + continue + } } - } - // Close the connection when its done. - defer t.Conn.Close() + // Close the connection when its done. + defer func() { + if t.Conn != nil { + t.Conn.Close() + } + }() - // Assign the current connection to the instance. - t.Conn = conn + // Assign the current connection to the instance. + t.Conn = conn - // Trigger connect callback. - t.triggerConnect() + // Trigger connect callback. + t.triggerConnect() - // Resubscribe to stored tokens - if t.reconnectAttempt > 0 { - t.Resubscribe() - } - - // Reset auto reconnect vars - t.reconnectAttempt = 0 + // Resubscribe to stored tokens + if t.reconnectAttempt > 0 { + t.Resubscribe() + } - // Set current time as last ping time - t.lastPingTime = time.Now() + // Reset auto reconnect vars + t.reconnectAttempt = 0 - // Set on close handler - t.Conn.SetCloseHandler(t.handleClose) + // Set current time as last ping time + t.lastPingTime.Set(time.Now()) - var wg sync.WaitGroup + // Set on close handler + t.Conn.SetCloseHandler(t.handleClose) - // Receive ticker data in a go routine. - wg.Add(1) - go t.readMessage(&wg) + var wg sync.WaitGroup - // Run watcher to check last ping time and reconnect if required - if t.autoReconnect { + // Receive ticker data in a go routine. wg.Add(1) - go t.checkConnection(&wg) - } + go t.readMessage(ctx, &wg) - // Wait for go routines to finish before doing next reconnect - wg.Wait() + // Run watcher to check last ping time and reconnect if required + if t.autoReconnect { + wg.Add(1) + go t.checkConnection(ctx, &wg) + } + + // Wait for go routines to finish before doing next reconnect + wg.Wait() + } } } @@ -369,6 +356,7 @@ func (t *Ticker) handleClose(code int, reason string) error { return nil } + // Trigger callback methods func (t *Ticker) triggerError(err error) { if t.callbacks.onError != nil { @@ -400,13 +388,14 @@ func (t *Ticker) triggerNoReconnect(attempt int) { } } + func (t *Ticker) triggerMessage(messageType int, message []byte) { if t.callbacks.onMessage != nil { t.callbacks.onMessage(messageType, message) } } -func (t *Ticker) triggerTick(tick Tick) { +func (t *Ticker) triggerTick(tick models.Tick) { if t.callbacks.onTick != nil { t.callbacks.onTick(tick) } @@ -419,57 +408,67 @@ func (t *Ticker) triggerOrderUpdate(order kiteconnect.Order) { } // Periodically check for last ping time and initiate reconnect if applicable. -func (t *Ticker) checkConnection(wg *sync.WaitGroup) { +func (t *Ticker) checkConnection(ctx context.Context, wg *sync.WaitGroup) { + defer wg.Done() for { - // Sleep before doing next check - time.Sleep(connectionCheckInterval) - - // If last ping time is greater then timeout interval then close the - // existing connection and reconnect - if time.Now().Sub(t.lastPingTime) > dataTimeoutInterval { - // Close the current connection without waiting for close frame - if t.Conn != nil { - t.Conn.Close() - } - - // Increase reconnect attempt for next reconnection - t.reconnectAttempt++ - // Mark it as done in wait group - wg.Done() + select { + case <-ctx.Done(): return + default: + // Sleep before doing next check + time.Sleep(connectionCheckInterval) + + // If last ping time is greater then timeout interval then close the + // existing connection and reconnect + if time.Since(t.lastPingTime.Get()) > dataTimeoutInterval { + // Close the current connection without waiting for close frame + if t.Conn != nil { + t.Conn.Close() + } + + // Increase reconnect attempt for next reconnection + t.reconnectAttempt++ + // Mark it as done in wait group + return + } } } } // readMessage reads the data in a loop. -func (t *Ticker) readMessage(wg *sync.WaitGroup) { +func (t *Ticker) readMessage(ctx context.Context, wg *sync.WaitGroup) { + defer wg.Done() for { - mType, msg, err := t.Conn.ReadMessage() - if err != nil { - t.triggerError(fmt.Errorf("Error reading data: %v", err)) - wg.Done() + select { + case <-ctx.Done(): return - } - - // Update last ping time to check for connection - t.lastPingTime = time.Now() - - // Trigger message. - t.triggerMessage(mType, msg) - - // If binary message then parse and send tick. - if mType == websocket.BinaryMessage { - ticks, err := t.parseBinary(msg) + default: + mType, msg, err := t.Conn.ReadMessage() if err != nil { - t.triggerError(fmt.Errorf("Error parsing data received: %v", err)) + t.triggerError(fmt.Errorf("Error reading data: %v", err)) + return } - // Trigger individual tick. - for _, tick := range ticks { - t.triggerTick(tick) + // Update last ping time to check for connection + t.lastPingTime.Set(time.Now()) + + // Trigger message. + t.triggerMessage(mType, msg) + + // If binary message then parse and send tick. + if mType == websocket.BinaryMessage { + ticks, err := t.parseBinary(msg) + if err != nil { + t.triggerError(fmt.Errorf("Error parsing data received: %v", err)) + } + + // Trigger individual tick. + for _, tick := range ticks { + t.triggerTick(tick) + } + } else if mType == websocket.TextMessage { + t.processTextMessage(msg) } - } else if mType == websocket.TextMessage { - t.processTextMessage(msg) } } } @@ -479,6 +478,13 @@ func (t *Ticker) Close() error { return t.Conn.WriteMessage(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, "")) } +// Stop the ticker instance and all the goroutines it has spawned. +func (t *Ticker) Stop() { + if t.cancel != nil { + t.cancel() + } +} + // Subscribe subscribes tick for the given list of tokens. func (t *Ticker) Subscribe(tokens []uint32) error { if len(tokens) == 0 { @@ -517,9 +523,7 @@ func (t *Ticker) Unsubscribe(tokens []uint32) error { // Remove tokens from current subscriptions for _, ts := range tokens { - if _, ok := t.subscribedTokens[ts]; ok { - delete(t.subscribedTokens, ts) - } + delete(t.subscribedTokens, ts) } return t.Conn.WriteMessage(websocket.TextMessage, out) @@ -611,12 +615,12 @@ func (t *Ticker) processTextMessage(inp []byte) { } // parseBinary parses the packets to ticks. -func (t *Ticker) parseBinary(inp []byte) ([]Tick, error) { +func (t *Ticker) parseBinary(inp []byte) ([]models.Tick, error) { pkts := t.splitPackets(inp) - var ticks []Tick + var ticks []models.Tick for _, pkt := range pkts { - tick, err := t.parsePacket(pkt) + tick, err := parsePacket(pkt) if err != nil { return nil, err } @@ -647,7 +651,7 @@ func (t *Ticker) splitPackets(inp []byte) [][]byte { } // Parse parses a tick byte array into a tick struct. -func (t *Ticker) parsePacket(b []byte) (Tick, error) { +func parsePacket(b []byte) (models.Tick, error) { var ( tk = binary.BigEndian.Uint32(b[0:4]) seg = tk & 0xFF @@ -657,40 +661,40 @@ func (t *Ticker) parsePacket(b []byte) (Tick, error) { // Mode LTP parsing if len(b) == modeLTPLength { - return Tick{ - Mode: ModeLTP, + return models.Tick{ + Mode: string(ModeLTP), InstrumentToken: tk, IsTradable: isTradable, IsIndex: isIndex, - LastPrice: t.convertPrice(seg, float64(binary.BigEndian.Uint32(b[4:8]))), + LastPrice: convertPrice(seg, float64(binary.BigEndian.Uint32(b[4:8]))), }, nil } // Parse index mode full and mode quote data if len(b) == modeQuoteIndexPacketLength || len(b) == modeFullIndexLength { var ( - lastPrice = t.convertPrice(seg, float64(binary.BigEndian.Uint32(b[4:8]))) - closePrice = t.convertPrice(seg, float64(binary.BigEndian.Uint32(b[20:24]))) + lastPrice = convertPrice(seg, float64(binary.BigEndian.Uint32(b[4:8]))) + closePrice = convertPrice(seg, float64(binary.BigEndian.Uint32(b[20:24]))) ) - tick := Tick{ - Mode: ModeQuote, + tick := models.Tick{ + Mode: string(ModeQuote), InstrumentToken: tk, IsTradable: isTradable, IsIndex: isIndex, LastPrice: lastPrice, NetChange: lastPrice - closePrice, - OHLC: OHLC{ - High: t.convertPrice(seg, float64(binary.BigEndian.Uint32(b[8:12]))), - Low: t.convertPrice(seg, float64(binary.BigEndian.Uint32(b[12:16]))), - Open: t.convertPrice(seg, float64(binary.BigEndian.Uint32(b[16:20]))), + OHLC: models.OHLC{ + High: convertPrice(seg, float64(binary.BigEndian.Uint32(b[8:12]))), + Low: convertPrice(seg, float64(binary.BigEndian.Uint32(b[12:16]))), + Open: convertPrice(seg, float64(binary.BigEndian.Uint32(b[16:20]))), Close: closePrice, }} // On mode full set timestamp if len(b) == modeFullIndexLength { - tick.Mode = ModeFull - tick.Timestamp = kiteconnect.Time{time.Unix(int64(binary.BigEndian.Uint32(b[28:32])), 0)} + tick.Mode = string(ModeFull) + tick.Timestamp = models.Time{Time: time.Unix(int64(binary.BigEndian.Uint32(b[28:32])), 0)} } return tick, nil @@ -698,38 +702,38 @@ func (t *Ticker) parsePacket(b []byte) (Tick, error) { // Parse mode quote. var ( - lastPrice = t.convertPrice(seg, float64(binary.BigEndian.Uint32(b[4:8]))) - closePrice = t.convertPrice(seg, float64(binary.BigEndian.Uint32(b[40:44]))) + lastPrice = convertPrice(seg, float64(binary.BigEndian.Uint32(b[4:8]))) + closePrice = convertPrice(seg, float64(binary.BigEndian.Uint32(b[40:44]))) ) // Mode quote data. - tick := Tick{ - Mode: ModeQuote, + tick := models.Tick{ + Mode: string(ModeQuote), InstrumentToken: tk, IsTradable: isTradable, IsIndex: isIndex, LastPrice: lastPrice, LastTradedQuantity: binary.BigEndian.Uint32(b[8:12]), - AverageTradePrice: t.convertPrice(seg, float64(binary.BigEndian.Uint32(b[12:16]))), + AverageTradePrice: convertPrice(seg, float64(binary.BigEndian.Uint32(b[12:16]))), VolumeTraded: binary.BigEndian.Uint32(b[16:20]), TotalBuyQuantity: binary.BigEndian.Uint32(b[20:24]), TotalSellQuantity: binary.BigEndian.Uint32(b[24:28]), - OHLC: OHLC{ - Open: t.convertPrice(seg, float64(binary.BigEndian.Uint32(b[28:32]))), - High: t.convertPrice(seg, float64(binary.BigEndian.Uint32(b[32:36]))), - Low: t.convertPrice(seg, float64(binary.BigEndian.Uint32(b[36:40]))), + OHLC: models.OHLC{ + Open: convertPrice(seg, float64(binary.BigEndian.Uint32(b[28:32]))), + High: convertPrice(seg, float64(binary.BigEndian.Uint32(b[32:36]))), + Low: convertPrice(seg, float64(binary.BigEndian.Uint32(b[36:40]))), Close: closePrice, }, } // Parse full mode. if len(b) == modeFullLength { - tick.Mode = ModeFull - tick.LastTradeTime = kiteconnect.Time{time.Unix(int64(binary.BigEndian.Uint32(b[44:48])), 0)} + tick.Mode = string(ModeFull) + tick.LastTradeTime = models.Time{Time: time.Unix(int64(binary.BigEndian.Uint32(b[44:48])), 0)} tick.OI = binary.BigEndian.Uint32(b[48:52]) tick.OIDayHigh = binary.BigEndian.Uint32(b[52:56]) tick.OIDayLow = binary.BigEndian.Uint32(b[56:60]) - tick.Timestamp = kiteconnect.Time{time.Unix(int64(binary.BigEndian.Uint32(b[60:64])), 0)} + tick.Timestamp = models.Time{Time: time.Unix(int64(binary.BigEndian.Uint32(b[60:64])), 0)} tick.NetChange = lastPrice - closePrice // Depth Information. @@ -740,15 +744,15 @@ func (t *Ticker) parsePacket(b []byte) (Tick, error) { ) for i := 0; i < depthItems; i++ { - tick.Depth.Buy[i] = DepthItem{ + tick.Depth.Buy[i] = models.DepthItem{ Quantity: binary.BigEndian.Uint32(b[buyPos : buyPos+4]), - Price: t.convertPrice(seg, float64(binary.BigEndian.Uint32(b[buyPos+4:buyPos+8]))), + Price: convertPrice(seg, float64(binary.BigEndian.Uint32(b[buyPos+4:buyPos+8]))), Orders: uint32(binary.BigEndian.Uint16(b[buyPos+8 : buyPos+10])), } - tick.Depth.Sell[i] = DepthItem{ + tick.Depth.Sell[i] = models.DepthItem{ Quantity: binary.BigEndian.Uint32(b[sellPos : sellPos+4]), - Price: t.convertPrice(seg, float64(binary.BigEndian.Uint32(b[sellPos+4:sellPos+8]))), + Price: convertPrice(seg, float64(binary.BigEndian.Uint32(b[sellPos+4:sellPos+8]))), Orders: uint32(binary.BigEndian.Uint16(b[sellPos+8 : sellPos+10])), } @@ -762,10 +766,14 @@ func (t *Ticker) parsePacket(b []byte) (Tick, error) { // convertPrice converts prices of stocks from paise to rupees // with varying decimals based on the segment. -func (t *Ticker) convertPrice(seg uint32, val float64) float64 { - if seg == NseCD { +func convertPrice(seg uint32, val float64) float64 { + switch seg { + case NseCD: return val / 10000000.0 + case BseCD: + return val / 10000.0 + default: + return val / 100.0 } - - return val / 100.0 } + diff --git a/ticker/ticker_test.go b/ticker/ticker_test.go new file mode 100644 index 0000000..af45a7a --- /dev/null +++ b/ticker/ticker_test.go @@ -0,0 +1,114 @@ +package kiteticker + +import ( + "encoding/base64" + "io/ioutil" + "testing" + "time" + + "github.com/stretchr/testify/require" + "github.com/zerodha/gokiteconnect/v4/models" +) + +func TestParseTick(t *testing.T) { + tt := []struct { + name string + pkt []byte + expTick models.Tick + }{ + { + name: "quote packet", + pkt: loadPacket(t, "../mock_responses/ticker_quote.packet"), + expTick: models.Tick{ + Mode: "quote", + InstrumentToken: 408065, + IsTradable: true, + IsIndex: false, + Timestamp: models.Time{}, + LastTradeTime: models.Time{}, + LastPrice: 1573.15, + LastTradedQuantity: 1, + TotalBuyQuantity: 256511, + TotalSellQuantity: 360503, + VolumeTraded: 1175986, + TotalBuy: 0, + TotalSell: 0, + AverageTradePrice: 1570.33, + OI: 0, + OIDayHigh: 0, + OIDayLow: 0, + NetChange: 0, + OHLC: models.OHLC{ + Open: 1569.15, + High: 1575, + Low: 1561.05, + Close: 1567.8, + }, + Depth: models.Depth{}, + }, + }, + { + name: "full packet", + pkt: loadPacket(t, "../mock_responses/ticker_full.packet"), + expTick: models.Tick{ + Mode: "full", + InstrumentToken: 408065, + IsTradable: true, + IsIndex: false, + Timestamp: models.Time{Time: time.Unix(1625461887, 0)}, + LastTradeTime: models.Time{Time: time.Unix(1625461887, 0)}, + LastPrice: 1573.7, + LastTradedQuantity: 7, + TotalBuyQuantity: 256443, + TotalSellQuantity: 363009, + VolumeTraded: 1192471, + TotalBuy: 0, + TotalSell: 0, + AverageTradePrice: 1570.37, + OI: 0, + OIDayHigh: 0, + OIDayLow: 0, + NetChange: 5.900000000000091, + OHLC: models.OHLC{ + Open: 1569.15, + High: 1575, + Low: 1561.05, + Close: 1567.8, + }, + Depth: models.Depth{ + Buy: [5]models.DepthItem{ + {Price: 1573.4, Quantity: 5, Orders: 1}, + {Price: 1573, Quantity: 140, Orders: 2}, + {Price: 1572.95, Quantity: 2, Orders: 1}, + {Price: 1572.9, Quantity: 219, Orders: 7}, + {Price: 1572.85, Quantity: 50, Orders: 1}, + }, + Sell: [5]models.DepthItem{ + {Price: 1573.7, Quantity: 172, Orders: 3}, + {Price: 1573.75, Quantity: 44, Orders: 3}, + {Price: 1573.85, Quantity: 302, Orders: 3}, + {Price: 1573.9, Quantity: 141, Orders: 2}, + {Price: 1573.95, Quantity: 724, Orders: 5}, + }, + }, + }, + }, + } + + for _, tc := range tt { + tick, err := parsePacket([]byte(tc.pkt)) + require.Nil(t, err) + + require.Equal(t, tc.expTick, tick) + } +} + +func loadPacket(t *testing.T, fname string) []byte { + file, err := ioutil.ReadFile(fname) + require.Nil(t, err) + + pkt, err := base64.StdEncoding.DecodeString(string(file)) + require.Nil(t, err) + + return pkt +} diff --git a/user.go b/user.go index 4c21cf4..dc1d944 100644 --- a/user.go +++ b/user.go @@ -5,16 +5,24 @@ import ( "fmt" "net/http" "net/url" + + "github.com/zerodha/gokiteconnect/v4/models" ) // UserSession represents the response after a successful authentication. type UserSession struct { UserProfile - UserSessionTokens - APIKey string `json:"api_key"` - PublicToken string `json:"public_token"` - LoginTime Time `json:"login_time"` + UserID string `json:"user_id"` + APIKey string `json:"api_key"` + PublicToken string `json:"public_token"` + AccessToken string `json:"access_token"` + RefreshToken string `json:"refresh_token"` + LoginTime models.Time `json:"login_time"` + + // Deprecated: kept for backwards compatibility with v4.3.x and earlier, + // where UserSession embedded UserSessionTokens. + UserSessionTokens UserSessionTokens `json:"-"` } // UserSessionTokens represents response after renew access token. @@ -24,6 +32,14 @@ type UserSessionTokens struct { RefreshToken string `json:"refresh_token"` } +func (s *UserSession) syncLegacyTokens() { + s.UserSessionTokens = UserSessionTokens{ + UserID: s.UserID, + AccessToken: s.AccessToken, + RefreshToken: s.RefreshToken, + } +} + // Bank represents the details of a single bank account entry on a user's file. type Bank struct { Name string `json:"name"` @@ -31,20 +47,55 @@ type Bank struct { Account string `json:"account"` } +// UserMeta contains meta data of the user. +type UserMeta struct { + DematConsent string `json:"demat_consent"` +} + +// FullUserMeta contains full meta data of the user. +type FullUserMeta struct { + DematConsent string `json:"poa"` + Silo string `json:"silo"` + AccountBlocks []string `json:"account_blocks"` +} + // UserProfile represents a user's personal and financial profile. type UserProfile struct { + UserID string `json:"user_id"` UserName string `json:"user_name"` UserShortName string `json:"user_shortname"` AvatarURL string `json:"avatar_url"` UserType string `json:"user_type"` Email string `json:"email"` - Phone string `json:"phone"` Broker string `json:"broker"` + Meta UserMeta `json:"meta"` Products []string `json:"products"` OrderTypes []string `json:"order_types"` Exchanges []string `json:"exchanges"` } +type FullUserProfile struct { + UserID string `json:"user_id"` + UserName string `json:"user_name"` + AvatarURL string `json:"avatar_url"` + UserType string `json:"user_type"` + Email string `json:"email"` + Phone string `json:"phone"` + Broker string `json:"broker"` + TwoFAType string `json:"twofa_type"` + Banks []Bank `json:"bank_accounts"` + DPIDs []string `json:"dp_ids"` + Products []string `json:"products"` + OrderTypes []string `json:"order_types"` + Exchanges []string `json:"exchanges"` + PAN string `json:"pan"` + UserShortName string `json:"user_shortname"` + Tags []string `json:"tags"` + PasswordTimestamp models.Time `json:"password_timestamp"` + TwoFATimestamp models.Time `json:"twofa_timestamp"` + Meta FullUserMeta `json:"meta"` +} + // Margins represents the user margins for a segment. type Margins struct { Category string `json:"-"` @@ -56,23 +107,28 @@ type Margins struct { // AvailableMargins represents the available margins from the margins response for a single segment. type AvailableMargins struct { - AdHocMargin float64 `json:"adhoc_margin"` - Cash float64 `json:"cash"` - Collateral float64 `json:"collateral"` - IntradayPayin float64 `json:"intraday_payin"` + AdHocMargin float64 `json:"adhoc_margin"` + Cash float64 `json:"cash"` + Collateral float64 `json:"collateral"` + IntradayPayin float64 `json:"intraday_payin"` + LiveBalance float64 `json:"live_balance"` + OpeningBalance float64 `json:"opening_balance"` } // UsedMargins represents the used margins from the margins response for a single segment. type UsedMargins struct { - Debits float64 `json:"debits"` - Exposure float64 `json:"exposure"` - M2MRealised float64 `json:"m2m_realised"` - M2MUnrealised float64 `json:"m2m_unrealised"` - OptionPremium float64 `json:"option_premium"` - Payout float64 `json:"payout"` - Span float64 `json:"span"` - HoldingSales float64 `json:"holding_sales"` - Turnover float64 `json:"turnover"` + Debits float64 `json:"debits"` + Exposure float64 `json:"exposure"` + M2MRealised float64 `json:"m2m_realised"` + M2MUnrealised float64 `json:"m2m_unrealised"` + OptionPremium float64 `json:"option_premium"` + Payout float64 `json:"payout"` + Span float64 `json:"span"` + HoldingSales float64 `json:"holding_sales"` + Turnover float64 `json:"turnover"` + LiquidCollateral float64 `json:"liquid_collateral"` + StockCollateral float64 `json:"stock_collateral"` + Delivery float64 `json:"delivery"` } // AllMargins contains both equity and commodity margins. @@ -99,9 +155,12 @@ func (c *Client) GenerateSession(requestToken string, apiSecret string) (UserSes var session UserSession err := c.doEnvelope(http.MethodPost, URIUserSession, params, nil, &session) + if err == nil { + session.syncLegacyTokens() + } // Set accessToken on successful session retrieve - if err != nil && session.AccessToken != "" { + if err == nil && session.AccessToken != "" { c.SetAccessToken(session.AccessToken) } @@ -145,7 +204,7 @@ func (c *Client) RenewAccessToken(refreshToken string, apiSecret string) (UserSe err := c.doEnvelope(http.MethodPost, URIUserSessionRenew, params, nil, &session) // Set accessToken on successful session retrieve - if err != nil && session.AccessToken != "" { + if err == nil && session.AccessToken != "" { c.SetAccessToken(session.AccessToken) } @@ -164,6 +223,13 @@ func (c *Client) GetUserProfile() (UserProfile, error) { return userProfile, err } +// GetFullUserProfile gets full user profile. +func (c *Client) GetFullUserProfile() (FullUserProfile, error) { + var fUserProfile FullUserProfile + err := c.doEnvelope(http.MethodGet, URIFullUserProfile, nil, nil, &fUserProfile) + return fUserProfile, err +} + // GetUserMargins gets all user margins. func (c *Client) GetUserMargins() (AllMargins, error) { var allUserMargins AllMargins diff --git a/user_test.go b/user_test.go index e7366de..6fcd7d9 100644 --- a/user_test.go +++ b/user_test.go @@ -7,11 +7,19 @@ import ( func (ts *TestSuite) TestGetUserProfile(t *testing.T) { t.Parallel() profile, err := ts.KiteConnect.GetUserProfile() - if err != nil || profile.Email == "" { + if err != nil || profile.Email == "" || profile.UserID == "" { t.Errorf("Error while reading user profile. Error: %v", err) } } +func (ts *TestSuite) TestGetFullUserProfile(t *testing.T) { + t.Parallel() + fullProfile, err := ts.KiteConnect.GetFullUserProfile() + if err != nil || fullProfile.Email == "" || fullProfile.UserID == "" { + t.Errorf("Error while reading full user profile. Error: %v", err) + } +} + func (ts *TestSuite) TestGetUserMargins(t *testing.T) { t.Parallel() margins, err := ts.KiteConnect.GetUserMargins() @@ -35,3 +43,49 @@ func (ts *TestSuite) TestGetUserSegmentMargins(t *testing.T) { t.Errorf("Incorrect segment margin values.") } } + +func (ts *TestSuite) TestGenerateSessionSetsAccessToken(t *testing.T) { + t.Parallel() + + session, err := ts.KiteConnect.GenerateSession("test_request_token", "test_api_secret") + if err != nil { + t.Fatalf("Error while generating user session. Error: %v", err) + } + + if session.AccessToken == "" { + t.Fatal("Expected access token in generated session") + } + + if ts.KiteConnect.accessToken != session.AccessToken { + t.Errorf("Expected client access token to be set to %q, got %q", session.AccessToken, ts.KiteConnect.accessToken) + } + + if session.UserSessionTokens.AccessToken != session.AccessToken { + t.Errorf("Expected deprecated UserSessionTokens.AccessToken to mirror session.AccessToken") + } +} + +func (ts *TestSuite) TestRenewAccessTokenSetsAccessToken(t *testing.T) { + t.Parallel() + + session, err := ts.KiteConnect.RenewAccessToken("test_refresh_token", "test_api_secret") + if err != nil { + t.Fatalf("Error while renewing access token. Error: %v", err) + } + + if session.AccessToken == "" { + t.Fatal("Expected access token in renewed session") + } + + if ts.KiteConnect.accessToken != session.AccessToken { + t.Errorf("Expected client access token to be set to %q, got %q", session.AccessToken, ts.KiteConnect.accessToken) + } +} + +func (ts *TestSuite) TestInvalidateAccessToken(t *testing.T) { + t.Parallel() + sessionLogout, err := ts.KiteConnect.InvalidateAccessToken() + if err != nil || !sessionLogout == true { + t.Errorf("Error while invalidating user session. Error: %v", err) + } +} diff --git a/utils.go b/utils.go deleted file mode 100644 index 1b5da5c..0000000 --- a/utils.go +++ /dev/null @@ -1,51 +0,0 @@ -package kiteconnect - -import ( - "strings" - "time" -) - -// Time is custom time format used in all responses -type Time struct { - time.Time -} - -// List of known time formats -var ctLayouts = []string{"2006-01-02", "2006-01-02 15:04:05", "2006-01-02T15:04:05-0700"} - -// UnmarshalJSON parses JSON time string with custom time formats -func (t *Time) UnmarshalJSON(b []byte) (err error) { - var pTime time.Time - s := strings.TrimSpace(strings.Trim(string(b), "\"")) - - if len(s) == 0 || s == "null" { - t.Time = pTime - return nil - } - - // Iterate through known layouts and parse time - for _, l := range ctLayouts { - pTime, err = time.Parse(l, s) - if err == nil && !pTime.IsZero() { - break - } - } - - t.Time = pTime - return nil -} - -// UnmarshalCSV converts CSV string field internal date -func (t *Time) UnmarshalCSV(s string) (err error) { - var pTime time.Time - s = strings.TrimSpace(s) - for _, l := range ctLayouts { - pTime, err = time.Parse(l, s) - if err == nil && !pTime.IsZero() { - break - } - } - - t.Time = pTime - return nil -}