示例#1
0
        /// <summary>
        /// Returns the Users ClientAccountId and a list of their TradingAccounts. There are no parameters for this call.
        /// </summary>
        /// <param name="callback"></param>
        /// <param name="state"></param>
        public void BeginGetClientAndTradingAccount(ApiAsyncCallback<AccountInformationResponseDTO> callback, object state)
        {
            BeginRequest(callback, state, "useraccount", "/UserAccount/ClientAndTradingAccount", "GET",
            new Dictionary<string, object>
            {

            }, TimeSpan.FromMilliseconds(0), "data");
        }
示例#2
0
        /// <summary>
        /// Delete a session. This is how you "log off" from the CIAPI.
        /// </summary>		
		/// <param name="callback"></param>
		/// <param name="userName">Username is case sensitive. May be set as a service parameter or as a request header.</param>
		/// <param name="session">The session token. May be set as a service parameter or as a request header.</param>
        /// <returns></returns>
        public void BeginDeleteSession(String userName, String session, ApiAsyncCallback<SessionDeletionResponseDTO> callback, object state)
        {
            BeginRequest(callback, state, "session","/deleteSession?userName={userName}&session={session}", "POST",new Dictionary<string, object>
                                {
									{"userName",userName},
									{"session",session},
                                }, TimeSpan.FromMilliseconds(0),"data");
        }
示例#3
0
 /// <summary>
 /// <p>Queries for a active stop limit order with a specified order id. It will return a null value if the order doesn't exist, or is not an active stop limit order.<p> <p>This uri is intended to be used to support a grid in a UI. One usage pattern is to subscribe to streaming orders, call <a onclick="dojo.hash('#service.ListActiveStopLimitOrders'); return false;" class="json-link" href="#">ListActiveStopLimitOrders</a> for the initial data to display in the grid, and call this uri when you get updates on the order stream to get the updated data in this format.</p> <p>For a more comprehensive order response, see <a onclick="dojo.hash('#service.GetOrder'); return false;" class="json-link" href="#">GetOrder</a><p>
 /// </summary>
 /// <param name="orderId">The requested order id.</param>
 /// <param name="callback"></param>
 /// <param name="state"></param>
 public void BeginGetActiveStopLimitOrder(string orderId, ApiAsyncCallback<GetActiveStopLimitOrderResponseDTO> callback, object state)
 {
     BeginRequest(callback, state, "order", "/{orderId}/activestoplimitorder", "GET",
     new Dictionary<string, object>
     {
         { "orderId", orderId}
     }, TimeSpan.FromMilliseconds(0), "default");
 }
示例#4
0
 /// <summary>
 /// Create a new session. This is how you "log on" to the CIAPI.
 /// </summary>
 /// <param name="apiLogOnRequest">The request to create a session (log on).</param>
 /// <param name="callback"></param>
 /// <param name="state"></param>
 internal virtual void BeginLogOn(ApiLogOnRequestDTO apiLogOnRequest, ApiAsyncCallback<ApiLogOnResponseDTO> callback, object state)
 {
     _client.BeginRequest(callback, state, "session", "/", "POST",
     new Dictionary<string, object>
     {
         { "apiLogOnRequest", apiLogOnRequest}
     }, TimeSpan.FromMilliseconds(0), "data");
 }
示例#5
0
 /// <summary>
 /// <p>Cancel an order. Post a <a onclick="dojo.hash('#type.CancelOrderRequestDTO'); return false;" class="json-link" href="#">CancelOrderRequestDTO</a> to the uri specified below</p>
 /// </summary>
 /// <param name="cancelOrder">The cancel order request</param>
 /// <param name="callback"></param>
 /// <param name="state"></param>
 public void BeginCancelOrder(CancelOrderRequestDTO cancelOrder, ApiAsyncCallback<ApiTradeOrderResponseDTO> callback, object state)
 {
     BeginRequest(callback, state, "order", "/cancel", "POST",
     new Dictionary<string, object>
     {
         { "cancelOrder", cancelOrder}
     }, TimeSpan.FromMilliseconds(0), "default");
 }
