Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 232

 
 Всем привет!!! Я начинающий. Хочу спросить: при компиляции советника в ошибках выдается:'StopLoss' - declaration without type.

Вот какой код:

 

//--- Для работы с брокерами, использующими 3-х и 5-ти значные котировки,
//--- умножаем на 10 значения SL и TP
   StopLoss = STP;- И ВОТ ЗДЕСЬ НАДО ЧТО ТО ИЗМЕНИТЬ??????
   TakeProfit = TKP;
   if(_Digits==5 || _Digits==3)
   {
    SL = SL*10;
    TP = TP*10;

   }

Кто что подскажет 

 
vyacheslavovich:
 Всем привет!!! Я начинающий. Хочу спросить: при компиляции советника в ошибках выдается:'StopLoss' - declaration without type.
Это значит что переменная StopLoss не была объявлена ранее.
 
vyacheslavovich:
 Всем привет!!! Я начинающий. Хочу спросить: при компиляции советника в ошибках выдается:'StopLoss' - declaration without type.

Вот какой код:

 

//--- Для работы с брокерами, использующими 3-х и 5-ти значные котировки,
//--- умножаем на 10 значения SL и TP
   StopLoss = STP;- И ВОТ ЗДЕСЬ НАДО ЧТО ТО ИЗМЕНИТЬ??????
   TakeProfit = TKP;
   if(_Digits==5 || _Digits==3)
   {
    SL = SL*10;
    TP = TP*10;

   }

Кто что подскажет 

   double StopLoss = STP;
   double TakeProfit = TKP;

так лучше должно быть

 
Добрый день. Второй день бьюсь на запусками внешних файлов. Подскажите что не так.
#import "shell32.dll"
   int ShellExecuteA(int hwnd, string lpOperation, string lpFile,string lpParameters,string lpDirectory,int nShowCmd);
#import
void OnStart()
  {
   ShellExecuteA(CHART_WINDOW_HANDLE,"open","F:\\222.mp3", NULL,NULL,1);
  }
 
Andrei-1:
Добрый день. Второй день бьюсь на запусками внешних файлов. Подскажите что не так.
//+------------------------------------------------------------------+
//| Функция получает хэндл графика                                   |
//+------------------------------------------------------------------+
int ChartWindowsHandle(long chart_ID)
  {
//--- подготовим переменную для получения значения свойства
   long result=-1;
//--- сбросим значение ошибки
   ResetLastError();
//--- получим значение свойства
   if(!ChartGetInteger(chart_ID,CHART_WINDOW_HANDLE,0,result))
     {
      //--- выведем сообщение об ошибке в журнал "Эксперты"
      Print(__FUNCTION__+", Error Code = ",GetLastError());
     }
//--- вернем значение свойства графика
   return((int)result);
  }

Но только это будет получение хендла графика. А сам график содержится в окне более высокого класса (родительское окно). В  ShellExecuteA нужно подставлять хендл родительского окна.

Посмотрите скрипт Transparent MetaTrader 5: в нем как раз есть функции получения хэндла терминала, через ChartID().

Transparent MetaTrader 5
Transparent MetaTrader 5
  • голосов: 19
  • 2014.03.10
  • Karputov Vladimir
  • www.mql5.com
Данный скрипт позволяет делать полупрозрачным весь терминал.
 
Приветствую всех!
В MQL4 есть хорошая функция - Barshift. К сожалению, в MQL5 она отсутствует. Как вариант замены этой функции, можно копировать данные таймсерии с начальной даты (для которой ищется смещение) и смотреть количество скопированных элементов. Однако если надо обработать много разных дат, то загружать комп постоянным многократным копированием таймсерии как-то не хочется. Само-собой напрашивается вариант поиска нужных значений с помощью перебора внутри массива. И тут плавно подходим к вопросу. :) Покопавшись в документации, обнаружил только одну стандартную функцию, которая ищет значение в массиве: ArrayBSearch. Но она не работает с массивами, содержащими данные типа datetime. Существует ли стандартная функция для поиска по дате внутри массива типа datetime? Или возможно использовать какое-то преобразование данных?
 
BlackTomcat:
Приветствую всех!
В MQL4 есть хорошая функция - Barshift. К сожалению, в MQL5 она отсутствует. Как вариант замены этой функции, можно копировать данные таймсерии с начальной даты (для которой ищется смещение) и смотреть количество скопированных элементов. Однако если надо обработать много разных дат, то загружать комп постоянным многократным копированием таймсерии как-то не хочется. Само-собой напрашивается вариант поиска нужных значений с помощью перебора внутри массива. И тут плавно подходим к вопросу. :) Покопавшись в документации, обнаружил только одну стандартную функцию, которая ищет значение в массиве: ArrayBSearch. Но она не работает с массивами, содержащими данные типа datetime. Существует ли стандартная функция для поиска по дате внутри массива типа datetime? Или возможно использовать какое-то преобразование данных?
Уже давно написаны аналоги - поищите на сайте.
 
А есть ли способ дополнять файл (особенно csv) через FileOpen без перезаписи? В смысле что FileOpen(name,FILE_CSV|FILE_WRITE|...) просто пересоздает чистый файл, а не открывает существующий в случае, если он уже был. С текстовым вроде удалось разобраться, хоть и не особо элегантным способом: просто прочитывать его предварительно в переменную и добавлять к новой записи. Вот только csv подобный фокус не прокатывает... 
 
 Всем привет и доброго времени суток!!!Сегодня пытался заработать на новостях по GBP,выставил два отложеных ордера buy stop и sell stop,стоп лосс выставил по 200 пунктов,тейк профит по 100 пунктов.После выхода новостей цена пошла строго вверх,но ордер,который buy stop закрылся с результатом -0,34$ хотя цена шла строго вверх на 500 пуктов.Подскажите новичку что это может быть и с чем это едят!?Кстати это уже не в первый раз,а раньше все было нормально.
 
не знаю ... спред наверное
Причина обращения: