Welcome Guest, you are in: Login
CTS Futures
Home
Pricing
Market Data
FAQ
Videos

T4 Desktop
User Guide
Scripting Guide
Release Notes

Mobile and Web
T4 Mobile for Android
T4 Mobile for iOS
T4 Mobile for Browser
T4 WebTrader

Admins
T4 Admin Guide
MiFID II/MiFIR

Developers
API 4.7 Guide
FIX API


Original text


Original text


}

Page History: RTD

Compare Page Revisions



« Older Revision - Back to Page History - Newer Revision »


Page Revision: 2021/11/03 15:44


T4 supports sending data via RTD to Microsoft Excel. RTD is a newer protocol than DDE and offers better performance and reliability. RTD does not require a quote board to be open in T4 in order to stream data. It only requires T4 to be running and the proper data subscriptions to be in place for the T4 user.

To enable RTD, go to the main properties, expand the "General" section, then choose "RTD." On the right side, check the box to "Enable RTD Server." You can change the price format in this section of the menu as well. The default is "Decimal," but hovering over the menu item will provide examples of other price display formats.

Image

Once RTD is enabled, all former "Copy DDE" buttons will show as "Copy RTD." Please note that at this time, charts do not support RTD. Charts will still provide DDE links and DDE and RTD can be used simultaneously in the same Excel sheet. From a Quote Board, click the "Copy RTD" button and then paste into Excel. Once pasted in Excel, RTD formulas can be manipulated to show different markets and data. A list of available fields is outlined at the bottom of this page.

From a Quote Board, you can right click on a market and choose "Copy Market Depth RTD Link" to copy the first 5 levels of depth to Excel. The formulas can be expanded to up to 10 levels of depth after being added to Excel by altering the RTD code in each cell.

At the moment, order entry and revisions are not available via RTD. The following Quote Board columns are not yet supported with RTD:

Account Fields

Change the ITALIC portions of the syntax to the relevant values for your purposes.

FieldSyntax
AccountID=RTD("t4", , "Account",ACCOUNT,"AccountID")
Name=RTD("t4", , "Account",ACCOUNT,"Name")
Number=RTD("t4", , "Account",ACCOUNT,"Number")
Firm=RTD("t4", , "Account",ACCOUNT,"Firm")
WarningSummary=RTD("t4", , "Account",ACCOUNT,"WarningSummary")
Balance=RTD("t4", , "Account",ACCOUNT,"Balance")
Margin=RTD("t4", , "Account",ACCOUNT,"Margin")
WorkingMargin=RTD("t4", , "Account",ACCOUNT,"WorkingMargin")
FilledMargin=RTD("t4", , "Account",ACCOUNT,"FilledMargin")
WorkingDelta=RTD("t4", , "Account",ACCOUNT,"WorkingDelta")
FilledDelta=RTD("t4", , "Account",ACCOUNT,"FilledDelta")
PL=RTD("t4", , "Account",ACCOUNT,"PL")
OvernightUPL=RTD("t4", , "Account",ACCOUNT,"OvernightUPL")
RPL=RTD("t4", , "Account",ACCOUNT,"RPL")
UPL=RTD("t4", , "Account",ACCOUNT,"UPL")
Status=RTD("t4", , "Account",ACCOUNT,"Status")
Cash=RTD("t4", , "Account",ACCOUNT,"Cash")
NetEquity=RTD("t4", , "Account",ACCOUNT,"NetEquity")
MinBalance=RTD("t4", , "Account",ACCOUNT,"MinBalance")
LossLimitPercent=RTD("t4", , "Account",ACCOUNT,"LossLimitPercent")
LossLimit=RTD("t4", , "Account",ACCOUNT,"LossLimit")
WarningMargin=RTD("t4", , "Account",ACCOUNT,"WarningMargin")
WarningPL=RTD("t4", , "Account",ACCOUNT,"WarningPL")
WarningLL=RTD("t4", , "Account",ACCOUNT,"WarningLL")
WarningWorst=RTD("t4", , "Account",ACCOUNT,"WarningWorst")
WarningThresholdMargin=RTD("t4", , "Account",ACCOUNT,"WarningThresholdMargin")
WarningThresholdPL=RTD("t4", , "Account",ACCOUNT,"WarningThresholdPL")
WarningThresholdLL=RTD("t4", , "Account",ACCOUNT,"WarningThresholdLL")
WarningThresholdWorst=RTD("t4", , "Account",ACCOUNT,"WarningThresholdWorst")
TotalWorkingOrders=RTD("t4", , "Account",ACCOUNT,"TotalWorkingOrders")
TotalWorkingQuantity=RTD("t4", , "Account",ACCOUNT,"TotalWorkingQuantity")
TotalDayBuys=RTD("t4", , "Account",ACCOUNT,"TotalDayBuys")
TotalDaySells=RTD("t4", , "Account",ACCOUNT,"TotalDaySells")
Mode=RTD("t4", , "Account",ACCOUNT,"Mode")
MaxPosition=RTD("t4", , "Account",ACCOUNT,"MaxPosition")
Premium=RTD("t4", , "Account",ACCOUNT,"Premium")
SettlementPL=RTD("t4", , "Account",ACCOUNT,"SettlementPL")
PLPercent=RTD("t4", , "Account",ACCOUNT,"PLPercent")
FeesAndCommissions=RTD("t4", , "Account",ACCOUNT,"FeesAndCommissions")
NetSettlementPL=RTD("t4", , "Account",ACCOUNT,"NetSettlementPL")
NetPL=RTD("t4", , "Account",ACCOUNT,"NetPL")
DayPL=RTD("t4", , "Account",ACCOUNT,"DayPL")
NetLiq=RTD("t4", , "Account",ACCOUNT,"NetLiq")
ImportedNetLiq=RTD("t4", , "Account",ACCOUNT,"ImportedNetLiq")
ImportedNetLiqDate=RTD("t4", , "Account",ACCOUNT,"ImportedNetLiqDate")
PrevImportedNetLiq=RTD("t4", , "Account",ACCOUNT,"PrevImportedNetLiq")
PrevimportedNetLiqDate=RTD("t4", , "Account",ACCOUNT,"PrevImportedNetLiqDate")
Favorite=RTD("t4", , "Account",ACCOUNT,"Favorite")
NetEquitySettle=RTD("t4", , "Account",ACCOUNT,"NetEquitySettle")
NetEquityMidPoint=RTD("t4", , "Account",ACCOUNT,"NetEquityMidPoint")
NetEquityTheo=RTD("t4", , "Account",ACCOUNT,"NetEquityTheo")
UPLPrevDayHeldSettleSettle=RTD("t4", , "Account",ACCOUNT,"UPLPrevDayHeldSettleSettle")
UPLCurDayHeldSettle=RTD("t4", , "Account",ACCOUNT,"UPLCurDayHeldSettle")
UPLTotalSettle=RTD("t4", , "Account",ACCOUNT,"UPLTotalSettle")
UPLPrevDayMidPrice=RTD("t4", , "Account",ACCOUNT,"UPLPrevDayMidPrice")
UPLCurDayMidPrice=RTD("t4", , "Account",ACCOUNT,"UPLCurDayMidPrice")
UPLTotalMidPrice=RTD("t4", , "Account",ACCOUNT,"UPLTotalMidPrice")
UPLPrevDayTheo=RTD("t4", , "Account",ACCOUNT,"UPLPrevDayTheo")
UPLCurDayTheo=RTD("t4", , "Account",ACCOUNT,"UPLCurDayTheo")
UPLTotalTheo=RTD("t4", , "Account",ACCOUNT,"UPLTotalTheo")
Notifications=RTD("t4", , "Account",ACCOUNT,"Notifications")

Position Fields

Change the ITALIC portions of the syntax to the relevant values for your purposes.