示例#6
0
        /// <summary>
        /// Create a new session. The is how you "log on" to the CIAPI.
        /// </summary>		
		/// <param name="callback"></param>
		/// <param name="UserName">Username is case sensitive</param>
		/// <param name="Password">Password is case sensitive</param>
        /// <returns></returns>
        public void BeginCreateSession(String UserName, String Password, ApiAsyncCallback<CreateSessionResponseDTO> callback, object state)
        {
            BeginRequest(callback, state, "session","/", "POST",new Dictionary<string, object>
                                {
									{"UserName",UserName},
									{"Password",Password},
                                }, TimeSpan.FromMilliseconds(0),"data");
        }
示例#7
0
 /// <summary>
 /// Simulates an error condition.
 /// </summary>
 /// <param name="errorCode">Simulates an error condition.</param>
 /// <param name="callback"></param>
 /// <param name="state"></param>
 public void BeginGenerateException(int errorCode, ApiAsyncCallback<ApiErrorResponseDTO> callback, object state)
 {
     BeginRequest(callback, state, "errors", "?errorCode={errorCode}", "GET",
     new Dictionary<string, object>
     {
         { "errorCode", errorCode}
     }, TimeSpan.FromMilliseconds(0), "data");
 }
 public void BeginGetUserById(ApiAsyncCallback<UsersResponse> callback, object state, int id, int? page,
                          int? pagesize, DateTimeOffset? fromdate, DateTimeOffset? todate, string min = "",
                          string max = "", string sort = "", string order = "")
 {
     BeginRequest(callback, state, "users", "/{id}?page={page}&pagesize={pagesize}&fromdate={fromdate}&todate={todate}&max={max}&min={min}&sort={sort}&order={order}&key={key}", "GET", new Dictionary<string, object>
         {
             {"id", id},
             {"page", page},
             {"fromdate", ConvertDateTimeOffsetToUnixTimestamp(fromdate)},
             {"todate", ConvertDateTimeOffsetToUnixTimestamp(todate)},
             {"todate", todate},
             {"max", max},
             {"min", min},
             {"sort", sort},
             {"order", order}
         },
                  TimeSpan.FromMinutes(1), "");
 }
示例#9
0
        /// <summary>
        /// Returns a list of Spread Betting markets filtered by market name and/or market code
        /// </summary>		
		/// <param name="callback"></param>
		/// <param name="searchByMarketName">The characters that the Spread market name should start with</param>
		/// <param name="searchByMarketCode">The characters that the Spread market code should start with (normally this is the RIC code for the market)</param>
		/// <param name="clientAccountId">The logged on user's ClientAccountId.  (This only shows you markets that you can trade on)</param>
		/// <param name="maxResults">The maximum number of markets to return.</param>
        /// <returns></returns>
        public void BeginListSpreadMarkets(String searchByMarketName, String searchByMarketCode, Int32 clientAccountId, Int32 maxResults, ApiAsyncCallback<ListSpreadMarketsResponseDTO> callback, object state)
        {
            BeginRequest(callback, state, "spread/markets","?MarketName={searchByMarketName}&MarketCode={searchByMarketCode}&ClientAccountId={clientAccountId}&MaxResults={maxResults}", "GET",new Dictionary<string, object>
                                {
									{"searchByMarketName",searchByMarketName},
									{"searchByMarketCode",searchByMarketCode},
									{"clientAccountId",clientAccountId},
									{"maxResults",maxResults},
                                }, TimeSpan.FromMilliseconds(10000),"data");
        }
示例#10
0
        /// <summary>
        /// Get a list of current news headlines
        /// </summary>		
		/// <param name="callback"></param>
		/// <param name="category">Filter headlines by category</param>
		/// <param name="maxResults">Restrict the number of headlines returned</param>
        /// <returns></returns>
        public void BeginListNewsHeadlines(String category, Int32 maxResults, ApiAsyncCallback<ListNewsHeadlinesResponseDTO> callback, object state)
        {
            BeginRequest(callback, state, "news","?Category={category}&MaxResults={maxResults}", "GET",new Dictionary<string, object>
                                {
									{"category",category},
									{"maxResults",maxResults},
                                }, TimeSpan.FromMilliseconds(10000),"data");
        }
