Hello,
maybe someone know why backfilling is so slow from InteractiveBrokers TWS to MultiCharts?
Recentry i tried to connect MotiveWave to IB TWS and backfilled the same instrument: it was very fast!! The same situation is with Quantower: very fast!
So there have to a problem with Multicharts
Backfilling InteractiveBrokers - very slow
Re: Backfilling InteractiveBrokers - very slow
Hi Alex,
IB data is and will most likely always be slow to reload due to IB pace violation etc, , try other providers like IQ etc and you will see that its very fast in MC.
Imho, IB data is really horrible to deal with and cant/should not be used for any testing.
IB data is and will most likely always be slow to reload due to IB pace violation etc, , try other providers like IQ etc and you will see that its very fast in MC.
Imho, IB data is really horrible to deal with and cant/should not be used for any testing.
-
- Posts: 22
- Joined: 24 Oct 2013
- Has thanked: 1 time
- Been thanked: 1 time
Re: Backfilling InteractiveBrokers - very slow
If IB has hit a pace violation, with IB selected as active screen, hit CTRL-ALT-F on keyboard. It will cause srvers on IB to continue data without the pace violation wait. Kind of a pain, but will work unless you are trying to download huge amounts of data for more than one security.
Re: Backfilling InteractiveBrokers - very slow
I use a Windows tool called Autoit to automate the CTLRL-ALT-F. Script is below:If IB has hit a pace violation, with IB selected as active screen, hit CTRL-ALT-F on keyboard. It will cause srvers on IB to continue data without the pace violation wait. Kind of a pain, but will work unless you are trying to download huge amounts of data for more than one security.
#include <Constants.au3>
;
; Script Function:
; waits for tws to run, repeatedly sends ctrl+alt+f.
;
; Set the Escape hotkey to terminate the script.
HotKeySet("{ESC}", "_Terminate")
; Prompt the user to run the script - use a Yes/No prompt with the flag parameter set at 4 (see the help file for more details)
Local $iAnswer = MsgBox(BitOR($MB_YESNO, $MB_SYSTEMMODAL), "AutoIt Example (English Only)", "This script will wait for tws and cycle it. Do you want to run it?")
; Check the user's answer to the prompt (see the help file for MsgBox return values)
; If "No" was clicked ($IDNO = 7) then exit the example function
If $iAnswer = $IDNO Then
MsgBox($MB_SYSTEMMODAL, "tws AutoIt", "OK. Bye!")
Return
EndIf
MsgBox($MB_SYSTEMMODAL, "tws AutoIt", "Press OK to continue")
; Initialize a Local variable.
Local $aMgp = 0
; Create an endless loop, 1 will always be 1 therefore True.
While 1
; Assign a Local variable the coords of the cursor (array).
$aMgp = MouseGetPos()
; Display a tooltip near the cursor with its coords.
ToolTip("x: " & $aMgp[0] & ", y: " & $aMgp[1], $aMgp[0] + 10, $aMgp[1] + 10)
_tws_caf()
Sleep(50000)
WEnd
Exit
; Finished!
Func _tws_caf()
; Run Notepad
;Run("notepad.exe")
;Retrieve a list of window handles.
;Local $aList = WinList()
; Loop through the array displaying only visable windows with a title.
;For $i = 1 To $aList[0][0]
; If $aList[$i][0] <> "" And BitAND(WinGetState($aList[$i][1]), 2) Then
; MsgBox($MB_SYSTEMMODAL, "", "Title: " & $aList[$i][0] & @CRLF & "Handle: " & $aList[$i][1])
; EndIf
;Next
; Wait for the tws to become active.
WinWaitActive("[REGEXPTITLE:.*Interactive Brokers.*Simulated Trading.*]")
;WinWaitActive("[REGEXPTITLE:.*Notepad*]","")
Sleep(1000)
; Now that the tws window is active type some special characters
Send("^!f")
;Send("{!}{^}{+}{#}")
;Send("{ENTER}")
; Do it the second way (RAW mode, notice the second parameter of Send is 1)
;Send("Second way: ")
;Send("!^+#", 1)
;Send("{ENTER}{ENTER}Finished")
;MsgBox($MB_SYSTEMMODAL, "AutoIt", "done")
EndFunc
Func _Terminate()
MsgBox($MB_SYSTEMMODAL, "tws AutoIt", "terminated")
Exit
EndFunc ;==>_Terminate