Sections:

1. Connection

Connect to TT Demo server: ttConnect()

options(warn=-1)
require(rClr)
## Loading required package: rClr
## Loading the dynamic library for Microsoft .NET runtime...
## Loaded Common Language Runtime version 4.0.30319.42000
require(FdkRLib)
## Loading required package: FdkRLib
ttConnect("", "", "")
## Loading required package: data.table
## [1] 0

2. Configuration

Get symbol and currency data

ttGetSymbolData()
##        name precision contractSize contractMultiplier comission
##  1:  EURUSD         5       100000              1e+05     0.005
##  2:  EURAUD         5       100000              1e+05     0.005
##  3:  USDCAD         5       100000              1e+05     0.005
##  4:  USDCHF         5       100000              1e+05     0.005
##  5:  EURCAD         5       100000              1e+05     0.005
##  6:  CADJPY         3       100000              1e+03     0.005
##  7:  EURJPY         3       100000              1e+03     0.005
##  8:  GBPJPY         3       100000              1e+03     0.005
##  9:  USDSEK         5       100000              1e+05     0.005
## 10:  USDNOK         5       100000              1e+05     0.005
## 11:  AUDUSD         5       100000              1e+05     0.005
## 12:  CHFJPY         3       100000              1e+03     0.005
## 13:  GBPCHF         5       100000              1e+05     0.005
## 14:  NZDUSD         5       100000              1e+05     0.005
## 15:  AUDNZD         5       100000              1e+05     0.005
## 16:  EURCHF         5       100000              1e+05     0.005
## 17:  GBPUSD         5       100000              1e+05     0.005
## 18:  USDJPY         3       100000              1e+03     0.005
## 19:  AUDJPY         3       100000              1e+03     0.005
## 20:  EURGBP         5       100000              1e+05     0.005
## 21:  EURNOK         5       100000              1e+05     0.005
## 22:  EURSEK         5       100000              1e+05     0.005
## 23:  AUDCHF         5       100000              1e+05     0.005
## 24:  CADCHF         5       100000              1e+05     0.005
## 25:  GBPAUD         5       100000              1e+05     0.005
## 26:  GBPCAD         5       100000              1e+05     0.005
## 27:  GBPNZD         5       100000              1e+05     0.005
## 28:  NZDCAD         5       100000              1e+05     0.005
## 29:  NZDCHF         5       100000              1e+05     0.005
## 30:  NZDJPY         3       100000              1e+03     0.005
## 31:  EURNZD         5       100000              1e+05     0.005
## 32:  AUDCAD         5       100000              1e+05     0.005
## 33:  USDRUB         4       100000              1e+04     0.005
## 34:  SGDJPY         3       100000              1e+03     0.005
## 35:  EURDKK         5       100000              1e+05     0.005
## 36:  USDTRY         5       100000              1e+05     0.005
## 37:  USDHKD         5       100000              1e+05     0.005
## 38:  EURTRY         5       100000              1e+05     0.005
## 39:  USDSGD         5       100000              1e+05     0.005
## 40:  USDPLN         5       100000              1e+05     0.005
## 41:  HKDJPY         3       100000              1e+03     0.005
## 42:  GBPSGD         5       100000              1e+05     0.005
## 43:  NOKJPY         3       100000              1e+03     0.005
## 44:  EURPLN         5       100000              1e+05     0.005
## 45:  NZDSGD         5       100000              1e+05     0.005
## 46:  NOKSEK         5       100000              1e+05     0.005
## 47:  EURHKD         5       100000              1e+05     0.005
## 48:  USDMXN         5       100000              1e+05     0.005
## 49:  USDDKK         5       100000              1e+05     0.005
## 50:  USDCNH         4       100000              1e+04     0.005
## 51: #AUS200         1           10              1e+01     0.005
## 52:   #FCHI         1           10              1e+01     0.005
## 53:  #GDAXI         1           25              1e+01     0.005
## 54: #GDAXIm         1           10              1e+01     0.005
## 55:  #UK100         1           10              1e+01     0.005
## 56:   #J225         0         1000              1e+00     0.005
## 57:    #NDX         1          100              1e+01     0.005
## 58:    #SPX         1          250              1e+01     0.005
## 59:   #SPXm         1          100              1e+01     0.005
## 60:   #WS30         0           10              1e+00     0.005
## 61:  XBRUSD         2         1000              1e+02     0.005
## 62:  XTIUSD         2         1000              1e+02     0.005
## 63:  XNGUSD         3        10000              1e+03     0.005
## 64:  #ESX50         1           10              1e+01     0.005
## 65:  XAUUSD         2          100              1e+02     0.005
## 66:  XAGUSD         3         5000              1e+03     0.005
## 67:   #NDXm         1           10              1e+01     0.005
## 68:  #WS30m         0            1              1e+00     0.005
##        name precision contractSize contractMultiplier comission
##     marginCurrency profitCurrency limitsComission minTradeVolume
##  1:            EUR            USD           0.005         1000.0
##  2:            EUR            AUD           0.005         1000.0
##  3:            USD            CAD           0.005         1000.0
##  4:            USD            CHF           0.005         1000.0
##  5:            EUR            CAD           0.005         1000.0
##  6:            CAD            JPY           0.005         1000.0
##  7:            EUR            JPY           0.005         1000.0
##  8:            GBP            JPY           0.005         1000.0
##  9:            USD            SEK           0.005         1000.0
## 10:            USD            NOK           0.005         1000.0
## 11:            AUD            USD           0.005         1000.0
## 12:            CHF            JPY           0.005         1000.0
## 13:            GBP            CHF           0.005         1000.0
## 14:            NZD            USD           0.005         1000.0
## 15:            AUD            NZD           0.005         1000.0
## 16:            EUR            CHF           0.005         1000.0
## 17:            GBP            USD           0.005         1000.0
## 18:            USD            JPY           0.005         1000.0
## 19:            AUD            JPY           0.005         1000.0
## 20:            EUR            GBP           0.005         1000.0
## 21:            EUR            NOK           0.005         1000.0
## 22:            EUR            SEK           0.005         1000.0
## 23:            AUD            CHF           0.005         1000.0
## 24:            CAD            CHF           0.005         1000.0
## 25:            GBP            AUD           0.005         1000.0
## 26:            GBP            CAD           0.005         1000.0
## 27:            GBP            NZD           0.005         1000.0
## 28:            NZD            CAD           0.005         1000.0
## 29:            NZD            CHF           0.005         1000.0
## 30:            NZD            JPY           0.005         1000.0
## 31:            EUR            NZD           0.005         1000.0
## 32:            AUD            CAD           0.005         1000.0
## 33:            USD            RUB           0.005         1000.0
## 34:            SGD            JPY           0.005         1000.0
## 35:            EUR            DKK           0.005         1000.0
## 36:            USD            TRY           0.005         1000.0
## 37:            USD            HKD           0.005         1000.0
## 38:            EUR            TRY           0.005         1000.0
## 39:            USD            SGD           0.005         1000.0
## 40:            USD            PLN           0.005         1000.0
## 41:            HKD            JPY           0.005         1000.0
## 42:            GBP            SGD           0.005         1000.0
## 43:            NOK            JPY           0.005         1000.0
## 44:            EUR            PLN           0.005         1000.0
## 45:            NZD            SGD           0.005         1000.0
## 46:            NOK            SEK           0.005         1000.0
## 47:            EUR            HKD           0.005         1000.0
## 48:            USD            MXN           0.005         1000.0
## 49:            USD            DKK           0.005         1000.0
## 50:            USD            CNH           0.005         1000.0
## 51:            ASX            AUD           0.005            1.0
## 52:            CAC            EUR           0.005            1.0
## 53:            DAX            EUR           0.005            2.5
## 54:            DA1            EUR           0.005            1.0
## 55:            UKX            GBP           0.005            1.0
## 56:            NKY            JPY           0.005          100.0
## 57:            NDX            USD           0.005           10.0
## 58:            SPX            USD           0.005           25.0
## 59:            SP1            USD           0.005           10.0
## 60:            DJI            USD           0.005            1.0
## 61:            XBR            USD           0.005           10.0
## 62:            XTI            USD           0.005           10.0
## 63:            XNG            USD           0.005         1000.0
## 64:            ESX            EUR           0.005            1.0
## 65:            XAU            USD           0.005            1.0
## 66:            XAG            USD           0.005           50.0
## 67:            ND1            USD           0.005            1.0
## 68:            DJ1            USD           0.005            0.1
##     marginCurrency profitCurrency limitsComission minTradeVolume
##     maxTradeVolume   swapLong swapShort
##  1:        1.0e+08   -1.96000   0.27000
##  2:        1.0e+08  -13.84416   3.97403
##  3:        1.0e+08   -3.81481   0.83951
##  4:        1.0e+08    0.98148  -3.88889
##  5:        1.0e+08   -6.02469   1.53086
##  6:        1.0e+08    0.79012  -3.43210
##  7:        1.0e+08   -1.97531   0.18519
##  8:        1.0e+08    0.81481  -4.41975
##  9:        1.0e+08    3.41667 -18.83333
## 10:        1.0e+08  -45.69231  11.76923
## 11:        1.0e+08    1.78000  -6.36000
## 12:        1.0e+08   -5.17284   1.25926
## 13:        1.0e+08    2.24074  -8.17593
## 14:        1.0e+08    2.61000  -9.33000
## 15:        1.0e+08   -6.57143   1.28571
## 16:        1.0e+08    0.67593  -3.09259
## 17:        1.0e+08    0.50000  -3.09000
## 18:        1.0e+08   -0.24691  -1.03704
## 19:        1.0e+08    2.29630  -8.17284
## 20:        1.0e+08   -2.32692   0.52564
## 21:        1.0e+08  -62.07692  16.84615
## 22:        1.0e+08    0.00000  -9.66667
## 23:        1.0e+08    2.52780  -8.54630
## 24:        1.0e+08    1.44444  -5.09259
## 25:        1.0e+08  -13.67532   3.66234
## 26:        1.0e+08   -3.11111   0.38272
## 27:        1.0e+08  -26.48571   7.22857
## 28:        1.0e+08    2.48148  -9.29630
## 29:        1.0e+08    3.21296 -11.02778
## 30:        1.0e+08    3.32099 -11.80247
## 31:        1.0e+08  -23.50000   6.68571
## 32:        1.0e+08    1.37040  -5.38270
## 33:        1.0e+08 -305.33330  93.94444
## 34:        1.0e+08   -0.40741  -0.54321
## 35:        1.0e+08    9.66667 -36.66667
## 36:        1.0e+08 -124.78380  39.16216
## 37:        1.0e+08   -2.00000  -6.00000
## 38:        1.0e+08 -144.45950  45.40541
## 39:        1.0e+08   -0.36486  -1.02703
## 40:        1.0e+08  -22.88889   5.66667
## 41:        1.0e+08   -0.07407  -0.09877
## 42:        1.0e+08    0.83784  -4.67568
## 43:        1.0e+08    0.25926  -1.00000
## 44:        1.0e+08  -30.88889   8.11111
## 45:        1.0e+08    3.60811 -12.85135
## 46:        1.0e+08    2.33333  -8.25000
## 47:        1.0e+08  -12.92308   1.38462
## 48:        1.0e+08 -205.66670  56.50000
## 49:        1.0e+08   11.33333 -40.80000
## 50:        1.0e+08   -6.32298   2.27950
## 51:        1.0e+04   -5.01000   1.63000
## 52:        1.0e+04   -1.46000   0.00000
## 53:        2.5e+04   -8.44000   0.00000
## 54:        1.0e+04   -3.37000   0.00000
## 55:        1.0e+04   -3.04000   1.00000
## 56:        1.0e+06   -5.13000   0.32000
## 57:        1.0e+05  -15.35000   2.25000
## 58:        2.5e+05  -18.13000   2.65000
## 59:        1.0e+05   -7.25000   1.06000
## 60:        1.0e+04   -6.24000   0.91000
## 61:        1.0e+06   -4.03000   1.27000
## 62:        1.0e+06   -3.61000   0.20000
## 63:        1.0e+07   -0.20000   0.07000
## 64:        1.0e+04   -1.05000   0.00000
## 65:        1.0e+05   -0.79000  -0.83000
## 66:        5.0e+06   -0.42400   0.06800
## 67:        1.0e+04  -15.35000   2.25000
## 68:        1.0e+03   -6.24000   0.91000
##     maxTradeVolume   swapLong swapShort
ttGetCurrencyData()
##     currency description precision sortOrder
##  1:      ASX                     5        25
##  2:      AUD                     5         6
##  3:      CAC                     5        26
##  4:      CAD                     5         7
##  5:      CHF                     5         5
##  6:      CNH                     5        10
##  7:      DA1                     5        28
##  8:      DAX                     5        27
##  9:      DJ1                     5        37
## 10:      DJI                     5        36
## 11:      DKK                     5        17
## 12:      ESX                     5        29
## 13:      EUR                     5         2
## 14:      GBP                     5         3
## 15:      HKD                     5        13
## 16:      JPY                     5         4
## 17:      MXN                     5         9
## 18:      ND1                     5        33
## 19:      NDX                     5        32
## 20:      NKY                     5        31
## 21:      NOK                     5        14
## 22:      NZD                     5         8
## 23:      PLN                     5        18
## 24:      RUB                     5        12
## 25:      SEK                     5        11
## 26:      SGD                     5        15
## 27:      SP1                     5        35
## 28:      SPX                     5        34
## 29:      TRY                     5        16
## 30:      UKX                     5        30
## 31:      USD                     5         1
## 32:      XAG                     5        19
## 33:      XAU                     5        20
## 34:      XBR                     5        38
## 35:      XNG                     5        40
## 36:      XTI                     5        39
##     currency description precision sortOrder