FieldSyntax
AverageOpenPrice=RTD("t4", , "Position",J3,E3,E4,E5,"AverageOpenPrice")
Buys=RTD("t4", , "Position",J3,E3,E4,E5,"Buys")
Sells=RTD("t4", , "Position",J3,E3,E4,E5,"Sells")
DayBuys=RTD("t4", , "Position",J3,E3,E4,E5,"DayBuys")
DaySells=RTD("t4", , "Position",J3,E3,E4,E5,"DaySells")
WorkingBuys=RTD("t4", , "Position",J3,E3,E4,E5,"WorkingBuys")
WorkingSells=RTD("t4", , "Position",J3,E3,E4,E5,"WorkingSells")
UPL=RTD("t4", , "Position",J3,E3,E4,E5,"UPL")
RPL=RTD("t4", , "Position",J3,E3,E4,E5,"RPL")
UPLTrade=RTD("t4", , "Position",J3,E3,E4,E5,"UPLTrade")
OvernightUPL=RTD("t4", , "Position",J3,E3,E4,E5,"OvernightUPL")
TotalBuyFillPrice=RTD("t4", , "Position",J3,E3,E4,E5,"TotalBuyFillPrice")
TotalSellFillPrice=RTD("t4", , "Position",J3,E3,E4,E5,"TotalSellFillPrice")
DayTotalBuyFillPrice=RTD("t4", , "Position",J3,E3,E4,E5,"DayTotalBuyFillPrice")
DayTotalSellFillPrice=RTD("t4", , "Position",J3,E3,E4,E5,"DayTotalSellFillPrice")
TotalOpenPrice=RTD("t4", , "Position",J3,E3,E4,E5,"TotalOpenPrice")
TotalOpenVolume=RTD("t4", , "Position",J3,E3,E4,E5,"TotalOpenVolume")
TotalOvernightPrice=RTD("t4", , "Position",J3,E3,E4,E5,"TotalOvernightPrice")
OvernightPosition=RTD("t4", , "Position",J3,E3,E4,E5,"OvernightPosition")
Margin=RTD("t4", , "Position",J3,E3,E4,E5,"Margin")
PrevMargin=RTD("t4", , "Position",J3,E3,E4,E5,"PrevMargin")
MP=RTD("t4", , "Position",J3,E3,E4,E5,"MP")
Premium=RTD("t4", , "Position",J3,E3,E4,E5,"Premium")
Net=RTD("t4", , "Position",J3,E3,E4,E5,"Net")
DayNet=RTD("t4", , "Position",J3,E3,E4,E5,"DayNet")
PrevNet=RTD("t4", , "Position",J3,E3,E4,E5,"PrevNet")
Worst=RTD("t4", , "Position",J3,E3,E4,E5,"Worst")
PL=RTD("t4", , "Position",J3,E3,E4,E5,"PL")
PLTrade=RTD("t4", , "Position",J3,E3,E4,E5,"PLTrade")
DayPL=RTD("t4", , "Position",J3,E3,E4,E5,"DayPL")
DayPLTrade=RTD("t4", , "Position",J3,E3,E4,E5,"DayPLTrade")
UPLUSD=RTD("t4", , "Position",J3,E3,E4,E5,"UPLUSD")
UPLTUSD=RTD("t4", , "Position",J3,E3,E4,E5,"UPLTUSD")
DayRPL=RTD("t4", , "Position",J3,E3,E4,E5,"DayRPL")
DayRPLUSD=RTD("t4", , "Position",J3,E3,E4,E5,"DayRPLUSD")
DayUPL=RTD("t4", , "Position",J3,E3,E4,E5,"DayUPL")
DayUPLUSD=RTD("t4", , "Position",J3,E3,E4,E5,"DayUPLUSD")
DayUPLTrade=RTD("t4", , "Position",J3,E3,E4,E5,"DayUPLTrade")
DayUPLTUSD=RTD("t4", , "Position",J3,E3,E4,E5,"DayUPLTUSD")
UPLPrevDayHeldSettleSettle=RTD("t4", , "Position",J3,E3,E4,E5,"UPLPrevDayHeldSettleSettle")
UPLCurDayHeldSettle=RTD("t4", , "Position",J3,E3,E4,E5,"UPLCurDayHeldSettle")
UPLTotalSettle=RTD("t4", , "Position",J3,E3,E4,E5,"UPLTotalSettle")
UPLPrevDayMidPrice=RTD("t4", , "Position",J3,E3,E4,E5,"UPLPrevDayMidPrice")
UPLCurDayMidPrice=RTD("t4", , "Position",J3,E3,E4,E5,"UPLCurDayMidPrice")
UPLTotalMidPrice=RTD("t4", , "Position",J3,E3,E4,E5,"UPLTotalMidPrice")
UPLPrevDayTheo=RTD("t4", , "Position",J3,E3,E4,E5,"UPLPrevDayTheo")
UPLCurDayTheo=RTD("t4", , "Position",J3,E3,E4,E5,"UPLCurDayTheo")
UPLTotalTheo=RTD("t4", , "Position",J3,E3,E4,E5,"UPLTotalTheo")
FeesAndCommissions=RTD("t4", , "Position",J3,E3,E4,E5,"FeesAndCommissions")
TradeDate=RTD("t4", , "Position",J3,E3,E4,E5,"TradeDate")
AverageLongPrice=RTD("t4", , "Position",J3,E3,E4,E5,"AverageLongPrice")
AverageShortPrice=RTD("t4", , "Position",J3,E3,E4,E5,"AverageShortPrice")
DayAverageLongPrice=RTD("t4", , "Position",J3,E3,E4,E5,"DayAverageLongPrice")
DayAverageShortPrice=RTD("t4", , "Position",J3,E3,E4,E5,"DayAverageShortPrice")

