Logo

Вход

Войти с помощью соц. сетей
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения
ТОП СООБЩЕНИЙ
13.10.2018, 20:39
Лучший ответ
Выплачено: 27108 RUB
Сообщение от скальпер Посмотреть сообщение
Как-то абстрактно..))
а чего абстрактного? Вы как ява-программист должны представлять работу приложений клиент-сервер, в МТ такая же ситуация, терминал обслуживает все и MQL-программы (индикаторы и советники), а готовность терминала нужно проверять
Вот Вы хотите в OnInit() получить данные , зачем? делайте как предлагают разработчики, в OnInit() проинициализируйте все, что требуется и можете сделать запрос на подкачку истории - он асинхронный, поэтому не потребуется ожидать ответа терминала или сервера
разработчики рекомендуют в OnInit() производить минимум действий, не хочу читать справку, но видел что выполнение OnInit() ограничено по времени, кажется это применительно к индикаторам? и если MQL-программа не сумела выполнить OnInit за 2 или 3 секунды, то возможно терминал прекратит ее выполнение
делайте как предлагают разработчики, OnInit - инициализация, в OnTick() запустится когда для MQL-программы все уже готово и данные графика проинициализированны и соединение с сервером есть и ... и в 99% случаев ничего не нужно проверять и настраивать, просто берешь и пользуешься
Сообщение от скальпер Посмотреть сообщение
хотя, в других терминалах с коробки многие вещи имеются
Вы еще QUIK приведите в пример, пару лет назад был я на форумах по QUIK... жуть как все удобно... каменный век
15.10.2018, 11:10
Лучший ответ
Выплачено: 182755 RUB
Сообщение от evnt Посмотреть сообщение
В документации про запрет использования Sleep() в OnInit() ничего нет.
В документации много чего нет...
Сообщение от evnt Посмотреть сообщение
Толпа не права.
Всему свое время...
19.10.2018, 13:09
Лучший ответ
Выплачено: 27108 RUB
Сообщение от evnt Посмотреть сообщение
какому признаку можно обнаружить, что пара - Офф квоты?
ни по какому, реквоты это значит, что сервер не принимает Ваш ордер, много причин почему так будет, обычно при быстром движении цены на счетах Instant Execution
я Вам давал пример проверки доступности сервера на предмет выполнения торговых операций
https://forexdengi.com/threads/11856...1#post18848619
но реквоты могут быть и даже если сервер доступен для торговых операций, или другой тип счета открывайте или никак не решите эту проблему - ну как не решите?, выставляйте ордер пока не выставится - реквоты когда-нибудь закончатся
13.10.2018, 21:18
Лучший ответ
Выплачено: 18827 RUB
Народ, вы о чем? Я так понял, что вы, как и я, не знаете как сделать. Ничего стыдного в этом нет. Во всяком случае, я - не стыжусь.

Поторю вопрос - Как написать функцию Пауза(До определенного времени или На определенный период)? Но чтобы при этом не завешивать компьютер конструкциями типа см. в головном посте. Или может есть оператор такой в MQL? Я искал - не нашел. Зачем это нужно уже объяснял. Объясню еше раз подробнее:

Достаточно навороченный мультивалютный советник торгует большой кучей валют. Советник набрасывается на любой график. Хоть на тот, который не торгуется. Вот, что он делает в OnInit() из того, что тут мне пишут делать нельзя (выдавая при этом сообщения, требующие некоторые действия от пользователя): перебирает все допустимые варианты пар, определяя, какими сейчас можно торговать, изучает их историю, отфильтровывает пары, которые не проходят по определенным условиям... В результате для торговли остается около 100 валютных пар, когда запускаем в будни, или 0 пар, если запустить в воскресенье. Поэтому приходится или не спать в воскресенье до 00:01 понедельника, или пропускать одну ночь торговли, запуская сов в пнд утром. А я хочу запустить в воскресенье вечером, чтоб он начал работать в понедельник
А по OnTick() запускается цикл по всем прошедшим фейсконтроль парам.
15.10.2018, 11:16
Лучший ответ
Выплачено: 27108 RUB
Сообщение от ir0407 Посмотреть сообщение
Всему свое время...
О сколько нам открытий чудных
Готовят просвещенья дух
И опыт, сын ошибок трудных,
И гений, парадоксов друг,
И случай, бог изобретатель...
золотые слова.... кстати, очень много из современных изобретений, которыми пользуется весь мир, это случайность или побочный продукт получившийся в ходе основных исследований, навскидку - бензин, клей "секунда"...
19.10.2018, 13:14
Лучший ответ
Выплачено: 69915 RUB
Сообщение от evnt Посмотреть сообщение
А вот еще от меня для ржачки:
Есть проблема - Офф квоты! [ATTACH]2229647[/ATTACH]
Чтоб не напороться на такую пару, я чего только не делаю. Смотри функцию Allowance(). Скопировал такой, как она есть. Те проверки, что закомментированны, тоже делал - толку нет. По какому признаку можно обнаружить, что пара - Офф квоты?