示例#11
0
        /// <summary>
        /// Get the detail of a specific news story
        /// </summary>		
		/// <param name="callback"></param>
		/// <param name="storyId">The news story Id</param>
        /// <returns></returns>
        public void BeginGetNewsDetail(String storyId, ApiAsyncCallback<GetNewsDetailResponseDTO> callback, object state)
        {
            BeginRequest(callback, state, "news","/{storyId}", "GET",new Dictionary<string, object>
                                {
									{"storyId",storyId},
                                }, TimeSpan.FromMilliseconds(10000),"data");
        }
示例#12
0
        /// <summary>
        /// Get historic price bars in OHLC (open, high, low, close) format, suitable for plotting candlestick chartsReturns price bars in ascending order up to the current time.When there are no prices per a particular time period, no price bar is returned. Thus, it can appear that the array of price bars has "gaps", i.e. the gap between the datetime of each price bar might not be equal to interval x spanSample Urls: /market/1234/history?interval=MINUTE&span=15&pricebars=180/market/735/history?interval=HOUR&span=1&pricebars=240/market/1577/history?interval=DAY&span=1&pricebars=10
        /// </summary>		
		/// <param name="callback"></param>
		/// <param name="marketId">The marketId</param>
		/// <param name="interval">The pricebar interval</param>
		/// <param name="span">The number of each interval per pricebar.</param>
		/// <param name="priceBars">The total number of pricebars to return</param>
        /// <returns></returns>
        public void BeginGetPriceBars(String marketId, String interval, Int32 span, String priceBars, ApiAsyncCallback<GetPriceBarResponseDTO> callback, object state)
        {
            BeginRequest(callback, state, "market","/{marketId}/barhistory?interval={interval}&span={span}&pricebars={priceBars}", "GET",new Dictionary<string, object>
                                {
									{"marketId",marketId},
									{"interval",interval},
									{"span",span},
									{"priceBars",priceBars},
                                }, TimeSpan.FromMilliseconds(10000),"data");
        }
示例#13
0
        /// <summary>
        /// Get historic price ticks. Returns price ticks in ascending order up to the current time. The length of time between each tick will be different.
        /// </summary>		
		/// <param name="callback"></param>
		/// <param name="marketId">The marketId</param>
		/// <param name="priceTicks">The total number of price ticks to return</param>
        /// <returns></returns>
        public void BeginGetPriceTicks(String marketId, String priceTicks, ApiAsyncCallback<GetPriceTickResponseDTO> callback, object state)
        {
            BeginRequest(callback, state, "market","/{marketId}/tickhistory?priceticks={priceTicks}", "GET",new Dictionary<string, object>
                                {
									{"marketId",marketId},
									{"priceTicks",priceTicks},
                                }, TimeSpan.FromMilliseconds(10000),"data");
        }
示例#14
0
 public void BeginGetSites(ApiAsyncCallback<SitesResponse> callback, object state)
 {
     BeginRequest(callback, state, "sites", "/", "GET", new Dictionary<string, object> { }, TimeSpan.FromHours(1), "");
 }
示例#15
0
 /// <summary>
 /// <p>Place an order on a particular market. <p>Do not set any order id fields when requesting a new order, the platform will generate them.</p>
 /// </summary>
 /// <param name="order">The order request.</param>
 /// <param name="callback"></param>
 /// <param name="state"></param>
 public virtual void BeginOrder(NewStopLimitOrderRequestDTO order, ApiAsyncCallback<ApiTradeOrderResponseDTO> callback, object state)
 {
     _client.BeginRequest(callback, state, "order", "/newstoplimitorder", "POST",
     new Dictionary<string, object>
     {
         { "order", order}
     }, TimeSpan.FromMilliseconds(0), "trading");
 }
示例#16
0
 public void BeginGetAssociatedUsers(ApiAsyncCallback<AssociatedUsersResponse> callback, object state, Guid associationId)
 {
     BeginRequest(callback, state, "users", "/{id}/associated", "GET", new Dictionary<string, object> { { "id", associationId.ToString() } }, TimeSpan.FromMinutes(1), "");
 }