Market Fields

Change the ITALIC portions of the syntax to the relevant values for your purposes.

FieldSyntax
AccountID=RTD("t4", , "Account",ACCOUNT,"AccountID")
Name=RTD("t4", , "Account",ACCOUNT,"Name")
Number=RTD("t4", , "Account",ACCOUNT,"Number")
Firm=RTD("t4", , "Account",ACCOUNT,"Firm")
WarningSummary=RTD("t4", , "Account",ACCOUNT,"WarningSummary")
Balance=RTD("t4", , "Account",ACCOUNT,"Balance")
Margin=RTD("t4", , "Account",ACCOUNT,"Margin")
WorkingMargin=RTD("t4", , "Account",ACCOUNT,"WorkingMargin")
FilledMargin=RTD("t4", , "Account",ACCOUNT,"FilledMargin")
WorkingDelta=RTD("t4", , "Account",ACCOUNT,"WorkingDelta")
FilledDelta=RTD("t4", , "Account",ACCOUNT,"FilledDelta")
PL=RTD("t4", , "Account",ACCOUNT,"PL")
OvernightUPL=RTD("t4", , "Account",ACCOUNT,"OvernightUPL")
RPL=RTD("t4", , "Account",ACCOUNT,"RPL")
UPL=RTD("t4", , "Account",ACCOUNT,"UPL")
Status=RTD("t4", , "Account",ACCOUNT,"Status")
Cash=RTD("t4", , "Account",ACCOUNT,"Cash")
NetEquity=RTD("t4", , "Account",ACCOUNT,"NetEquity")
MinBalance=RTD("t4", , "Account",ACCOUNT,"MinBalance")
LossLimitPercent=RTD("t4", , "Account",ACCOUNT,"LossLimitPercent")
LossLimit=RTD("t4", , "Account",ACCOUNT,"LossLimit")
WarningMargin=RTD("t4", , "Account",ACCOUNT,"WarningMargin")
WarningPL=RTD("t4", , "Account",ACCOUNT,"WarningPL")
WarningLL=RTD("t4", , "Account",ACCOUNT,"WarningLL")
WarningWorst=RTD("t4", , "Account",ACCOUNT,"WarningWorst")
WarningThresholdMargin=RTD("t4", , "Account",ACCOUNT,"WarningThresholdMargin")
WarningThresholdPL=RTD("t4", , "Account",ACCOUNT,"WarningThresholdPL")
WarningThresholdLL=RTD("t4", , "Account",ACCOUNT,"WarningThresholdLL")
WarningThresholdWorst=RTD("t4", , "Account",ACCOUNT,"WarningThresholdWorst")
TotalWorkingOrders=RTD("t4", , "Account",ACCOUNT,"TotalWorkingOrders")
TotalWorkingQuantity=RTD("t4", , "Account",ACCOUNT,"TotalWorkingQuantity")
TotalDayBuys=RTD("t4", , "Account",ACCOUNT,"TotalDayBuys")
TotalDaySells=RTD("t4", , "Account",ACCOUNT,"TotalDaySells")
Mode=RTD("t4", , "Account",ACCOUNT,"Mode")
MaxPosition=RTD("t4", , "Account",ACCOUNT,"MaxPosition")
Premium=RTD("t4", , "Account",ACCOUNT,"Premium")
SettlementPL=RTD("t4", , "Account",ACCOUNT,"SettlementPL")
PLPercent=RTD("t4", , "Account",ACCOUNT,"PLPercent")
FeesAndCommissions=RTD("t4", , "Account",ACCOUNT,"FeesAndCommissions")
NetSettlementPL=RTD("t4", , "Account",ACCOUNT,"NetSettlementPL")
NetPL=RTD("t4", , "Account",ACCOUNT,"NetPL")
DayPL=RTD("t4", , "Account",ACCOUNT,"DayPL")
NetLiq=RTD("t4", , "Account",ACCOUNT,"NetLiq")
ImportedNetLiq=RTD("t4", , "Account",ACCOUNT,"ImportedNetLiq")

Trade how you want, where you want

support@ctsfutures.com (312) 939 0164

2 Pierce Pl, Suite 200, Itasca, IL 60143

© 2009-2023 Cunningham Trading Systems LLC All rights reserved.