bool Allowance(string TN)
{
if
(
(TN!="")
&&
MarketInfo(TN,MODE_TRADEALLOWED)
&&
IsTradeAllowed(TN,TimeCurrent())
&&
IsTradeAllowed(TN,TimeLocal())
&&
AccountInfoInteger(ACCOUNT_TRADE_EXPERT)
//&&
//AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)
//&&
//TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)
&&
(MarketInfo(TN,MODE_BID)>.0001)
)
{
double Rab=MarketInfo(TN,MODE_BID);
return(true);
}else
{
return(false);
}
}
Поступившие после старта на инструмент котировки не пробовал посчитать? Опять же в разумных пределах, а не все подряд, до посинения.
Типа, если за "неделю" счётчик не увеличился никак, то определённо ждать нечего, ну а если, насчитал пяток котировок, за пару тройку минут, то вроде всё путём и продолжаем работу.
Ну и варианты со временем, не забывай.
Если сравнить время старта кода на инструменте, с временем последней известной котировки сервера, и сравнить с разумной дельтой между ними, про варианты уж сам пофантазируй.

Про условие в функции, ты в слух его проговори, чтобы сам услышал, что написал.
  • #1 Свернуть

    Как запускать советник в нужное время?

    Здравствуйте!
    Как запустить советник в нужное время из Start() так, чтобы не завешивать компьютер?
    Т.е. не подходят конструкции типа
    While (TimeCurrent()< X)
    {
    A=A;
    }
    <и понеслись>

    А нужна пауза до определенного времени.

    Заранее спасибо!
    PAMM Gap1 и PAMM Gap2 советника GapFixer NK_A, а также много других советников и всякой всячины от evnt.
  • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
  • #2 Свернуть

    Сообщение от evnt Посмотреть сообщение
    Как запустить советник в нужное время
    Код:
    void OnTick()
    {
      if(TimeCurrent() < X) return;
      
      //Дальше ваш код...
    }

    Комментарий

    • #3 Свернуть

      Сообщение от ir0407 Посмотреть сообщение
      Код:
      void OnTick()
      {
        if(TimeCurrent() < X) return;
        
        //Дальше ваш код...
      }
      Спасибо, но не годится. Надо из Start().

      Запускаю советник.
      Он в Start() определяет доступные для торговли инструменты.
      Потом - движок OnTick().

      Если запустить в воскресенье - говорит для торгов доступно 0 инструментов.
      Поэтому, приходится ждать понедельника, чтоб запустить.
      А я хочу в воскресенье вечером запустить, а ночью спать, а не понедельника до 24:00 ждать
      Последний раз редактировалось evnt; 11.10.2018, 21:23.
      PAMM Gap1 и PAMM Gap2 советника GapFixer NK_A, а также много других советников и всякой всячины от evnt.

      Комментарий

      • #4 Свернуть

        Сообщение от ir0407 Посмотреть сообщение
        Код:
        void OnTick()
        {
          if(TimeCurrent() < X) return;
          
          //Дальше ваш код...
        }
        Спасибо, но не годится. Надо из Start().

        Запускаю советник.
        Он в Start() определяет доступные для торговли инструменты.
        Потом - движок OnTick().

        Если запустить в воскресенье - говорит для торгов доступно 0 инструментов.
        Поэтому, приходится ждать понедельника, чтоб запустить.
        А я хочу в воскресенье вечером запустить, а ночью спать, а не понедельника до 24:00 ждать

        Надо как-то на паузу поставить. Может есть такая функция? я не нашел
        PAMM Gap1 и PAMM Gap2 советника GapFixer NK_A, а также много других советников и всякой всячины от evnt.

        Комментарий

        • #5 Свернуть

          Сообщение от evnt Посмотреть сообщение
          Спасибо, но не годится. Надо из Start().

          Запускаю советник.
          Он в Start() определяет доступные для торговли инструменты.
          Потом - движок OnTick().

          Если запустить в воскресенье - говорит для торгов доступно 0 инструментов.
          Поэтому, приходится ждать понедельника, чтоб запустить.
          А я хочу в воскресенье вечером запустить, а ночью спать, а не понедельника до 24:00 ждать
          Ну так хотя бы начать нужно писать, что бы получить ответ или совет. А вопрос типа дайте реализацию как-бы не совсем по теме. У меня есть готовое решение, но.. подобные вещи нужно самому писать. Полезно. Начни.. А далее получишь помощь при необходимости. Но сложного там ничего нет. Нужно лишь подумать. Условие простое. "Если день недели какой-либо торгуем.. ИЛИ Если день недели любой, кроме выходных - торгуем..". То же самое и со временем. Вопрос лишь как это красиво завернуть в функцию...
          Лично я написать структуру, которая принимаем необходимые данные из input-переменных бота. А далее реализовал в структуре сравнение т.е. оператор сравнения.

          Комментарий

          • #6 Свернуть

            Сообщение от evnt Посмотреть сообщение
            Спасибо, но не годится. Надо из Start().
            1. Если бы вы проштудировали документацию по MQL, то знали бы, что Start() - это устаревшая функция(хотя еще и работает, ее оставили только для совместимости со старым кодом и не рекомендуют использовать для новых разработок), а в современных билдах терминала эту Start() заменяет OnTick(). Одновременное использование в советнике функций Start() и OnTick() не имеет смысла и может привести к непредсказуемым результатам.
            Читаем тут -> https://docs.mql4.com/ru/mql4changes
            и тут -> https://docs.mql4.com/ru/runtime/running
            Так что вы уж как-то определитесь, что вам нужно... Либо Start(), либо OnTick().

            2. Тот вариант, что я привел будет одинаково правильно работать как в Start() так и в OnTick().
            3. Если уж вы знаете как отслеживать наличие доступных для торговли инструментов, то нафига городить огород со всякими задержками? Просто отслеживайте наличие нужных доступных инструментов и как только они появятся дайте советнику волю.
            Последний раз редактировалось ir0407; 11.10.2018, 23:15.

            Комментарий

            • #7 Свернуть

              Сообщение от ir0407 Посмотреть сообщение
              1. Если бы вы проштудировали документацию по MQL, то знали бы, что Start() - это устаревшая функция(хотя еще и работает, ее оставили только для совместимости со старым кодом и не рекомендуют использовать для новых разработок), а в современных билдах терминала эту Start() заменяет OnTick(). Одновременное использование в советнике функций Start() и OnTick() не имеет смысла и может привести к непредсказуемым результатам.
              Читаем тут -> https://docs.mql4.com/ru/mql4changes
              и тут -> https://docs.mql4.com/ru/runtime/running
              Так что вы уж как-то определитесь, что вам нужно... Либо Start(), либо OnTick().

              2. Тот вариант, что я привел будет одинаково правильно работать как в Start() так и в OnTick().
              3. Если уж вы знаете как отслеживать наличие доступных для торговли инструментов, то нафига городить огород со всякими задержками? Просто отслеживайте наличие нужных доступных инструментов и как только они появятся дайте советнику волю.
              1.Да! Если бы я проштудировал! Но увы. Даже то, что штудировал - перепутал
              Я имел в виду OnInit(), конечно, а не Start()
              2. Ваш вариант не годится, т.к.
              int OnInit()
              {
              //---
              Pause(5);//пауза на 5 сек
              MessageBox("!");
              //---
              return(INIT_SUCCEEDED);
              }
              //+------------------------------------------------------------------+
              bool Pause(int T)
              {
              datetime T1=TimeCurrent();
              if(TimeCurrent()>(T1+T))return(true);// так ведь не пройдет без else ...
              }

              3. Я отследил из OnInit(). Торговать нечем. Все, конец работы.
              Как мне не сразу начинать отслеживать, а поставить в воскресенье на паузу, чтоб он начал отслеживать в понедельник?
              Последний раз редактировалось evnt; 12.10.2018, 16:54.
              PAMM Gap1 и PAMM Gap2 советника GapFixer NK_A, а также много других советников и всякой всячины от evnt.

              Комментарий

              • #8 Свернуть

                Сообщение от evnt Посмотреть сообщение
                1.Да! Если бы я проштудировал! Но увы. Даже то, что штудировал - перепутал
                Я имел в виду OnInit(), конечно, а не Start()
                Бывает... Но в нашем деле желательно оперировать актуальными и четкими терминами.
                Сообщение от evnt Посмотреть сообщение
                2. Ваш вариант не годится, т.к.
                int OnInit()
                {
                //---
                Pause(5);//пауза на 5 сек
                MessageBox("!");
                //---
                return(INIT_SUCCEEDED);
                }
                Опять вы зациклились на этих паузах... Они вам не нужны. Аргументы:
                1. Задержки в OnInit() - плохая идея. Метаквоты не рекомендуют делать в OnInit() какие либо задержки, т.к. эта функция вызывается только один раз на этапе загрузки советника на чарт, но еще полной подгрузки торгового окружения советника в терминале и поэтому она должна отрабатывать максимально быстро.
                2. MessageBox() в OnInit() применять тоже нежелательно, т.к. пока он отображается работа функции OnInit() останавливается, а это снова возвращает нас к пункту 1.
                3. В момент работы OnInit() многие данные терминала могут быть еще не доступны советнику или, как вариант, просто тупо не актуальны. И поэтому нет гарантии, что любые запросы к терминалу в OnInit() (а TimeCurrent() - это не что иное, как запрос данных у терминала) будут обработаны корректно, а данные получены правильно. Особенно это касается перезагрузок терминала с работающими советниками в нем.
                4. OnInit() желательно использовать только для настройки каких либо внутренних собственных переменных советника, содержимое которых не нуждается в обращении к данным терминала, но должно содержать некоторые стартовые значения необходимые для корректной работы советника.

                Сообщение от evnt Посмотреть сообщение
                3. Я отследил из OnInit(). Торговать нечем. Все, конец работы.
                Как мне не сразу начинать отслеживать, а поставить в воскресенье на паузу, чтоб он начал отслеживать в понедельник?
                А зачем что-то вообще отслеживать, городить какие-то паузы и т.п.? В выходные тики не идут, следовательно OnTick() стоит колом, т.е. не вызывается и работа советника тупо остановлена до тех пор пока не придет первый тик понедельника. Другое дело, что наличие тиков еще не есть гарантия того, что по инструменту уже можно торговать. Вот тут-то вам и надо проверять возможность торговли и если она появилась не мешать советнику работать. Сделать это можно примерно так:
                Код:
                void OnTick()
                {
                  if(SymbolInfoInteger("EURUSD", SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_DISABLED) return;
                  
                  //Дальше код вашего советника...
                }
                И никакого мозгодрыга с задержками совершенно не нужно...

                Комментарий

                • #9 Свернуть

                  ir0407, полностью прав. С проверкой при инициализации в мкл костыль. Я тоже боролся с этим несколько часов. Потом забил. Не выйдет. Не скажу точно, что я писал в тот момент, но скажу абсолютно точно, что есть костыли в этом плане. Например, проверить синхронизованность котировок при инициализации - не выйдет. Я пришёл к выводу, что если есть необходимость (высокочастотная торговля, хотя.. это мкл не для этого создавалась) это лучше делать по таймеру и не будет дополнительных головняков.

                  Комментарий

                  • #10 Свернуть

                    Сообщение от скальпер Посмотреть сообщение
                    ir0407Например, проверить синхронизованность котировок при инициализации - не выйдет. Я пришёл к выводу, что если есть необходимость (высокочастотная торговля, хотя.. это мкл не для этого создавалась) это лучше делать по таймеру и не будет дополнительных головняков.
                    cекция инициализации не предназначена для этого, но прекрасно работает решение: запустить подкачку исторических данных при запуске, подкачка происходит асинхронно, как раз пройдет время, что бы терминал смог связаться сервером
                    высокочастотная торговля работает на МТ4, но нужны счета не Instant Execution, там не может быть и речи о HFT по определению
                    ну и в целом, чтобы писать код под МТ, нужно понимать идеологию разработчиков, иначе сколько копий ломали, ничего не работает

                    Комментарий

                    • #11 Свернуть

                      Сообщение от IgorM Посмотреть сообщение
                      cекция инициализации не предназначена для этого, но прекрасно работает решение: запустить подкачку исторических данных при запуске, подкачка происходит асинхронно, как раз пройдет время, что бы терминал смог связаться сервером
                      высокочастотная торговля работает на МТ4, но нужны счета не Instant Execution, там не может быть и речи о HFT по определению
                      ну и в целом, чтобы писать код под МТ, нужно понимать идеологию разработчиков, иначе сколько копий ломали, ничего не работает
                      Ну так это только в мкл не предназначена. На самом деле, я в энтерпрайз-приложениях на Java много чего в те же конструкторы запихивал. Например, проверка отправки емйелов, получение почты, если не получена ещё относительно некоторого времени суток и тд. даже инициализация должна выполнять всё, что там есть, а не пробегаться бегло мимо и убегать дальше.. Если что-то не выполнилось, возвращается неудача, а если процесс требует времени на выполнение - оно выделяется. Кстати, подобные возможности есть ещё с времён Java 1.5. Ниже, возможно, тоже есть, но я с ним не работал.
                      Но, в данном случае, мы имеет дело не с нормальным объекто-ориентированным языком, а с мкл. Поэтому будет писать примитивнее.

                      Комментарий

                      • #12 Свернуть

                        Сообщение от скальпер Посмотреть сообщение
                        Ну так это только в мкл не предназначена. На самом деле, я в энтерпрайз-приложениях на Java много чего в те же конструкторы запихивал. Например, проверка отправки емйелов, получение почты, если не получена ещё относительно некоторого времени суток и тд. даже инициализация должна выполнять всё, что там есть, а не пробегаться бегло мимо и убегать дальше.. Если что-то не выполнилось, возвращается неудача, а если процесс требует времени на выполнение - оно выделяется. Кстати, подобные возможности есть ещё с времён Java 1.5. Ниже, возможно, тоже есть, но я с ним не работал.
                        Но, в данном случае, мы имеет дело не с нормальным объекто-ориентированным языком, а с мкл. Поэтому будет писать примитивнее.
                        нет, я не просто так упомянул "понимать идеологию разработчиков, иначе сколько копий ломали, ничего не работает "
                        что такое MQL? это программа которая получает доступ к терминалу МТ, что такое терминал? это программа которая отправляет запросы на сервер.
                        как работает MQL-программа: бросили на график эксперта или индикатор, терминал готовит переменные окружения и сам чарт, в это время в MQL-программе запускается OnInit() - справка в помощь, разработчики пишут зачем OnInit()
                        как работает терминал: открыли график, запрос на сервер на обновление чарта, открыли ордер - отправка запроса на сервер и обмен данными с сервером

                        и дело не в MQL, а в понимании, что вот эти 3 "хреновины" (MQL,МТ и сервер) работают каждый сам по себе, и задача разработчиков была это все организовать и дать понятную для большинства программистов модель взаимодействия и не допустить несанкционированные действия
                        а задача программиста это проверять состояния терминала и сервера путем выдачи команд и проверок
                        подозреваю, что разделение MQL программ на скрипт, индикатор, эксперт Вам может тоже показаться не сильно логичным, там тоже все логично и сделано так, чтобы освободить программиста от рутинных действий, может быть в следующий раз продолжу, лень по клавиатуре стучать

                        Комментарий

                        • #13 Свернуть

                          Сообщение от IgorM Посмотреть сообщение
                          нет, я не просто так упомянул "понимать идеологию разработчиков, иначе сколько копий ломали, ничего не работает "
                          что такое MQL? это программа которая получает доступ к терминалу МТ, что такое терминал? это программа которая отправляет запросы на сервер.
                          как работает MQL-программа: бросили на график эксперта или индикатор, терминал готовит переменные окружения и сам чарт, в это время в MQL-программе запускается OnInit() - справка в помощь, разработчики пишут зачем OnInit()
                          как работает терминал: открыли график, запрос на сервер на обновление чарта, открыли ордер - отправка запроса на сервер и обмен данными с сервером
                          У кого логика такая же как у мтшников, тем проще изначально. Я лично понимаю это проще. Идеология адекватного терминала такова, что если происходит запрос количества баров какого-нить ТФ, возвращается это количество, если нужно проверить при инициализации (конструкторе грубо говоря индюка, например) допустим синхронизованность котировок с задержкой, задержка должна быть (а не так как в МТх она не работает по каким-то фантастическим причинам). Есть вещи которые логичны для меня, но этого нет в МТх, хотя, в других терминалах с коробки многие вещи имеются. Но.. не суть. По неоторых причинам, сейчас приходится писать на МТх, и, с этим не поспоришь..

                          Сообщение от IgorM Посмотреть сообщение
                          и дело не в MQL, а в понимании, что вот эти 3 "хреновины" (MQL,МТ и сервер) работают каждый сам по себе, и задача разработчиков была это все организовать и дать понятную для большинства программистов модель взаимодействия и не допустить несанкционированные действия
                          а задача программиста это проверять состояния терминала и сервера путем выдачи команд и проверок
                          Как-то абстрактно..))

                          Сообщение от IgorM Посмотреть сообщение
                          подозреваю, что разделение MQL программ на скрипт, индикатор, эксперт Вам может тоже показаться не сильно логичным, там тоже все логично и сделано так, чтобы освободить программиста от рутинных действий, может быть в следующий раз продолжу, лень по клавиатуре стучать
                          Нет. Я прекрасно это понимаю. Не новичок. Бывают моменты, когда моё мировоззрение не стыкуется с метаквотскиой и приходится подолбался, но я уже достаточно много чего написал и реализовал целую иерархию классов, библиотек.. для комфортной работы.

                          Комментарий

                          • #14 Свернуть

                            Сообщение от скальпер Посмотреть сообщение
                            Как-то абстрактно..))
                            а чего абстрактного? Вы как ява-программист должны представлять работу приложений клиент-сервер, в МТ такая же ситуация, терминал обслуживает все и MQL-программы (индикаторы и советники), а готовность терминала нужно проверять
                            Вот Вы хотите в OnInit() получить данные , зачем? делайте как предлагают разработчики, в OnInit() проинициализируйте все, что требуется и можете сделать запрос на подкачку истории - он асинхронный, поэтому не потребуется ожидать ответа терминала или сервера
                            разработчики рекомендуют в OnInit() производить минимум действий, не хочу читать справку, но видел что выполнение OnInit() ограничено по времени, кажется это применительно к индикаторам? и если MQL-программа не сумела выполнить OnInit за 2 или 3 секунды, то возможно терминал прекратит ее выполнение
                            делайте как предлагают разработчики, OnInit - инициализация, в OnTick() запустится когда для MQL-программы все уже готово и данные графика проинициализированны и соединение с сервером есть и ... и в 99% случаев ничего не нужно проверять и настраивать, просто берешь и пользуешься
                            Сообщение от скальпер Посмотреть сообщение
                            хотя, в других терминалах с коробки многие вещи имеются
                            Вы еще QUIK приведите в пример, пару лет назад был я на форумах по QUIK... жуть как все удобно... каменный век

                            Комментарий

                            • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
                            • #15 Свернуть

                              Народ, вы о чем? Я так понял, что вы, как и я, не знаете как сделать. Ничего стыдного в этом нет. Во всяком случае, я - не стыжусь.

                              Поторю вопрос - Как написать функцию Пауза(До определенного времени или На определенный период)? Но чтобы при этом не завешивать компьютер конструкциями типа см. в головном посте. Или может есть оператор такой в MQL? Я искал - не нашел. Зачем это нужно уже объяснял. Объясню еше раз подробнее:

                              Достаточно навороченный мультивалютный советник торгует большой кучей валют. Советник набрасывается на любой график. Хоть на тот, который не торгуется. Вот, что он делает в OnInit() из того, что тут мне пишут делать нельзя (выдавая при этом сообщения, требующие некоторые действия от пользователя): перебирает все допустимые варианты пар, определяя, какими сейчас можно торговать, изучает их историю, отфильтровывает пары, которые не проходят по определенным условиям... В результате для торговли остается около 100 валютных пар, когда запускаем в будни, или 0 пар, если запустить в воскресенье. Поэтому приходится или не спать в воскресенье до 00:01 понедельника, или пропускать одну ночь торговли, запуская сов в пнд утром. А я хочу запустить в воскресенье вечером, чтоб он начал работать в понедельник
                              А по OnTick() запускается цикл по всем прошедшим фейсконтроль парам.
                              PAMM Gap1 и PAMM Gap2 советника GapFixer NK_A, а также много других советников и всякой всячины от evnt.

                              Комментарий

                              working...
                              X