示例#17
0
        /// <summary>
        /// TODO
        /// </summary>		
		/// <param name="callback"></param>
		/// <param name="tradingAccountId">TODO</param>
		/// <param name="openOrders">TODO</param>
		/// <param name="acceptedOrders">TODO</param>
        /// <returns></returns>
        public void BeginListOrders(Int32 tradingAccountId, Boolean openOrders, Boolean acceptedOrders, ApiAsyncCallback<ListOrdersResponseDTO> callback, object state)
        {
            BeginRequest(callback, state, "order","/orders?TradingAccountId={tradingAccountId}&OpenOrders={openOrders}&AcceptedOrders={acceptedOrders}", "GET",new Dictionary<string, object>
                                {
									{"tradingAccountId",tradingAccountId},
									{"openOrders",openOrders},
									{"acceptedOrders",acceptedOrders},
                                }, TimeSpan.FromMilliseconds(0),"");
        }
示例#18
0
 /// <summary>
 /// Update a trade (for adding a stop/limit etc). Post an <a onclick="dojo.hash('#type.UpdateTradeOrderRequestDTO'); return false;" class="json-link" href="#">UpdateTradeOrderRequestDTO</a> to the uri specified below</p>
 /// </summary>
 /// <param name="update">The trade request</param>
 /// <param name="callback"></param>
 /// <param name="state"></param>
 public void BeginUpdateTrade(UpdateTradeOrderRequestDTO update, ApiAsyncCallback<ApiTradeOrderResponseDTO> callback, object state)
 {
     BeginRequest(callback, state, "order", "/updatetradeorder", "POST",
     new Dictionary<string, object>
     {
         { "update", update}
     }, TimeSpan.FromMilliseconds(0), "trading");
 }
示例#19
0
 /// <summary>
 /// <p>Update an order (for adding a stop/limit or attaching an OCO relationship). Post an <a onclick="dojo.hash('#type.UpdateStopLimitOrderRequestDTO'); return false;" class="json-link" href="#">UpdateStopLimitOrderRequestDTO</a> to the uri specified below</p>
 /// </summary>
 /// <param name="order"><p>Update an order (for adding a stop/limit or attaching an OCO relationship).  Post an <a onclick="dojo.hash('#type.UpdateStopLimitOrderRequestDTO'); return false;" class="json-link" href="#">UpdateStopLimitOrderRequestDTO</a> to the uri specified below</p></param>
 /// <param name="callback"></param>
 /// <param name="state"></param>
 public void BeginUpdateOrder(UpdateStopLimitOrderRequestDTO order, ApiAsyncCallback<ApiTradeOrderResponseDTO> callback, object state)
 {
     BeginRequest(callback, state, "order", "/updatestoplimitorder", "POST",
     new Dictionary<string, object>
     {
         { "order", order}
     }, TimeSpan.FromMilliseconds(0), "default");
 }
示例#20
0
 /// <summary>
 /// <p>Queries for a specified trading account's trade history. The result set will contain orders with a status of <b>(3 - Open, 9 - Closed)</b>, and includes <b>orders that were a trade / stop / limit order</b>.</p> <p>There's currently no corresponding GetTradeHistory (as with ListOpenPositions).</p>
 /// </summary>
 /// <param name="tradingAccountId">The trading account to get orders for.</param>
 /// <param name="maxResults">The maximum results to return.</param>
 /// <param name="callback"></param>
 /// <param name="state"></param>
 public void BeginListTradeHistory(int tradingAccountId, int maxResults, ApiAsyncCallback<ListTradeHistoryResponseDTO> callback, object state)
 {
     BeginRequest(callback, state, "order", "/tradehistory?TradingAccountId={tradingAccountId}&MaxResults={maxResults}", "GET",
     new Dictionary<string, object>
     {
         { "tradingAccountId", tradingAccountId},
         { "maxResults", maxResults}
     }, TimeSpan.FromMilliseconds(0), "default");
 }