3. Feed history

Get 10000 bars of EURUSD symbol:

head(ttBarsHistory(“EURUSD”))

ttBarsHistory("EURUSD")
##           high     low    open   close     volume                from
##     1: 1.09820 1.09800 1.09806 1.09810  182800000 2015-07-23 12:40:00
##     2: 1.09841 1.09782 1.09822 1.09805  743161000 2015-07-23 12:39:00
##     3: 1.09903 1.09819 1.09902 1.09822  499108000 2015-07-23 12:38:00
##     4: 1.09908 1.09882 1.09902 1.09902 1143025000 2015-07-23 12:37:00
##     5: 1.09902 1.09847 1.09850 1.09902  751452000 2015-07-23 12:36:00
##    ---                                                               
##  9996: 1.10228 1.10158 1.10228 1.10190  381770000 2015-07-14 14:18:00
##  9997: 1.10243 1.10214 1.10214 1.10228  300100000 2015-07-14 14:17:00
##  9998: 1.10215 1.10204 1.10209 1.10213  453775000 2015-07-14 14:16:00
##  9999: 1.10218 1.10207 1.10212 1.10209  360200000 2015-07-14 14:15:00
## 10000: 1.10231 1.10207 1.10227 1.10212  268559000 2015-07-14 14:14:00
##                         to
##     1: 2015-07-23 12:41:00
##     2: 2015-07-23 12:40:00
##     3: 2015-07-23 12:39:00
##     4: 2015-07-23 12:38:00
##     5: 2015-07-23 12:37:00
##    ---                    
##  9996: 2015-07-14 14:19:00
##  9997: 2015-07-14 14:18:00
##  9998: 2015-07-14 14:17:00
##  9999: 2015-07-14 14:16:00
## 10000: 2015-07-14 14:15:00

