I have the following small sample of code that connects to TWSLink and requests some historical data:
Code: Select all
#property copyright "trade-commander.org"
#property link      "http://www.trade-commander.org/"
#include <twslink2.mqh>
#include <WinUser32.mqh>
void TWSLinkPrintEvent(int eventuid) {
  Print(GET_EVENT_VAL_I(eventuid,1), ", ",
        GET_EVENT_VAL_I(eventuid,2), ", ",
        GET_EVENT_VAL_I(eventuid,3), ", ",
        GET_EVENT_VAL_I(eventuid,4), ", ",
        GET_EVENT_VAL_D(eventuid,5), ", ",
        GET_EVENT_VAL_D(eventuid,6), ", ",
        GET_EVENT_VAL_D(eventuid,7), ", ",
        GET_EVENT_VAL_D(eventuid,8), ", ",
        A2U(GET_EVENT_VAL(eventuid,9)), ", ",
        A2U(GET_EVENT_VAL(eventuid,10)), ", ",
        A2U(GET_EVENT_VAL(eventuid,11)), ", ",
        A2U(GET_EVENT_VAL(eventuid,12)), ", ",
        GET_EVENT_VAL_D(eventuid,13), ", ",
        GET_EVENT_VAL_D(eventuid,14), ", ",
        GET_EVENT_VAL_I(eventuid,15), ", ",
        GET_EVENT_VAL_I(eventuid,16));
}
int      uidMSFT         	= 0;     // unique id for MSFT contract
int      uidOrderMSFT     = 0;     // unique id for MSFT order
int init()
{
  Print("Connecting...");
  int connect_status = CONNECT(U2A(""), 7497, 1, 1000);
  Print("Connection status: ", connect_status);
  
  if (connect_status > 0) {
    uidMSFT = REGISTER_CONTRACT(U2A("MSFT"), U2A("STK"), U2A("USD"), U2A("SMART"), U2A(""), U2A(""), U2A(""), 0.0, U2A(""), 0, 0.0); // register MSFT  	
    int res = REQ_HIST_DATA(uidMSFT, U2A("20190101 00:00:00"), U2A("20181230 00:00:00"), 19 /*1 day*/, U2A("TRADES"), 1, 1, 1);
    Print("Req Hist Data return code = ", res);
    
    do {
      int eventuid = WAIT_FOR_EVENT(1000);
      if (eventuid > 0) {
        Print("Received event: ", eventuid);
        TWSLinkPrintEvent(eventuid);
      }
    } while (eventuid > 0);
  }
  return(1);
}
void deinit()
{ 
}
 
