Кажется придумал. Нужно из советника дать команду на перезапуск Windows(без пароля на вход), а теминал поставить в автозагрузку ОС. Спасибо за варианты.
Зависит от типа системы. Чем больше, тем меньше залог, тем лучше. Но, при этом нужно учитывать то, что ДЦ может поменять плечо: некоторые это делают периодически, некоторые - меняют его при увеличении депозита свыше определённой суммы. Уменьшение плеча - эффективный инструмент ДЦ. При использовании мартингейл-подобных систем лучше работать с плечом 1:200 и выше, лучше - 1:500...1:1000.
-Aleksey-: Кажется придумал. Нужно из советника дать команду на перезапуск Windows(без пароля на вход), а теминал поставить в автозагрузку ОС. Спасибо за варианты.
Слишком глобально и достаточно медленно. Было бы достаточно мониторить активность терминала прогой RestartOnCrash, а при обрыве связи дать команду Alt+F4 на терминал (в скрипте через ВинАпи), та программка сама его быстренько запустит обратно.
evillive: Слишком глобально и достаточно медленно. Было бы достаточно мониторить активность терминала прогой RestartOnCrash, а при обрыве связи дать команду Alt+F4 на терминал (в скрипте через ВинАпи), та программка сама его быстренько запустит обратно.
Обрыв связи: ошибка 6 у меня обрабатывается самим советником через рескан серверов. Пример нашел на форуме. Или вы про другую ошибку? Программу посмотрю, спасибо.
General Error тоже ведёт к обрыву связи. Выше я написал что себе в терминал я поставил скрипт s-Reconnect, он отрабатывает такие ошибки как No connection и General Error, при их возникновении перелогинивается и всё. Но проще терминал перезапускать при любой такой ошибке, это примерно столько же времени займёт.
Вот этот скрипт restart.vbs осуществляет перезагрузку терминала. А как его запустить из советника?
'+++++++++++++++++++++
'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
Не надо из советника. Можно раз в полчаса-час этот скрипт запускать через планировщик.
Почему не надо, если ошибка советником обнаружена? За полчаса можно профукать выставление или модификацию ордера. Что такое планировщик - никогда не пользовался...?
Планировщик заданий в Виндовс, позволяет выполнять разные действия типа отправки почты, запуска приложений/скриптов/батников и т.п. по расписанию или по сигналу.
Зависит от типа системы. Чем больше, тем меньше залог, тем лучше. Но, при этом нужно учитывать то, что ДЦ может поменять плечо: некоторые это делают периодически, некоторые - меняют его при увеличении депозита свыше определённой суммы. Уменьшение плеча - эффективный инструмент ДЦ. При использовании мартингейл-подобных систем лучше работать с плечом 1:200 и выше, лучше - 1:500...1:1000.
Кажется придумал. Нужно из советника дать команду на перезапуск Windows(без пароля на вход), а теминал поставить в автозагрузку ОС. Спасибо за варианты.
Слишком глобально и достаточно медленно. Было бы достаточно мониторить активность терминала прогой RestartOnCrash, а при обрыве связи дать команду Alt+F4 на терминал (в скрипте через ВинАпи), та программка сама его быстренько запустит обратно.
Вот этот скрипт restart.vbs осуществляет перезагрузку терминала. А как его запустить из советника?
'+++++++++++++++++++++ '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Вот этот скрипт restart.vbs осуществляет перезагрузку терминала. А как его запустить из советника?
Не надо из советника. Можно раз в полчаса-час этот скрипт запускать через планировщик.
Не надо из советника. Можно раз в полчаса-час этот скрипт запускать через планировщик.
Ну тогда вот https://www.mql5.com/ru/forum/106619
Планировщик заданий в Виндовс, позволяет выполнять разные действия типа отправки почты, запуска приложений/скриптов/батников и т.п. по расписанию или по сигналу.