示例#21
0
 /// <summary>
 /// <p>Queries for market information.</p>
 /// </summary>
 /// <param name="searchByMarketCode">Should the search be done by market code</param>
 /// <param name="searchByMarketName">Should the search be done by market Name</param>
 /// <param name="spreadProductType">Should the search include spread bet markets</param>
 /// <param name="cfdProductType">Should the search include CFD markets</param>
 /// <param name="binaryProductType">Should the search include binary markets</param>
 /// <param name="query">The text to search for.  Matches part of market name / code from the start.</param>
 /// <param name="maxResults">The maximum number of results to return</param>
 /// <param name="callback"></param>
 /// <param name="state"></param>
 public void BeginListMarketInformationSearch(bool searchByMarketCode, bool searchByMarketName, bool spreadProductType, bool cfdProductType, bool binaryProductType, string query, int maxResults, ApiAsyncCallback<ListMarketInformationSearchResponseDTO> callback, object state)
 {
     BeginRequest(callback, state, "market", "/informationsearch?SearchByMarketCode={searchByMarketCode}&SearchByMarketName={searchByMarketName}&SpreadProductType={spreadProductType}&CfdProductType={cfdProductType}&BinaryProductType={binaryProductType}&Query={query}&MaxResults={maxResults}", "GET",
     new Dictionary<string, object>
     {
         { "searchByMarketCode", searchByMarketCode},
         { "searchByMarketName", searchByMarketName},
         { "spreadProductType", spreadProductType},
         { "cfdProductType", cfdProductType},
         { "binaryProductType", binaryProductType},
         { "query", query},
         { "maxResults", maxResults}
     }, TimeSpan.FromMilliseconds(0), "data");
 }
示例#22
0
 /// <summary>
 /// <p>Queries for a trade / open position with a specified order id. It will return a null value if the order doesn't exist, or is not a trade / open position.</p> <p>This uri is intended to be used to support a grid in a UI. One usage pattern is to subscribe to streaming orders, call <a onclick="dojo.hash('#service.ListOpenPositions'); return false;" class="json-link" href="#">ListOpenPositions</a> for the initial data to display in the grid, and call this uri when you get updates on the order stream to get the updated data in this format.</p> <p>For a more comprehensive order response, see <a onclick="dojo.hash('#service.GetOrder'); return false;" class="json-link" href="#">GetOrder</a><p>
 /// </summary>
 /// <param name="orderId">The requested order id.</param>
 /// <param name="callback"></param>
 /// <param name="state"></param>
 public void BeginGetOpenPosition(string orderId, ApiAsyncCallback<GetOpenPositionResponseDTO> callback, object state)
 {
     BeginRequest(callback, state, "order", "/{orderId}/openposition", "GET",
     new Dictionary<string, object>
     {
         { "orderId", orderId}
     }, TimeSpan.FromMilliseconds(0), "default");
 }
示例#23
0
        /// <summary>
        /// Cancel an order
        /// </summary>		
		/// <param name="callback"></param>
		/// <param name="OrderId">The order identifier</param>
        /// <returns></returns>
        public void BeginCancelOrder(Int32 OrderId, ApiAsyncCallback<ApiTradeOrderResponseDTO> callback, object state)
        {
            BeginRequest(callback, state, "order","/cancel", "POST",new Dictionary<string, object>
                                {
									{"OrderId",OrderId},
                                }, TimeSpan.FromMilliseconds(0),"");
        }
示例#24
0
        /// <summary>
        /// TODO
        /// </summary>		
		/// <param name="callback"></param>
		/// <param name="tradingAccountId">TODO</param>
        /// <returns></returns>
        public void BeginListActiveStopLimitOrders(Int32 tradingAccountId, ApiAsyncCallback<ListActiveStopLimitOrderResponseDTO> callback, object state)
        {
            BeginRequest(callback, state, "order","/order/activestoplimitorders?TradingAccountId={tradingAccountId}", "GET",new Dictionary<string, object>
                                {
									{"tradingAccountId",tradingAccountId},
                                }, TimeSpan.FromMilliseconds(0),"");
        }
示例#25
0
        /// <summary>
        /// TODO
        /// </summary>		
		/// <param name="callback"></param>
		/// <param name="tradingAccountId">TODO</param>
        /// <returns></returns>
        public void BeginListOpenPositions(Int32 tradingAccountId, ApiAsyncCallback<ListOpenPositionsResponseDTO> callback, object state)
        {
            BeginRequest(callback, state, "order","/order/openpositions?TradingAccountId={tradingAccountId}", "GET",new Dictionary<string, object>
                                {
									{"tradingAccountId",tradingAccountId},
                                }, TimeSpan.FromMilliseconds(0),"");
        }
