I think I've got it. I need to give the EA a command to restart Windows (without a login password) and put the terminal in the OS autostart. Thanks for the options.
Depends on the type of system. The bigger the leverage, the smaller the deposit, the better. However, you should take into account that the brokerage company may change the leverage: some do it periodically, some - change it when the deposit grows over a certain amount. Reducing leverage is an effective tool for brokerage companies. When using a martingale-like system, it is better to work with 1:200 and higher leverage, better 1:500...1:1000.
-Aleksey-: I think I've got it. I need to give the EA a command to restart Windows (without a login password), and put the terminal in the OS autostart. Thanks for the options.
Too global and rather slow. It would be sufficient to monitor the terminal activity with RestartOnCrash, and in case of connection failure give Alt+F4 command to the terminal (in the script via VinApi), the program will instantly launch it again.
evillive: Too global and quite slow. It would be enough to monitor the terminal activity with RestartOnCrash, and in case of connection failure give Alt+F4 command to the terminal (in the script via VinApi), that program will quickly launch it again.
Broken connection: error 6 is handled by my Expert Advisor through server rescan. I've found an example on the forum. Or maybe you mean another error? I will look through the program, thanks.
General Error also leads to a connection failure. Above I wrote that I put myself in the terminal script s-Reconnect, it handles such errors as No connection and General Error, when they occur re-login and all. But it's easier to restart the terminal at any such error, it takes about the same amount of time.
This restart.vbs script restarts the terminal. How do I run it from the EA?
'+++++++++++++++++++++
'terminate application
'+++++++++++++++++++++
Const strComputer = "."
Dim objWMIService, colProcessList
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'terminal.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
Set objWMIService = Nothing
Set colProcessList = Nothing
'+++++++++++++
'waiting pause
'+++++++++++++
WScript.Sleep 5000
'++++++++++++++++
'run appplication
'++++++++++++++++
Dim ProgramPath, objShell
ProgramPath = "D:\Program Files\Metatrader\terminal.exe"
Set objShell = createobject("Wscript.Shell")
objShell.Run Quote(ProgramPath), 1
Set objShell = Nothing
'+++++++++++++++++
'quotes processing
'+++++++++++++++++
Function Quote(sText)
Quote = chr(34) & sText & chr(34)
End Function
You don't have to use the advisor. You can run this script every half hour or an hour through the scheduler.
Why not, if an error has been detected by the Expert Advisor? You can fail to set or modify an order within half an hour. What is a scheduler - I have never used one...?
Depends on the type of system. The bigger the leverage, the smaller the deposit, the better. However, you should take into account that the brokerage company may change the leverage: some do it periodically, some - change it when the deposit grows over a certain amount. Reducing leverage is an effective tool for brokerage companies. When using a martingale-like system, it is better to work with 1:200 and higher leverage, better 1:500...1:1000.
I think I've got it. I need to give the EA a command to restart Windows (without a login password), and put the terminal in the OS autostart. Thanks for the options.
Too global and quite slow. It would be enough to monitor the terminal activity with RestartOnCrash, and in case of connection failure give Alt+F4 command to the terminal (in the script via VinApi), that program will quickly launch it again.
This restart.vbs script restarts the terminal. How do I run it from the EA?
'+++++++++++++++++++++ 'terminate application '+++++++++++++++++++++ Const strComputer = "." Dim objWMIService, colProcessList Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'terminal.exe'") For Each objProcess in colProcessList objProcess.Terminate() Next Set objWMIService = Nothing Set colProcessList = Nothing '+++++++++++++ 'waiting pause '+++++++++++++ WScript.Sleep 5000 '++++++++++++++++ 'run appplication '++++++++++++++++ Dim ProgramPath, objShell ProgramPath = "D:\Program Files\Metatrader\terminal.exe" Set objShell = createobject("Wscript.Shell") objShell.Run Quote(ProgramPath), 1 Set objShell = Nothing '+++++++++++++++++ 'quotes processing '+++++++++++++++++ Function Quote(sText) Quote = chr(34) & sText & chr(34) End FunctionThis restart.vbs script restarts the terminal. How do I run it from the EA?
You don't have to run it from the Expert Advisor. You can run this script every half an hour or an hour through the scheduler.
You don't have to use the advisor. You can run this script every half hour or an hour through the scheduler.
Well then, here is https://www.mql5.com/ru/forum/106619
Windows Task Scheduler, allows you to do things like send mail, run apps/scripts/buttons, etc. on a schedule or by signal.