Get 10000 bar quotes of EURUSD symbol:

bars = ttBarsQuotesHistory(“EURUSD”)

ttBarsQuotesHistory("EURUSD")
##        askHigh  askLow askopen askClose askVolume bidHigh  bidLow bidOpen
##     1: 1.09824 1.09803 1.09806  1.09813 298079000 1.09820 1.09800 1.09806
##     2: 1.09840 1.09783 1.09826  1.09805 829597000 1.09841 1.09782 1.09822
##     3: 1.09906 1.09820 1.09904  1.09826 454498000 1.09903 1.09819 1.09902
##     4: 1.09909 1.09883 1.09901  1.09904 433317000 1.09908 1.09882 1.09902
##     5: 1.09900 1.09852 1.09854  1.09900 826922000 1.09902 1.09847 1.09850
##    ---                                                                   
##  9996: 1.10231 1.10159 1.10231  1.10192 354997000 1.10228 1.10158 1.10228
##  9997: 1.10245 1.10215 1.10216  1.10231 271500000 1.10243 1.10214 1.10214
##  9998: 1.10216 1.10205 1.10210  1.10214 323300000 1.10215 1.10204 1.10209
##  9999: 1.10220 1.10208 1.10213  1.10210 236500000 1.10218 1.10207 1.10212
## 10000: 1.10236 1.10208 1.10229  1.10213 346201000 1.10231 1.10207 1.10227
##        bidClose  bidVolume                from                  to
##     1:  1.09809  208800000 2015-07-23 12:40:00 2015-07-23 12:41:00
##     2:  1.09805  743161000 2015-07-23 12:39:00 2015-07-23 12:40:00
##     3:  1.09822  499108000 2015-07-23 12:38:00 2015-07-23 12:39:00
##     4:  1.09902 1143025000 2015-07-23 12:37:00 2015-07-23 12:38:00
##     5:  1.09902  751452000 2015-07-23 12:36:00 2015-07-23 12:37:00
##    ---                                                            
##  9996:  1.10190  381770000 2015-07-14 14:18:00 2015-07-14 14:19:00
##  9997:  1.10228  300100000 2015-07-14 14:17:00 2015-07-14 14:18:00
##  9998:  1.10213  453775000 2015-07-14 14:16:00 2015-07-14 14:17:00
##  9999:  1.10209  360200000 2015-07-14 14:15:00 2015-07-14 14:16:00
## 10000:  1.10212  268559000 2015-07-14 14:14:00 2015-07-14 14:15:00