示例#26
0
        /// <summary>
        /// Place a trade on a particular market
        /// </summary>		
		/// <param name="callback"></param>
		/// <param name="MarketId">A market's unique identifier</param>
		/// <param name="Direction">Direction identifier for order/trade, values supported are buy or sell</param>
		/// <param name="Quantity">Size of the order/trade</param>
		/// <param name="BidPrice">Market prices are quoted as a pair (buy/sell or bid/offer),              the BidPrice is the lower of the two</param>
		/// <param name="OfferPrice">Market prices are quote as a pair (buy/sell or bid/offer),             the OfferPrice is the higher of the market price pair</param>
		/// <param name="AuditId">Unique identifier for a price tick</param>
		/// <param name="TradingAccountId">TradingAccount associated with the trade/order request</param>
        /// <returns></returns>
        public void BeginTrade(Int32 MarketId, String Direction, Decimal Quantity, Decimal BidPrice, Decimal OfferPrice, String AuditId, Int32 TradingAccountId, ApiAsyncCallback<ApiTradeOrderResponseDTO> callback, object state)
        {
            BeginRequest(callback, state, "order","/trade", "POST",new Dictionary<string, object>
                                {
									{"MarketId",MarketId},
									{"Direction",Direction},
									{"Quantity",Quantity},
									{"BidPrice",BidPrice},
									{"OfferPrice",OfferPrice},
									{"AuditId",AuditId},
									{"TradingAccountId",TradingAccountId},
                                }, TimeSpan.FromMilliseconds(0),"trading");
        }
示例#27
0
        /// <summary>
        /// TODO
        /// </summary>		
		/// <param name="callback"></param>
		/// <param name="tradingAccountId">TODO</param>
		/// <param name="maxResults">TODO</param>
        /// <returns></returns>
        public void BeginListStopLimitOrderHistory(Int32 tradingAccountId, Int32 maxResults, ApiAsyncCallback<ListStopLimitOrderHistoryResponseDTO> callback, object state)
        {
            BeginRequest(callback, state, "order","/order/stoplimitorderhistory?TradingAccountId={tradingAccountId}&MaxResults={maxResults}", "GET",new Dictionary<string, object>
                                {
									{"tradingAccountId",tradingAccountId},
									{"maxResults",maxResults},
                                }, TimeSpan.FromMilliseconds(0),"");
        }
示例#28
0
 /// <summary>
 /// <p>Get Market Information for the specified market.</p>
 /// </summary>
 /// <param name="marketId">The marketId</param>
 /// <param name="callback"></param>
 /// <param name="state"></param>
 public void BeginGetMarketInformation(string marketId, ApiAsyncCallback<GetMarketInformationResponseDTO> callback, object state)
 {
     BeginRequest(callback, state, "market", "/{marketId}/information", "GET",
     new Dictionary<string, object>
     {
         { "marketId", marketId}
     }, TimeSpan.FromMilliseconds(0), "data");
 }
示例#29
0
        /// <summary>
        /// <p>Gets all of the tags the the requesting user is allowed to see. Tags are returned in a primary / secondary hierarchy.</p>
        /// </summary>
        /// <param name="callback"></param>
        /// <param name="state"></param>
        public virtual void BeginTagLookup( ApiAsyncCallback<MarketInformationTagLookupResponseDTO> callback, object state)
        {
            _client.BeginRequest(callback, state, "market", "/market/taglookup", "GET",
            new Dictionary<string, object>
            {

            }, TimeSpan.FromMilliseconds(0), "data");
        }
示例#30
0
 /// <summary>
 /// Save Market Information for the specified list of markets.
 /// </summary>
 /// <param name="listMarketInformationRequestSaveDTO">Save Market Information for the specified list of markets.</param>
 /// <param name="callback"></param>
 /// <param name="state"></param>
 public virtual void BeginSaveMarketInformation(SaveMarketInformationRequestDTO listMarketInformationRequestSaveDTO, ApiAsyncCallback<ApiSaveMarketInformationResponseDTO> callback, object state)
 {
     _client.BeginRequest(callback, state, "market", "/market/information/save", "POST",
     new Dictionary<string, object>
     {
         { "listMarketInformationRequestSaveDTO", listMarketInformationRequestSaveDTO}
     }, TimeSpan.FromMilliseconds(0), "data");
 }