int start()
{
  return (1);
}
Code: Select all
0	20:25:02.613	twslinkdemo LTCBTC,H4: Connecting...
0	20:25:03.974	twslinkdemo LTCBTC,H4: Connection status: 3
0	20:25:04.105	twslinkdemo LTCBTC,H4: Req Hist Data return code = 1000007
0	20:25:04.122	twslinkdemo LTCBTC,H4: Received event: 5
0	20:25:04.449	twslinkdemo LTCBTC,H4: 2147483646, 2147483646, 2147483646, 2147483646, 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368, 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368, 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368, 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368, enf, enf, enf, enf, 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368, 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368, 2147483646, 2147483646
(...)
0	20:25:19.367	twslinkdemo LTCBTC,H4: Received event: 71
0	20:25:19.580	twslinkdemo LTCBTC,H4: 2147483646, 2147483646, 2147483646, 2147483646, 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368, 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368, 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368, 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368, enf, enf, enf, enf, 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368, 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368, 2147483646, 2147483646
The TWSLink log contains the following:
Code: Select all
20190120 20:25:02:752;      3888;note;tc_win_thread;InitInstance;THREAD <CDLLControlThread> started, id=3888
20190120 20:25:03:065;      2316;warning;tcContractUidMap;apply_xml_auto_uid_offset;new uidoffset 10000 < current offset 50004. new uid offset ignored
20190120 20:25:03:070;      2316;note;coreInstance;AutoOpenDBThreads;open databases threads...
20190120 20:25:03:076;      2316;note;DBThreadWrapper;fromXML;databases xmlid=1, dsn=twslink2demo connect=1 default=1
20190120 20:25:03:083;     18496;note;tc_win_thread;InitInstance;THREAD <CDBThread> started, id=18496
20190120 20:25:03:107;     18496;warning;CDBThread;PreTranslateMessage;failed to connect to database: twslink2demo,,
20190120 20:25:03:115;      2252;note;tc_win_thread;InitInstance;THREAD <IBSocket> started, id=2252
20190120 20:25:03:124;      2316;note;tcExpFunc;CONNECT;- -7497 -1 -1000
20190120 20:25:03:130;      2252;action;TWSSocket;Connect;connecting to TWS at 127.0.0.1::7497 client id=1...
20190120 20:25:03:137;      2252;note;TMP;connect;connecting to TWS at 127.0.0.1::7497 client id=1...
20190120 20:25:03:150;      2252;note;TWSSocket;Connect;waiting connect acknowledge...
20190120 20:25:03:157;      2252;action;TWSSocket;Connect;sending client version=63
20190120 20:25:03:163;      2252;action;TWSSocket;Connect;waiting for server version...
20190120 20:25:03:190;      2252;note;TMP;OnFirstReceive;2
20190120 20:25:03:198;      2252;note;TWSSocket;OnFirstReceive;server version=76
20190120 20:25:03:206;      2252;note;TMP;OnFirstReceive;3
20190120 20:25:03:214;      2252;note;TWSSocket;OnFirstReceive;twstime=20190120 20:25:00 CET
20190120 20:25:03:221;      2252;action;TWSSocket;OnFirstReceive;sending client id=1
20190120 20:25:03:230;      2252;action;TWSSocket;FinishRequest;command [send_client_id 70] transmitted. Bytes sent=7
20190120 20:25:03:246;      2252;action;TWSSocket;OnFirstReceive;connection phase 1 completed
20190120 20:25:03:254;      2252;note;TMP;OnFirstReceive;wait for managed accounts...
20190120 20:25:03:260;      2252;note;TWSSocket;OnFirstReceive;wait for managed accounts...
20190120 20:25:03:270;      2252;note;TMP;OnFirstReceive;end
20190120 20:25:03:289;      2252;note;CAccountVals;InitAccountList start;U2504908
20190120 20:25:03:295;      2252;note;CAccountVals;InitAccountList;account detected: acc_1  FA-type=no nbr=0
20190120 20:25:03:302;      2252;note;TMP;PostConnection;1
20190120 20:25:03:309;      2252;note;TMP;PostConnection;2
20190120 20:25:03:316;      2252;note;TMP;PostConnection;3
20190120 20:25:03:323;      2252;note;TMP;PerformInitialRequests;1
20190120 20:25:03:331;      2252;note;TWSSocket;PerformInitialRequests;start... param=0 open order request=1
20190120 20:25:03:337;      2252;action;request_handler;Reset;
20190120 20:25:03:343;      2252;note;TMP;PerformInitialRequests;2
20190120 20:25:03:350;      2252;note;TMP;PerformInitialRequests;3
20190120 20:25:03:358;      2252;action;TWSSocket;FinishRequest;command [reqAccountSummary] transmitted. Bytes sent=157
20190120 20:25:03:377;      2252;note;TWSSocket;nextValidId;next valid id=3 received
20190120 20:25:03:384;      2252;note;CTWSSocket;SetNonOrderTicker;new non order ticker offset=1000003
20190120 20:25:03:396;      2252;note;API;;API-message: market data farm connection is ok:usfarm.nj code=2104 id=-1   
20190120 20:25:03:408;      2252;note;API;;API-message: market data farm connection is ok:afarm code=2104 id=-1   
20190120 20:25:03:422;      2252;note;API;;API-message: market data farm connection is ok:cafarm code=2104 id=-1   
20190120 20:25:03:435;      2252;note;API;;API-message: market data farm connection is ok:usopt code=2104 id=-1   
20190120 20:25:03:452;      2252;note;API;;API-message: market data farm connection is ok:usfarm code=2104 id=-1   
20190120 20:25:03:468;      2252;note;API;;API-message: hmds data farm connection is ok:euhmds code=2106 id=-1   
20190120 20:25:03:483;      2252;note;API;;API-message: hmds data farm connection is ok:ushmds code=2106 id=-1   
20190120 20:25:03:636;      2252;note;TWSSocket;updateAccountValue;base currency=USD
20190120 20:25:03:716;      2252;note;TWSSocket;accountSummaryEnd;reqid=1
20190120 20:25:03:728;      2252;note;TWSSocket;request_and_wait_for_account_updates2;finished
20190120 20:25:03:735;      2252;note;TMP;PerformInitialRequests;4
20190120 20:25:03:743;      2252;action;TWSSocket;FinishRequest;command [reqPositions] transmitted. Bytes sent=5
20190120 20:25:03:768;      2252;note;toHandler;AddContract;contract added: mult=1  #set=OPT#sbl=URA#lsl=URA   190418C00016000#cur=USD#exc=#pex=#exp=20190418#mul=100#mnt=0.0000000000#rgt=C#srk=16.0000000000#sit=#sid=#als=#cid=330605049#vld=0# #id=50006 context=portfolio update
20190120 20:25:03:775;      2252;note;RequestStack;AddDetailRequest;detail requests stacked=1, detail requests pending=0, other requests stored=0, type of current request=0
20190120 20:25:03:782;      2252;note;TWSSocket;position;postions of contract URA_OPT_USD_20190418_C_16.000000_100=75 conid=0 account=acc_1 context=updatePortfolio avg=25.0343000 calls=0 publish_pos=1 publish_pl=1
20190120 20:25:03:793;      2252;note;TWSSocket;positionEnd;
20190120 20:25:03:805;      2252;note;TWSSocket;request_and_wait_for_position_updates;finished
20190120 20:25:03:812;      2252;note;TMP;PerformInitialRequests;5
20190120 20:25:03:819;      2252;action;TWSSocket;FinishRequest;command [reqOpenOrders] transmitted. Bytes sent=4
20190120 20:25:03:833;      2252;action;TWSSocket;RequestOpenOrder;open orders requested
20190120 20:25:03:869;      2252;note;TWSSocket;request_and_wait_for_open_orders;finished
20190120 20:25:03:876;      2252;note;TMP;PerformInitialRequests;6
20190120 20:25:03:883;      2252;action;TWSSocket;FinishRequest;command [reqExecutions] transmitted. Bytes sent=20
20190120 20:25:03:896;      2252;note;TWSSocket;RequestExecutions;executions requested for account= clientid=1
20190120 20:25:03:931;      2252;note;TWSSocket;request_and_wait_for_executions;finished
20190120 20:25:03:938;      2252;note;TMP;PerformInitialRequests;7
20190120 20:25:03:945;      2252;note;TMP;PerformInitialRequests;8
20190120 20:25:03:952;      2252;note;TMP;PerformInitialRequests;9
20190120 20:25:03:959;      2252;note;TMP;PerformInitialRequests;10
20190120 20:25:03:967;      2316;note;tcExpFunc;CONNECT;ret=3
20190120 20:25:03:974;      2252;note;TWSSocket;PostConnection;connection and initial requests done.
20190120 20:25:03:982;      2316;note;tcExpFunc;REGISTER_CONTRACT;-MSFT -STK -USD -SMART - - - -0.0000000000 - -0 -0.0000000000
20190120 20:25:03:989;      2252;note;toHandler;AddContract;contract added: mult=0  #set=STK#sbl=MSFT#lsl=#cur=USD#exc=SMART#pex=#exp=#mul=#mnt=0.0000000000#rgt=#srk=0.0000000000#sit=#sid=#als=#cid=0#vld=0# #id=50007 context=RegisterContract
20190120 20:25:03:996;      2252;action;TWSSocket;FinishRequest;command [reqContractDetails] transmitted. Bytes sent=44
20190120 20:25:04:011;      2252;action;toHandler;PerformDetailRequest;details requested for contract #set=STK#sbl=MSFT#lsl=#cur=USD#exc=SMART#pex=#exp=#mul=#mnt=0.0000000000#rgt=#srk=0.0000000000#sit=#sid=#als=#cid=0#vld=0# #id=50007 reqid=1000006
20190120 20:25:04:018;      2252;note;RequestStack;AddDetailRequest;detail requests stacked=0, detail requests pending=1, other requests stored=0, type of current request=0
20190120 20:25:04:026;      2316;note;tcExpFunc;REGISTER_CONTRACT;ret=50007
20190120 20:25:04:033;      2316;note;tcExpFunc;REQ_HIST_DATA;-50007 -20190101 00:00:00 -20181230 00:00:00 -19 -TRADES -1 -1 -1
20190120 20:25:04:105;      2316;note;tcExpFunc;WAIT_FOR_EVENT;-1000
20190120 20:25:04:114;      2316;note;tcExpFunc;WAIT_FOR_EVENT;ret=5
20190120 20:25:04:122;      2316;note;tcExpFunc;GET_EVENT_VAL_I;-5 -16
20190120 20:25:04:131;      2252;note;TWSSocket;contractDetails;details received (2) for contract=#set=STK#sbl=MSFT#lsl=MSFT#cur=USD#exc=SMART#pex=NASDAQ#exp=#mul=#mnt=0.0100000000#rgt=#srk=0.0000000000#sit=#sid=#als=#cid=272093#vld=1# #id=50007
20190120 20:25:04:138;      2316;note;tcExpFunc;GET_EVENT_VAL_I;ret=2147483646
20190120 20:25:04:149;      2316;note;tcExpFunc;GET_EVENT_VAL_I;-5 -15
20190120 20:25:04:157;      2316;note;tcExpFunc;GET_EVENT_VAL_I;ret=2147483646
20190120 20:25:04:163;      2316;note;tcExpFunc;GET_EVENT_VAL_D;-5 -14
20190120 20:25:04:170;      2252;note;RequestStack;AddDetailRequest;detail requests stacked=0, detail requests pending=0, other requests stored=0, type of current request=0
20190120 20:25:04:177;      2316;note;tcExpFunc;GET_EVENT_VAL_D;ret=179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000
20190120 20:25:04:184;      2316;note;tcExpFunc;GET_EVENT_VAL_D;-5 -13
20190120 20:25:04:191;      2252;error;tcsqliteDB;execute;error db=c:\trade-commander\twslink2\hdata\MSFT_STK_SMART__0_TRADES_1 day.sqlite , code=1: duplicate column name: generic (ALTER TABLE history ADD COLUMN generic BOOLEAN)
20190120 20:25:04:199;      2252;error;tcsqliteDB;createTable;ALTER TABLE history ADD COLUMN generic BOOLEAN
20190120 20:25:04:206;      2316;note;tcExpFunc;GET_EVENT_VAL_D;ret=179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000
20190120 20:25:04:213;      2252;error;tcsqliteDB;execute;error db=c:\trade-commander\twslink2\hdata\MSFT_STK_SMART__0_TRADES_1 day.sqlite , code=1: duplicate column name: changed (ALTER TABLE history ADD COLUMN changed BOOLEAN)
20190120 20:25:04:221;      2252;error;tcsqliteDB;createTable;ALTER TABLE history ADD COLUMN changed BOOLEAN
20190120 20:25:04:229;      2316;note;tcExpFunc;GET_EVENT_VAL;-5 -12
20190120 20:25:04:237;      2316;note;tcExpFunc;GET_EVENT_VAL;ret=enf
20190120 20:25:04:244;      2316;note;tcExpFunc;GET_EVENT_VAL;-5 -11
20190120 20:25:04:251;      2316;note;tcExpFunc;GET_EVENT_VAL;ret=enf
20190120 20:25:04:258;      2316;note;tcExpFunc;GET_EVENT_VAL;-5 -10
20190120 20:25:04:265;      2316;note;tcExpFunc;GET_EVENT_VAL;ret=enf
20190120 20:25:04:273;      2252;error;tcsqliteDB;execute;error db=c:\trade-commander\twslink2\hdata\MSFT_STK_SMART__0_TRADES_1 day.sqlite , code=1: duplicate column name: corrected (ALTER TABLE history ADD COLUMN corrected BOOLEAN)
20190120 20:25:04:281;      2252;error;tcsqliteDB;createTable;ALTER TABLE history ADD COLUMN corrected BOOLEAN
20190120 20:25:04:288;      2316;note;tcExpFunc;GET_EVENT_VAL;-5 -9
20190120 20:25:04:296;      2316;note;tcExpFunc;GET_EVENT_VAL;ret=enf
20190120 20:25:04:304;      2252;error;tcsqliteDB;execute;error db=c:\trade-commander\twslink2\hdata\MSFT_STK_SMART__0_TRADES_1 day.sqlite , code=1: duplicate column name: extern (ALTER TABLE history ADD COLUMN extern BOOLEAN)
20190120 20:25:04:311;      2316;note;tcExpFunc;GET_EVENT_VAL_D;-5 -8
20190120 20:25:04:319;      2252;error;tcsqliteDB;createTable;ALTER TABLE history ADD COLUMN extern BOOLEAN
20190120 20:25:04:326;      2316;note;tcExpFunc;GET_EVENT_VAL_D;ret=179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000
20190120 20:25:04:336;      2316;note;tcExpFunc;GET_EVENT_VAL_D;-5 -7
20190120 20:25:04:344;      2316;note;tcExpFunc;GET_EVENT_VAL_D;ret=179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000
20190120 20:25:04:352;      2316;note;tcExpFunc;GET_EVENT_VAL_D;-5 -6
20190120 20:25:04:364;      2316;note;tcExpFunc;GET_EVENT_VAL_D;ret=179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000
20190120 20:25:04:372;      2316;note;tcExpFunc;GET_EVENT_VAL_D;-5 -5
20190120 20:25:04:380;      2316;note;tcExpFunc;GET_EVENT_VAL_D;ret=179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000
20190120 20:25:04:389;      2316;note;tcExpFunc;GET_EVENT_VAL_I;-5 -4
20190120 20:25:04:396;      2316;note;tcExpFunc;GET_EVENT_VAL_I;ret=2147483646
20190120 20:25:04:405;      2316;note;tcExpFunc;GET_EVENT_VAL_I;-5 -3
20190120 20:25:04:414;      2316;note;tcExpFunc;GET_EVENT_VAL_I;ret=2147483646
20190120 20:25:04:421;      2316;note;tcExpFunc;GET_EVENT_VAL_I;-5 -2
20190120 20:25:04:429;      2316;note;tcExpFunc;GET_EVENT_VAL_I;ret=2147483646
20190120 20:25:04:435;      2316;note;tcExpFunc;GET_EVENT_VAL_I;-5 -1
20190120 20:25:04:442;      2316;note;tcExpFunc;GET_EVENT_VAL_I;ret=2147483646
(...similar repeated events omitted...)
Are the database errors in the log the cause of this?
I will be most thankful for any help with this issue.