Get quotes

now <-as.POSIXct(Sys.time())
# 300 seconds from present
prevNow <-as.POSIXct(now-(300))

ttQuotesHistory("EURUSD", startTime = prevNow, endTime=now)
##           ask     bid          createTime
##    1: 1.09883 1.09879 2015-07-23 09:35:26
##    2: 1.09883 1.09879 2015-07-23 09:35:26
##    3: 1.09883 1.09879 2015-07-23 09:35:26
##    4: 1.09883 1.09880 2015-07-23 09:35:26
##    5: 1.09883 1.09879 2015-07-23 09:35:26
##   ---                                    
## 2391: 1.09813 1.09811 2015-07-23 09:40:26
## 2392: 1.09813 1.09810 2015-07-23 09:40:26
## 2393: 1.09813 1.09808 2015-07-23 09:40:26
## 2394: 1.09813 1.09808 2015-07-23 09:40:26
## 2395: 1.09809 1.09807 2015-07-23 09:40:26

Get quotes L2

now <-as.POSIXct(Sys.time())
# 1000 seconds from present
prevNow <-as.POSIXct(now-1000)

ttQuotesLevel2History('EURUSD', prevNow, now, depth=1)
##       volumeBid volumeAsk priceBid priceAsk          createTime
##    1:   4000000    200000  1.10145  1.10146 2015-07-23 12:23:49
##    2:     50000   1500000  1.10142  1.10143 2015-07-23 12:23:49
##    3:   1000000    200000  1.10136  1.10132 2015-07-23 12:23:49
##    4:   2050000    200000  1.10132  1.10132 2015-07-23 12:23:50
##    5:   3050000    700000  1.10130  1.10133 2015-07-23 12:23:50
##   ---                                                          
## 7932:   2200000     50000  1.09800  1.09804 2015-07-23 12:40:28
## 7933:   2200000     50000  1.09800  1.09803 2015-07-23 12:40:28
## 7934:     50000   2000000  1.09801  1.09805 2015-07-23 12:40:29
## 7935:     50000   2000000  1.09802  1.09805 2015-07-23 12:40:29
## 7936:     50000   2000000  1.09802  1.09805 2015-07-23 12:40:29
##         quoteIndex level
##    1: 1.437654e+12     1
##    2: 1.437654e+12     1
##    3: 1.437654e+12     1
##    4: 1.437654e+12     1
##    5: 1.437654e+12     1
##   ---                   
## 7932: 1.437655e+12     1
## 7933: 1.437655e+12     1
## 7934: 1.437655e+12     1
## 7935: 1.437655e+12     1
## 7936: 1.437655e+12     1

4. Trades/Trade Reports

Get trades of current account

now <-as.POSIXct(Sys.time())
#120 hours = 5 x 24 x 3600 seconds before now
prevNow <-as.POSIXct(now-(5 * 24*3600))
ttTradeRecords(prevNow, now)
## Empty data.table (0 rows) of 35 cols: AgentCommission,ClientId,CloseConversionRate,InitialVolume,Comment,Commission...

Trades in account:

# Commented as it takes to long
ttConnect("tp.st.soft-fx.eu", "100066", "123qwe!")
## [1] 0
head(ttTrades())
## Empty data.table (0 rows) of 20 cols: agentComission,tradeClientOrderId,tradeComment,created,expiration,initialVolume...

All trades

# Commented as it takes to long
ttTradeRecordAll()
##    AgentCommission ClientId CloseConversionRate InitialVolume Comment
## 1:               0                           -1                      
##    Commission     Id LeavesQuantity OpenConversionRate        OrderCreated
## 1:          0 672002              0                 -1 2015-07-09 14:10:06
##    OrderFillPrice OrderLastFillAmount OrderModified OpenPrice ClosePrice
## 1:             -1                  -1    1970-01-01         0          0
##    CloseRequestedPrice PositionClosed PositionLastQuantity
## 1:                   0     1970-01-01                    0
##    PositionLeavesQuantity PositionModified PositionOpened PositionQuantity
## 1:                      0       1970-01-01     1970-01-01                0
##    Price Quantity StopLoss Swap Symbol TakeProfit TradeRecordSide
## 1:     0        0        0    0                 0              -1
##    TradeRecordType TradeTransactionReason TradeTransactionReportType
## 1:              NA         DealerDecision         BalanceTransaction
##    TransactionAmount TransactionCurrency     TransactionTime
## 1:             1e+06                 USD 2015-07-09 14:10:06