Форум трейдеров » Торговые роботы, советники, индикаторы » Вопросы программирования
+ Подписаться
Страница 39 из 87 ПерваяПервая ... 29373839404149 ... ПоследняяПоследняя
  1. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    Цитата Сообщение от Vladiger Посмотреть сообщение
    Аха, спасиб!!! Нашел уже пока писал!!!
    Как говорится зря только людей напряг, гугль рулит!!!:thumbsup_002:
    Всё верно..
    За исключением малого..
    Функция WinExec - она ж Obsolete..:smartass:
    This function is provided for compatibility with earlier versions of Windows
    Для 95 Винды текст писан был..;)
  2. 1,279
    Комментарии
    15
    Темы
    1292
    Репутация Pro
    Аватар для Sevrer  
    Мастер форумных наук

    5 Медалей
    Цитата Сообщение от Vladiger Посмотреть сообщение
    Ну лана тада!!!:thumbsup_002:
    Буду руками выключать!:thumbsup_002:
    PHP код:
    #import "kernel32.dll"

    int WinExec(string lpCmdLine,int uCmdShow);

    int start() {
        if (
    IsDllsAllowed() == false) return(0);
        
    WinExec("shutdown.exe -s -f"1);
        return(
    0);

    Выключение компьютера из MQL
    Ну можешь ведь, когда захочешь. ;-)
  3. 107
    Комментарии
    0
    Темы
    107
    Репутация Pro
    Аватар для religare777  
    В начале пути

    2 Медалей
    Здравствуйте!
    Вопрос: кто подскажет как код записать?
    if(AccountEquity()>=AccountBalance(х)*1.05) DelCloseAll();
    Где AccountBalance(х) - аккаунт баланс, например, 24 часа назад.

    С уважением,
    Александр
  4. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    Цитата Сообщение от religare777 Посмотреть сообщение
    Здравствуйте!
    Вопрос: кто подскажет как код записать?
    if(AccountEquity()>=AccountBalance(х)*1.05) DelCloseAll();
    Где AccountBalance(х) - аккаунт баланс, например, 24 часа назад.

    С уважением,
    Александр
    Чтоб не мучиться с вычислениями - математика ж наука тонкая - вместо функции AccountBalance(х) можно использовать переменную..
    Например так..
    OneDayBeforeBalance=AccountBalance(),
    а сравнивать значения - через сутки.. ;)
    Такое - точно работает.. Проверял..
    Сперва даже подумал, что строчка из моего бота..)))
    Код:
    if(ForceClose && AccountEquity()>PrevBalance*1.05) FixProfit();
    Правда, PrevBalance - просто предыдущее значение баланса, не привязанное ко времени..
    а в коде start{}есть примерно такая строчка if(PrevBalance!=AccountBalance())PrevBalance=Accou ntBalance(); с нормализацией
    ForceClose - external
  5. 1,321
    Комментарии
    7
    Темы
    1547
    Репутация Pro
    Аватар для Владимир Гербатов  
    Мастер форумных наук

    5 Медалей
    Выключил терминал и накрылась переменная...
    ЗЫ Тогда уж лучше в файл писать. То есть вести некую базу данных.
  6. 405
    Комментарии
    2
    Темы
    411
    Репутация Pro
     
    Member

    2 Медалей
    Цитата Сообщение от Vladiger Посмотреть сообщение
    Выключил терминал и накрылась переменная...
    ЗЫ Тогда уж лучше в файл писать. То есть вести некую базу данных.
    Можно в глобальной переменной терминала держать. Они переживают перезапуск.
  7. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    Да, согласен.. Совершенно правильно.. Пробовал оба метода - остановился на глобальной переменной..

    Единственно, что я к счастью/сожалению не проверил - что будет при аварийном вылете терминала (а, признаю, нередко такое бывает, когда их - терминалов - открыто много, и начинаешь проводить оптимизацию, не сильно грамотно сформулированную)..

    В таком случае, если для сохранения в файл не использовать Флаш - данные однозначно уйдут..

    А вот с глобальными.. Сохранится ли значение глобальной переменной, если я прерву процесс через таск-менеджер?

    Опять же - к сожалению, к счастию ли..:smartass: - не сталкивался..

    Если приходилось - кто сталкивался с таким - поделитесь, плз..
  8. 405
    Комментарии
    2
    Темы
    411
    Репутация Pro
     
    Member

    2 Медалей
    У меня сложилось впечатление, что глобальные сделаны человеком хорошо просекающим тему, один только GlobalVariableSetOnCondition() много о чем говорит. Убиение терминала внутренней фатальной ошибкой или руками из таскменеджера может теоретически привести к потере глобальной переменной, но в быту такое вряд ли встретится. Сейчас попробовал, под Вистой, создал глобальную переменную и через полсекунды сделал аборт терминалу. Переменная выжила.
  9. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    Цитата Сообщение от qqmber Посмотреть сообщение
    У меня сложилось впечатление, что глобальные сделаны человеком хорошо просекающим тему, один только GlobalVariableSetOnCondition() много о чем говорит. Убиение терминала внутренней фатальной ошибкой или руками из таскменеджера может теоретически привести к потере глобальной переменной, но в быту такое вряд ли встретится. Сейчас попробовал, под Вистой, создал глобальную переменную и через полсекунды сделал аборт терминалу. Переменная выжила.
    Пасиб.. Это очень важно..
  10. 107
    Комментарии
    0
    Темы
    107
    Репутация Pro
    Аватар для religare777  
    В начале пути

    2 Медалей
    Цитата Сообщение от EQU Посмотреть сообщение
    Правда, PrevBalance - просто предыдущее значение баланса, не привязанное ко времени..
    а в коде start{}есть примерно такая строчка if(PrevBalance!=AccountBalance())PrevBalance=Accou ntBalance(); с нормализацией
    ForceClose - external
    Спасибо, EQU!
    Еще возник вопрос. Поставил советник на несколько валютных пар в одном терминале. На первой - работает, на остальных показывает сообщение "Торговля запрещена или торговый поток занят". С чем это связано?
    Еще момент - советник открывает сделки при открытии нового бара. Может быть такое, что он конфликтует сам с собой или это брокер запретил к использованию на конкурсе нескольких валютных пар?!
    Александр

Вверх
РегистрацияX

чтобы писать, читать, комментировать