本文整理汇总了C#中System.IO.BinaryWriter.AddParameter方法的典型用法代码示例。如果您正苦于以下问题:C# BinaryWriter.AddParameter方法的具体用法?C# BinaryWriter.AddParameter怎么用?C# BinaryWriter.AddParameter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.IO.BinaryWriter
的用法示例。
在下文中一共展示了BinaryWriter.AddParameter方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Serialize
public override void Serialize(BinaryWriter outStream)
{
base.Serialize(outStream);
outStream.AddParameter(SecType);
outStream.AddParameter(Exchange);
outStream.AddParameter(Symbol);
}
示例2: reqContractDetails
/**
* @brief Requests contract information.
* This method will provide all the contracts matching the contract provided. It can also be used to retrieve complete options and futures chains. This information will be returned at EWrapper:contractDetails
* @param reqId the unique request identifier.
* @param contract the contract used as sample to query the available contracts. Typically, it will contain the Contract::Symbol, Contract::Currency, Contract::SecType, Contract::Exchange
* @sa EWrapper::contractDetails
*/
public void reqContractDetails(int reqId, Contract contract)
{
if (!CheckConnection())
return;
if (!IsEmpty(contract.SecIdType) || !IsEmpty(contract.SecId))
{
if (!CheckServerVersion(reqId, MinServerVer.SEC_ID_TYPE, " It does not support secIdType not secId attributes"))
return;
}
if (!IsEmpty(contract.TradingClass))
{
if (!CheckServerVersion(reqId, MinServerVer.TRADING_CLASS, " It does not support the TradingClass parameter when requesting contract details."))
return;
}
if (!IsEmpty(contract.PrimaryExch) && !CheckServerVersion(reqId, MinServerVer.LINKING,
" It does not support PrimaryExch parameter when requesting contract details."))
return;
int VERSION = 8;
var paramsList = new BinaryWriter(new MemoryStream());
var lengthPos = prepareBuffer(paramsList);
paramsList.AddParameter(OutgoingMessages.RequestContractData);
paramsList.AddParameter(VERSION);//version
if (serverVersion >= MinServerVer.CONTRACT_DATA_CHAIN)
{
paramsList.AddParameter(reqId);
}
if (serverVersion >= MinServerVer.CONTRACT_CONID)
{
paramsList.AddParameter(contract.ConId);
}
paramsList.AddParameter(contract.Symbol);
paramsList.AddParameter(contract.SecType);
paramsList.AddParameter(contract.LastTradeDateOrContractMonth);
paramsList.AddParameter(contract.Strike);
paramsList.AddParameter(contract.Right);
if (serverVersion >= 15)
{
paramsList.AddParameter(contract.Multiplier);
}
if (serverVersion >= MinServerVer.PRIMARYEXCH)
{
paramsList.AddParameter(contract.Exchange);
paramsList.AddParameter(contract.PrimaryExch);
}
else if (serverVersion >= MinServerVer.LINKING)
{
if (!IsEmpty(contract.PrimaryExch) && (contract.Exchange == "BEST" || contract.Exchange == "SMART"))
{
paramsList.AddParameter(contract.Exchange + ":" + contract.PrimaryExch);
}
else
{
paramsList.AddParameter(contract.Exchange);
}
}
paramsList.AddParameter(contract.Currency);
paramsList.AddParameter(contract.LocalSymbol);
if (serverVersion >= MinServerVer.TRADING_CLASS)
{
paramsList.AddParameter(contract.TradingClass);
}
if (serverVersion >= 31)
{
paramsList.AddParameter(contract.IncludeExpired);
}
if (serverVersion >= MinServerVer.SEC_ID_TYPE)
{
paramsList.AddParameter(contract.SecIdType);
paramsList.AddParameter(contract.SecId);
}
CloseAndSend(reqId, paramsList, lengthPos, EClientErrors.FAIL_SEND_REQCONTRACT);
}
示例3: placeOrder
/**
* @brief Places an order
* @param id the order's unique identifier. Use a sequential id starting with the id received at the nextValidId method.
* @param contract the order's contract
* @param order the order
* @sa nextValidId, reqAllOpenOrders, reqAutoOpenOrders, reqOpenOrders, cancelOrder, reqGlobalCancel, EWrapper::openOrder, EWrapper::orderStatus, Order, Contract
*/
public void placeOrder(int id, Contract contract, Order order)
{
if (!CheckConnection())
return;
if (!VerifyOrder(order, id, StringsAreEqual(Constants.BagSecType, contract.SecType)))
return;
if (!VerifyOrderContract(contract, id))
return;
int MsgVersion = (serverVersion < MinServerVer.NOT_HELD) ? 27 : 45;
var paramsList = new BinaryWriter(new MemoryStream());
var lengthPos = prepareBuffer(paramsList);
paramsList.AddParameter(OutgoingMessages.PlaceOrder);
paramsList.AddParameter(MsgVersion);
paramsList.AddParameter(id);
if (serverVersion >= MinServerVer.PLACE_ORDER_CONID)
{
paramsList.AddParameter(contract.ConId);
}
paramsList.AddParameter(contract.Symbol);
paramsList.AddParameter(contract.SecType);
paramsList.AddParameter(contract.LastTradeDateOrContractMonth);
paramsList.AddParameter(contract.Strike);
paramsList.AddParameter(contract.Right);
if (serverVersion >= 15)
{
paramsList.AddParameter(contract.Multiplier);
}
paramsList.AddParameter(contract.Exchange);
if (serverVersion >= 14)
{
paramsList.AddParameter(contract.PrimaryExch);
}
paramsList.AddParameter(contract.Currency);
if (serverVersion >= 2)
{
paramsList.AddParameter(contract.LocalSymbol);
}
if (serverVersion >= MinServerVer.TRADING_CLASS)
{
paramsList.AddParameter(contract.TradingClass);
}
if (serverVersion >= MinServerVer.SEC_ID_TYPE)
{
paramsList.AddParameter(contract.SecIdType);
paramsList.AddParameter(contract.SecId);
}
// paramsList.AddParameter main order fields
paramsList.AddParameter(order.Action);
if (ServerVersion >= MinServerVer.FRACTIONAL_POSITIONS)
paramsList.AddParameter(order.TotalQuantity);
else
paramsList.AddParameter((int)order.TotalQuantity);
paramsList.AddParameter(order.OrderType);
if (serverVersion < MinServerVer.ORDER_COMBO_LEGS_PRICE)
{
paramsList.AddParameter(order.LmtPrice == Double.MaxValue ? 0 : order.LmtPrice);
}
else
{
paramsList.AddParameterMax(order.LmtPrice);
}
if (serverVersion < MinServerVer.TRAILING_PERCENT)
{
paramsList.AddParameter(order.AuxPrice == Double.MaxValue ? 0 : order.AuxPrice);
}
else
{
paramsList.AddParameterMax(order.AuxPrice);
}
// paramsList.AddParameter extended order fields
paramsList.AddParameter(order.Tif);
paramsList.AddParameter(order.OcaGroup);
paramsList.AddParameter(order.Account);
paramsList.AddParameter(order.OpenClose);
paramsList.AddParameter(order.Origin);
paramsList.AddParameter(order.OrderRef);
paramsList.AddParameter(order.Transmit);
if (serverVersion >= 4)
{
paramsList.AddParameter(order.ParentId);
}
if (serverVersion >= 5)
{
//.........这里部分代码省略.........
示例4: unsubscribeFromGroupEvents
public void unsubscribeFromGroupEvents(int requestId)
{
if (!CheckConnection())
return;
if (!CheckServerVersion(MinServerVer.LINKING, " It does not support unsubscribeFromGroupEvents request."))
return;
const int VERSION = 1;
var paramsList = new BinaryWriter(new MemoryStream());
var lengthPos = prepareBuffer(paramsList);
paramsList.AddParameter(OutgoingMessages.UnsubscribeFromGroupEvents);
paramsList.AddParameter(VERSION);
paramsList.AddParameter(requestId);
CloseAndSend(paramsList, lengthPos, EClientErrors.FAIL_SEND_UNSUBSCRIBEFROMGROUPEVENTS);
}
示例5: calculateOptionPrice
/**
* @brief Calculates an option's price.
* Calculates an option's price based on the provided volatility and its underlying's price. The calculation will be return in EWrapper's tickOptionComputation callback.
* @param reqId request's unique identifier.
* @param contract the option's contract for which the price wants to be calculated.
* @param volatility hypothetical volatility.
* @param underPrice hypothetical underlying's price.
* @sa EWrapper::tickOptionComputation, cancelCalculateOptionPrice, Contract
*/
public void calculateOptionPrice(int reqId, Contract contract, double volatility, double underPrice, List<TagValue> optionPriceOptions)
{
if (!CheckConnection())
return;
if (!CheckServerVersion(MinServerVer.REQ_CALC_OPTION_PRICE,
" It does not support calculation price requests."))
return;
if (!Util.StringIsEmpty(contract.TradingClass) &&
!CheckServerVersion(MinServerVer.REQ_CALC_OPTION_PRICE, " It does not support tradingClass parameter in calculateOptionPrice."))
return;
const int version = 3;
var paramsList = new BinaryWriter(new MemoryStream());
var lengthPos = prepareBuffer(paramsList);
paramsList.AddParameter(OutgoingMessages.ReqCalcOptionPrice);
paramsList.AddParameter(version);
paramsList.AddParameter(reqId);
paramsList.AddParameter(contract.ConId);
paramsList.AddParameter(contract.Symbol);
paramsList.AddParameter(contract.SecType);
paramsList.AddParameter(contract.LastTradeDateOrContractMonth);
paramsList.AddParameter(contract.Strike);
paramsList.AddParameter(contract.Right);
paramsList.AddParameter(contract.Multiplier);
paramsList.AddParameter(contract.Exchange);
paramsList.AddParameter(contract.PrimaryExch);
paramsList.AddParameter(contract.Currency);
paramsList.AddParameter(contract.LocalSymbol);
if (serverVersion >= MinServerVer.TRADING_CLASS)
paramsList.AddParameter(contract.TradingClass);
paramsList.AddParameter(volatility);
paramsList.AddParameter(underPrice);
if (serverVersion >= MinServerVer.LINKING)
{
int tagValuesCount = optionPriceOptions == null ? 0 : optionPriceOptions.Count;
paramsList.AddParameter(tagValuesCount);
paramsList.AddParameter(TagValueListToString(optionPriceOptions));
}
CloseAndSend(reqId, paramsList, lengthPos, EClientErrors.FAIL_SEND_REQCALCOPTIONPRICE);
}
示例6: verifyAndAuthRequest
public void verifyAndAuthRequest(string apiName, string apiVersion, string opaqueIsvKey)
{
if (!CheckConnection())
return;
if (!CheckServerVersion(MinServerVer.LINKING_AUTH, " It does not support verification request."))
return;
if (!extraAuth)
{
ReportError(IncomingMessage.NotValid, EClientErrors.FAIL_SEND_VERIFYANDAUTHMESSAGE, " Intent to authenticate needs to be expressed during initial connect request.");
return;
}
const int VERSION = 1;
var paramsList = new BinaryWriter(new MemoryStream());
var lengthPos = prepareBuffer(paramsList);
paramsList.AddParameter(OutgoingMessages.VerifyAndAuthRequest);
paramsList.AddParameter(VERSION);
paramsList.AddParameter(apiName);
paramsList.AddParameter(apiVersion);
paramsList.AddParameter(opaqueIsvKey);
CloseAndSend(paramsList, lengthPos, EClientErrors.FAIL_SEND_VERIFYANDAUTHREQUEST);
}
示例7: queryDisplayGroups
public void queryDisplayGroups(int requestId)
{
if (!CheckConnection())
return;
if (!CheckServerVersion(MinServerVer.LINKING, " It does not support queryDisplayGroups request."))
return;
const int VERSION = 1;
var paramsList = new BinaryWriter(new MemoryStream());
var lengthPos = prepareBuffer(paramsList);
paramsList.AddParameter(OutgoingMessages.QueryDisplayGroups);
paramsList.AddParameter(VERSION);
paramsList.AddParameter(requestId);
CloseAndSend(paramsList, lengthPos, EClientErrors.FAIL_SEND_QUERYDISPLAYGROUPS);
}
示例8: reqHistoricalData
/**
* @brief Requests contracts' historical data.
* When requesting historical data, a finishing time and date is required along with a duration string. For example, having:
* - endDateTime: 20130701 23:59:59 GMT
* - durationStr: 3 D
* will return three days of data counting backwards from July 1st 2013 at 23:59:59 GMT resulting in all the available bars of the last three days until the date and time specified. It is possible to specify a timezone optionally. The resulting bars will be returned in EWrapper::historicalData
* @param tickerId the request's unique identifier.
* @param contract the contract for which we want to retrieve the data.
* @param endDateTime request's ending time with format yyyyMMdd HH:mm:ss {TMZ}
* @param durationString the amount of time for which the data needs to be retrieved:
* - " S (seconds)
* - " D (days)
* - " W (weeks)
* - " M (months)
* - " Y (years)
* @param barSizeSetting the size of the bar:
* - 1 sec
* - 5 secs
* - 15 secs
* - 30 secs
* - 1 min
* - 2 mins
* - 3 mins
* - 5 mins
* - 15 mins
* - 30 mins
* - 1 hour
* - 1 day
* @param whatToShow the kind of information being retrieved:
* - TRADES
* - MIDPOINT
* - BID
* - ASK
* - BID_ASK
* - HISTORICAL_VOLATILITY
* - OPTION_IMPLIED_VOLATILITY
* @param useRTH set to 0 to obtain the data which was also generated ourside of the Regular Trading Hours, set to 1 to obtain only the RTH data
* @param formatDate set to 1 to obtain the bars' time as yyyyMMdd HH:mm:ss, set to 2 to obtain it like system time format in seconds
* @sa EWrapper::historicalData
*/
public void reqHistoricalData(int tickerId, Contract contract, string endDateTime,
string durationString, string barSizeSetting, string whatToShow, int useRTH, int formatDate, List<TagValue> chartOptions)
{
if (!CheckConnection())
return;
if (!CheckServerVersion(tickerId, 16))
return;
if (!IsEmpty(contract.TradingClass) || contract.ConId > 0)
{
if (!CheckServerVersion(tickerId, MinServerVer.TRADING_CLASS, " It does not support conId nor trading class parameters when requesting historical data."))
return;
}
const int VERSION = 6;
var paramsList = new BinaryWriter(new MemoryStream());
var lengthPos = prepareBuffer(paramsList);
paramsList.AddParameter(OutgoingMessages.RequestHistoricalData);
paramsList.AddParameter(VERSION);
paramsList.AddParameter(tickerId);
if (serverVersion >= MinServerVer.TRADING_CLASS)
paramsList.AddParameter(contract.ConId);
paramsList.AddParameter(contract.Symbol);
paramsList.AddParameter(contract.SecType);
paramsList.AddParameter(contract.LastTradeDateOrContractMonth);
paramsList.AddParameter(contract.Strike);
paramsList.AddParameter(contract.Right);
paramsList.AddParameter(contract.Multiplier);
paramsList.AddParameter(contract.Exchange);
paramsList.AddParameter(contract.PrimaryExch);
paramsList.AddParameter(contract.Currency);
paramsList.AddParameter(contract.LocalSymbol);
if (serverVersion >= MinServerVer.TRADING_CLASS)
{
paramsList.AddParameter(contract.TradingClass);
}
paramsList.AddParameter(contract.IncludeExpired ? 1 : 0);
paramsList.AddParameter(endDateTime);
paramsList.AddParameter(barSizeSetting);
paramsList.AddParameter(durationString);
paramsList.AddParameter(useRTH);
paramsList.AddParameter(whatToShow);
paramsList.AddParameter(formatDate);
if (StringsAreEqual(Constants.BagSecType, contract.SecType))
{
if (contract.ComboLegs == null)
{
paramsList.AddParameter(0);
}
else
{
paramsList.AddParameter(contract.ComboLegs.Count);
//.........这里部分代码省略.........
示例9: reqMktData
/**
* @brief Requests real time market data.
* This function will return the product's market data. It is important to notice that only real time data can be delivered via the API.
* @param tickerId the request's identifier
* @param contract the Contract for which the data is being requested
* @param genericTickList comma separated ids of the available generic ticks:
* - 100 Option Volume (currently for stocks)
* - 101 Option Open Interest (currently for stocks)
* - 104 Historical Volatility (currently for stocks)
* - 106 Option Implied Volatility (currently for stocks)
* - 162 Index Future Premium
* - 165 Miscellaneous Stats
* - 221 Mark Price (used in TWS P&L computations)
* - 225 Auction values (volume, price and imbalance)
* - 233 RTVolume - contains the last trade price, last trade size, last trade time, total volume, VWAP, and single trade flag.
* - 236 Shortable
* - 256 Inventory
* - 258 Fundamental Ratios
* - 411 Realtime Historical Volatility
* - 456 IBDividends
* @param snapshot when set to true, it will provide a single snapshot of the available data. Set to false if you want to receive continuous updates.
* @sa cancelMktData, EWrapper::tickPrice, EWrapper::tickSize, EWrapper::tickString, EWrapper::tickEFP, EWrapper::tickGeneric, EWrapper::tickOption, EWrapper::tickSnapshotEnd
*/
public void reqMktData(int tickerId, Contract contract, string genericTickList, bool snapshot, List<TagValue> mktDataOptions)
{
if (!CheckConnection())
return;
if (snapshot && !CheckServerVersion(tickerId, MinServerVer.SNAPSHOT_MKT_DATA,
"It does not support snapshot market data requests."))
return;
if (contract.UnderComp != null && !CheckServerVersion(tickerId, MinServerVer.UNDER_COMP,
" It does not support delta-neutral orders"))
return;
if (contract.ConId > 0 && !CheckServerVersion(tickerId, MinServerVer.CONTRACT_CONID,
" It does not support ConId parameter"))
return;
if (!Util.StringIsEmpty(contract.TradingClass) && !CheckServerVersion(tickerId, MinServerVer.TRADING_CLASS,
" It does not support trading class parameter in reqMktData."))
return;
int version = 11;
var paramsList = new BinaryWriter(new MemoryStream());
var lengthPos = prepareBuffer(paramsList);
paramsList.AddParameter(OutgoingMessages.RequestMarketData);
paramsList.AddParameter(version);
paramsList.AddParameter(tickerId);
if (serverVersion >= MinServerVer.CONTRACT_CONID)
paramsList.AddParameter(contract.ConId);
paramsList.AddParameter(contract.Symbol);
paramsList.AddParameter(contract.SecType);
paramsList.AddParameter(contract.LastTradeDateOrContractMonth);
paramsList.AddParameter(contract.Strike);
paramsList.AddParameter(contract.Right);
if (serverVersion >= 15)
paramsList.AddParameter(contract.Multiplier);
paramsList.AddParameter(contract.Exchange);
if (serverVersion >= 14)
paramsList.AddParameter(contract.PrimaryExch);
paramsList.AddParameter(contract.Currency);
if (serverVersion >= 2)
paramsList.AddParameter(contract.LocalSymbol);
if (serverVersion >= MinServerVer.TRADING_CLASS)
paramsList.AddParameter(contract.TradingClass);
if (serverVersion >= 8 && Constants.BagSecType.Equals(contract.SecType))
{
if (contract.ComboLegs == null)
{
paramsList.AddParameter(0);
}
else
{
paramsList.AddParameter(contract.ComboLegs.Count);
for (int i = 0; i < contract.ComboLegs.Count; i++)
{
ComboLeg leg = contract.ComboLegs[i];
paramsList.AddParameter(leg.ConId);
paramsList.AddParameter(leg.Ratio);
paramsList.AddParameter(leg.Action);
paramsList.AddParameter(leg.Exchange);
}
}
}
if (serverVersion >= MinServerVer.UNDER_COMP)
{
if (contract.UnderComp != null)
{
paramsList.AddParameter(true);
paramsList.AddParameter(contract.UnderComp.ConId);
paramsList.AddParameter(contract.UnderComp.Delta);
paramsList.AddParameter(contract.UnderComp.Price);
}
else
//.........这里部分代码省略.........
示例10: reqGlobalCancel
/**
* @brief Cancels all the active orders.
* This method will cancel ALL open orders included those placed directly via the TWS.
* @sa cancelOrder
*/
public void reqGlobalCancel()
{
if (!CheckConnection())
return;
if (!CheckServerVersion(MinServerVer.REQ_GLOBAL_CANCEL, "It does not support global cancel requests."))
return;
const int VERSION = 1;
var paramsList = new BinaryWriter(new MemoryStream());
var lengthPos = prepareBuffer(paramsList);
paramsList.AddParameter(OutgoingMessages.RequestGlobalCancel);
paramsList.AddParameter(VERSION);
CloseAndSend(paramsList, lengthPos, EClientErrors.FAIL_SEND_REQGLOBALCANCEL);
}
示例11: startApi
public void startApi()
{
if (!CheckConnection())
return;
const int VERSION = 2;
var paramsList = new BinaryWriter(new MemoryStream());
var lengthPos = prepareBuffer(paramsList);
paramsList.AddParameter(OutgoingMessages.StartApi);
paramsList.AddParameter(VERSION);
paramsList.AddParameter(clientId);
if (serverVersion >= MinServerVer.OPTIONAL_CAPABILITIES)
paramsList.AddParameter(optionalCapabilities);
CloseAndSend(paramsList, lengthPos);
}
示例12: reqFundamentalData
/**
* @brief Requests the contract's Reuters' global fundamental data.
* Reuters funalmental data will be returned at EWrapper::fundamentalData
* @param reqId the request's unique identifier.
* @param contract the contract's description for which the data will be returned.
* @param reportType there are three available report types:
* - ReportSnapshot: Company overview
* - ReportsFinSummary: Financial summary
- ReportRatios: Financial ratios
- ReportsFinStatements: Financial statements
- RESC: Analyst estimates
- CalendarReport: Company calendar
* @sa EWrapper::fundamentalData
*/
public void reqFundamentalData(int reqId, Contract contract, String reportType, List<TagValue> fundamentalDataOptions)
{
if (!CheckConnection())
return;
if (!CheckServerVersion(reqId, MinServerVer.FUNDAMENTAL_DATA, " It does not support Fundamental Data requests."))
return;
if (!IsEmpty(contract.TradingClass) || contract.ConId > 0 || !IsEmpty(contract.Multiplier))
{
if (!CheckServerVersion(reqId, MinServerVer.TRADING_CLASS, ""))
return;
}
const int VERSION = 3;
var paramsList = new BinaryWriter(new MemoryStream());
var lengthPos = prepareBuffer(paramsList);
paramsList.AddParameter(OutgoingMessages.RequestFundamentalData);
paramsList.AddParameter(VERSION);
paramsList.AddParameter(reqId);
if (serverVersion >= MinServerVer.TRADING_CLASS)
{
//WARN: why are we checking the trading class and multiplier above never send them?
paramsList.AddParameter(contract.ConId);
}
paramsList.AddParameter(contract.Symbol);
paramsList.AddParameter(contract.SecType);
paramsList.AddParameter(contract.Exchange);
paramsList.AddParameter(contract.PrimaryExch);
paramsList.AddParameter(contract.Currency);
paramsList.AddParameter(contract.LocalSymbol);
paramsList.AddParameter(reportType);
if (serverVersion >= MinServerVer.LINKING)
{
int tagValuesCount = fundamentalDataOptions == null ? 0 : fundamentalDataOptions.Count;
paramsList.AddParameter(tagValuesCount);
paramsList.AddParameter(TagValueListToString(fundamentalDataOptions));
}
CloseAndSend(reqId, paramsList, lengthPos, EClientErrors.FAIL_SEND_REQFUNDDATA);
}
示例13: reqExecutions
/**
* @brief Requests all the day's executions matching the filter.
* Only the current day's executions can be retrieved. Along with the executions, the CommissionReport will also be returned. The execution details will arrive at EWrapper:execDetails
* @param reqId the request's unique identifier.
* @param filter the filter criteria used to determine which execution reports are returned.
* @sa EWrapper::execDetails, EWrapper::commissionReport, ExecutionFilter
*/
public void reqExecutions(int reqId, ExecutionFilter filter)
{
if (!CheckConnection())
return;
int VERSION = 3;
var paramsList = new BinaryWriter(new MemoryStream());
var lengthPos = prepareBuffer(paramsList);
paramsList.AddParameter(OutgoingMessages.RequestExecutions);
paramsList.AddParameter(VERSION);//version
if (serverVersion >= MinServerVer.EXECUTION_DATA_CHAIN)
{
paramsList.AddParameter(reqId);
}
//Send the execution rpt filter data
if (serverVersion >= 9)
{
paramsList.AddParameter(filter.ClientId);
paramsList.AddParameter(filter.AcctCode);
// Note that the valid format for time is "yyyymmdd-hh:mm:ss"
paramsList.AddParameter(filter.Time);
paramsList.AddParameter(filter.Symbol);
paramsList.AddParameter(filter.SecType);
paramsList.AddParameter(filter.Exchange);
paramsList.AddParameter(filter.Side);
}
CloseAndSend(reqId, paramsList, lengthPos, EClientErrors.FAIL_SEND_EXEC);
}
示例14: reqCurrentTime
/**
* @brief Requests the server's current time.
* @sa EWrapper::currentTime
*/
public void reqCurrentTime()
{
int VERSION = 1;
if (!CheckConnection())
return;
if (!CheckServerVersion(MinServerVer.CURRENT_TIME, " It does not support current time requests."))
return;
var paramsList = new BinaryWriter(new MemoryStream());
var lengthPos = prepareBuffer(paramsList);
paramsList.AddParameter(OutgoingMessages.RequestCurrentTime);
paramsList.AddParameter(VERSION);//version
CloseAndSend(paramsList, lengthPos, EClientErrors.FAIL_SEND_REQCURRTIME);
}
示例15: reqScannerSubscription
/**
* @brief Starts a subscription to market scan results based on the provided parameters.
* @param reqId the request's identifier
* @param subscription summary of the scanner subscription including its filters.
* @sa reqScannerParameters, ScannerSubscription, EWrapper::scannerData
*/
public void reqScannerSubscription(int reqId, ScannerSubscription subscription, List<TagValue> scannerSubscriptionOptions)
{
if (!CheckConnection())
return;
const int VERSION = 4;
var paramsList = new BinaryWriter(new MemoryStream());
var lengthPos = prepareBuffer(paramsList);
paramsList.AddParameter(OutgoingMessages.RequestScannerSubscription);
paramsList.AddParameter(VERSION);
paramsList.AddParameter(reqId);
paramsList.AddParameterMax(subscription.NumberOfRows);
paramsList.AddParameter(subscription.Instrument);
paramsList.AddParameter(subscription.LocationCode);
paramsList.AddParameter(subscription.ScanCode);
paramsList.AddParameterMax(subscription.AbovePrice);
paramsList.AddParameterMax(subscription.BelowPrice);
paramsList.AddParameterMax(subscription.AboveVolume);
paramsList.AddParameterMax(subscription.MarketCapAbove);
paramsList.AddParameterMax(subscription.MarketCapBelow);
paramsList.AddParameter(subscription.MoodyRatingAbove);
paramsList.AddParameter(subscription.MoodyRatingBelow);
paramsList.AddParameter(subscription.SpRatingAbove);
paramsList.AddParameter(subscription.SpRatingBelow);
paramsList.AddParameter(subscription.MaturityDateAbove);
paramsList.AddParameter(subscription.MaturityDateBelow);
paramsList.AddParameterMax(subscription.CouponRateAbove);
paramsList.AddParameterMax(subscription.CouponRateBelow);
paramsList.AddParameter(subscription.ExcludeConvertible);
if (serverVersion >= 25)
{
paramsList.AddParameterMax(subscription.AverageOptionVolumeAbove);
paramsList.AddParameter(subscription.ScannerSettingPairs);
}
if (serverVersion >= 27)
{
paramsList.AddParameter(subscription.StockTypeFilter);
}
if (serverVersion >= MinServerVer.LINKING)
{
//int tagValuesCount = scannerSubscriptionOptions == null ? 0 : scannerSubscriptionOptions.Count;
//paramsList.AddParameter(tagValuesCount);
paramsList.AddParameter(TagValueListToString(scannerSubscriptionOptions));
}
CloseAndSend(paramsList, lengthPos, EClientErrors.FAIL_SEND_REQSCANNER);
}