Worksheet formulae

Simple formula

The simplest formula =RTD("quotein.rtd",, <symbol>, <field>, <feed>) and is used to return level 1 quotes. This formula is compatible with older versions.

Generic formula format

To support more complex requests QuoteLink uses a system based on passing a string of <key>= <field> pairs. For example:

"SYMBOL=IBM | TYPE=QUOTES | FIELD=LAST| FEED=IQ"

A text string like this one fully, specifies all necessary fields for a quotes request. Generally the text string is not written in a single part as above but it is built by concatenating the different pairs <key>= <field> using the RTD formula as I'll now explain:


The generic Excel RTD formulae uses the format:

= RTD("quotein.rtd",, argument1, argument2, argument3, ...)

When processing this formula Quotelink will concatenate the arguments: argument1, argument2, ... into a single text string as above. It also adds a separator '|' after each argument.
Thus both the formulae:

=RTD("quotein.rtd",, "SYMBOL=IBM | TYPE=QUOTES | FIELD=LAST| FEED=IQ")

=RTD("quotein.rtd",, "SYMBOL=", "IBM", "QUOTES=", "LAST", "FEED=", "IQ")

result in the same string request

"SYMBOL=IBM | TYPE=QUOTES | FIELD=LAST | FEED=IQ"

Since all necessary fields for a QUOTES request have been specified, it will actually get the quote into the cell.


If the terms necessary for a specific request have not been all specified the request will return the concatenation of the terms.

The resulting string can then be the input of other formulae where other fields may be appended completing the request.

This chain system allows to group common terms and then use them repeatedly in multiple quotes.

As an example suppose I'm only interested in the LAST field for a large number of symbols. Using this system I can write in a corner the common parameters to all requests in an auxiliary formula:

=RTD("quotein.com",,"TYPE=QUOTES|FIELD=LAST|FEED=IQ|SYMBOL=")

assuming that the cell containing the above formula is A1 I can now repeat the must simpler formula:

=RTD("quotein.com",,$A$1, <symbol> ) this formula will then be repeated and will concatenate A1 contents with the <symbol>



The <key>= <field> pairs necessary fields for each of the requests are the following:

LEVEL I QUOTES

TYPE=QUOTES

SYMBOL=<symbol> (optional defaults to IBM)

FIELD=<field>ex: BID, ASK, LAST, ... (optional defaults to LAST)

FEED=<feed> (optional defaults to the current feed)

SERIES (HISTORICAL and INTRADAY)

TYPE=SERIES

SYMBOL=<symbol> (optional defaults to LAST)

PERIOD=in minutes if nothing said 1, 2 ...; or in seconds if 1 s, 5 s (optional defaults to 1 minute)

FIELD=OPEN, HIGH, LOW, CLOSE, ... (optional defaults to CLOSE)

START= optional aligns the bar to the given time. (useful to start any period at any time; also used in futures only to specify the exact start of the day bar - the value should be Excel time which is the fraction of the day)

FEED=<feed> (optional defaults to current feed)

DAYS=<number of days to request>;

STREAM=<1 for on 0 for off>;

DEPTH QUOTES (futures and Level 2)

TYPE=DEPTH

SYMBOL=<symbol> (optional defaults to @ES#)

FIELD=NAME, BID, BID SIZE, ASK, ASK SIZE, (optional defaults to CLOSE)

MMID= LEVEL= groups per price ignoring MMs -1,-2,-3... for best bids +1,2,3,4 for best asks

FEED=<feed> (optional defaults to current feed (IQ or IB atm))

Stock options Chains

TYPE=LIST

WHAT=SYMBOLS

WANT=EXPIRATIONS

CLASS=IEOPTION

SYMBOL=<symbol> underlying stock

INDEX=0,1,2 ... N

FEED=<feed> (optional defaults to current feed)

Future options FOPs

TYPE=LIST

WHAT=SYMBOLS

WANT=EXPIRATIONS

CLASS=FOPTION

SYMBOL= underlying future

INDEX=0,1,2 ... N

FEED= (optional defaults to current feed) then for each expiration it is possible to get the valid strikes:

TYPE=LIST

WHAT=SYMBOLS

WANT=STRIKES

EXPIRATION=<:format YYMMDD>:

CLASS= IEOPTION or FOPTION

SYMBOL=<:symbol>

INDEX=0,1,2 ... N

FEED=<feed name> (optional defaults to current feed)

Future Chains

TYPE=LIST

WHAT=SYMBOLS

CLASS=FUTURE;

SYMBOL=<symbol>

INDEX=0,1,2 ... N

FEED=<feed> (optional defaults to current feed)

List of all fields available for a feed for instruments of the same type as _symbol_

TYPE=LIST

WHAT=FIELDS

SYMBOL=<symbol>> the symbol is used to represent its class of instrument

INDEX=0,1,2 ... N

FEED=<feed> (optional defaults to current feed)

IQFeed stats

Same information available is in IQConnect icon.

TYPE=LIST

WHAT=SYSTEM

FIELD= one of: ServerIP, ServerPort, MaxSymbols, NumberOfSymbols,ClientsConnected, SecondsSinceLastUpdate, Reconnections, AttemptedReconnections,StartTime, MarketTime, Status, IQFeedVersion, LoginID, TotalKBsRecv, KBsPerSecRecv, AvgKBsPerSecRecv, TotalKBsSent, BsPerSecSent, AvgKBsPerSecSent

FEED=<feed> (only IQ works for now)

Portfolio

FEED=feed optional (only OX or IB based Note:you can use multiple accounts from OX, IB working at the same time)

TYPE=LIST

WHAT=POSITIONS

ACCOUNT=<account> this optional ; if omitted the default account is considered

INDEX=0,1,2 ... N

FIELD=for OX one of SecurityType, PositionID, AccountID, Symbol, OXSymbol, UnderlyingSecurity, SymbolDescr, Quantity, optionmultiplier, InsertDate,PutOrCall, StrikePrice, ExpMonth, ExpYear, AccntNum, CusipNumber, CostBasis, Bid, Ask, Last, Price, DisplayInTick, DisplayDenominator, GainLoss, Value, QuoteHasData, Close, MarketId, PositionDelta

Publishing data

TYPE=PUT

SYMBOL=<symbol>

FEED=<custom feed>

FIELD=<the field to publish to >

VALUE=<value to publish>

The published value becomes available locally for all QuoteLink applications and across the LAN in LAN mode