Скажите, а можно в МТ4 или в МТ5 напрямую передавать сигналы из внешних приложений?

 
Мне необходимо либо напрямую передавать сигналы на покупку или на продажу в Метак или сделать так, что бы советник работал не по тикам, а например срабатывал раз в секунду. Подскажите, какой-нибудь из этих вариантов реализуем?
 
Из каких внешних?
 

прям сразу напрямую так не получится. Будет опосредовано через что то (или эксперт который читает ваши сигналы или WinAPI).

а по поводу срабатывания по секундам вполне решаемо. Для этого можно просто зациклить эксперт и проверять время.

 
Zhunko:
Из каких внешних?
Из любых!А из каких можно?
 
sergeev:

прям сразу напрямую так не получится. Будет опосредовано через что то (или эксперт который читает ваши сигналы или WinAPI).

а по поводу срабатывания по секундам вполне решаемо. Для этого можно просто зациклить эксперт и проверять время.


Я в этом плане не сильно искушен, поэтому разъясните пожалуйста, что такое WinAPI? И если экспортировать через него будет завязано на время или на тики?
 

Очень напоминает - у меня есть пуговица, пришейте к ней пару брюк.

На каком уровне подготовки находятся Ваши знания по программированию и по МКЛ в частности?

 

Можно использовать скрипт

Если раз в секунду (период не сильно короткий), то пойдет передача через файл, который раз в секунду открывается МТ считываются данные и файл закрывается.

Если это МТ5, то можно обеспечить общий доступ к файлу из нескольких приложений, если MT4 - может возникнуть конфликт, если два приложения хотят открыть файл для записи.

Здесь возможны редкие пропуски.

int start()
  {
//----
   int Handle1;
   string File_Name="Rez.csv";
   string String_rez="";
   
   while (true)
   {//начало цикла
   Sleep(1000);//одна секунда
   Handle1=FileOpen(File_Name,FILE_CSV|FILE_READ);//Открытие файла
   if(Handle1==-1)                      // Неудача при открытии файла
     {
      Print("Ошибка при открытии файла. ",// Сообщение об ошибке 
              "Возможно, файл занят другим приложением");
      continue;                          // в начало цикла      
     }
   String_rez=FileReadString(Handle1); //Пишем в текстовую переменную первую строку файла 
   FileClose(Handle1);
   //-------взять информацию из String_rez и обработать как хочется
   }//конец цикла            
   FileClose(Handle1);                 
               
      

//----
   return(0);
  }
//+------------------------------------------------------------------+
это примитивный вариант, можно обрабатывать и многострочные файлы с разделителями, пример есть в учебнике по mql4.
Причина обращения: