Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1087

 
Sysmart:

Вопрос по тестированию (см. картинку с тестера)

- на картинке открываем ордер Sell (зеленая  стрелка на картинке), у него тейк-профит 1,10439;

- добавляем отложенный ордер Селл стоп (желтая стрелка на картинке) с ценой 1,10441;

Вопрос, почему не сработал тейк-профит на уровне 1,10439, а сработал Селл стоп (красная стрелка) на уровне 1,10441?

Когда вы покупаете по 1.3000, вы покупаете дорого по плохой цене 1.3003(к примеру), когда вы закрываете позицию вы ставите ТП допустим на продажу 1.2020, ваша сделка закроется по цене когда Bid будет на 1.2017 а Ask на 1.2020, т.е. вы 2 раза платите спрэд за управление вашей позицией, а разница идёт конторе в карман. Как вариант можно торговать на более ликвидных счетах типа НДД(5ти знак)

 
novichok2018:
Здравствуйте! Вопрос не в тему ветки, но где задать его, чтоб получить действительно компетентный ответ, не знаю. Гугл ничем не помог. Вопрос такой: сегодня вдруг индекс DAX30 начал торговаться не в 9-00, а в 2-15, почему? Нигде, в т.ч. и на сайте Франкфуртской биржи объяснения или предупреждения не нашел. Может кто-нибудь более информирован и может подсказать, где найти информацию?

Ну, раз никто не в курсе по этому вопросу, тогда подскажите, пожалуйста, как привязать начало работы советника к началу торгов по инструменту. Сейчас у меня привязка просто ко времени: if(Hour()==9) {КОД}. Поэтому с изменением времени начала торгов с 9-00 на 2-15 условие на открытие позиций перестает работать. А если просто поменять время,то нет гарантии, что опять изменится время начала торгов, а я это не замечу.

 
novichok2018:

Ну, раз никто не в курсе по этому вопросу, тогда подскажите, пожалуйста, как привязать начало работы советника к началу торгов по инструменту. Сейчас у меня привязка просто ко времени: if(Hour()==9) {КОД}. Поэтому с изменением времени начала торгов с 9-00 на 2-15 условие на открытие позиций перестает работать. А если просто поменять время,то нет гарантии, что опять изменится время начала торгов, а я это не замечу.

поиском по кодобазе поищите

вот первое что нашлось https://www.mql5.com/ru/code/27315

 
Sysmart:

Вопрос по тестированию (см. картинку с тестера)

- на картинке открываем ордер Sell (зеленая  стрелка на картинке), у него тейк-профит 1,10439;

- добавляем отложенный ордер Селл стоп (желтая стрелка на картинке) с ценой 1,10441;

Вопрос, почему не сработал тейк-профит на уровне 1,10439, а сработал Селл стоп (красная стрелка) на уровне 1,10441?

Просто нужно помнить,что Sell-ордера открываются по Bid, а закрываются по Ask.  Для ордеров Buy наоборот. Вот и всё.

 
Igor Makanu:

поиском по кодобазе поищите

вот первое что нашлось https://www.mql5.com/ru/code/27315

Спасибо, конечно, но этот пример не в тему. Нужна привязка ко времени начала торгов по конкретному инструменту или ко времени начала работы биржи,торгующей данным инструментом. В кодобазе не нашел.

 

Здравствуйте, вот пиcал код и столкнулся с такой проблемой.

Код рабочий, если исключить строчку:

#property strict

С ней же, сразу перестает работать.

Вот сам фрагмент кода, где опознается ошибка:

void manageAlerts()
{
   if (alertsOn)
   {
      if (alertsOnCurrent)
           int whichBars = 0;
           else whichBars = 1; 
         if (arrup[whichBars]  != EMPTY_VALUE) doAlert(whichBars,"up");
         if (arrdwn[whichBars] != EMPTY_VALUE) doAlert(whichBars,"down");
   }
}

А вот результаты по итогу:

 'whichBars' - undeclared identifier; 7 строка фрагмента

 'whichBars' - undeclared identifier; 8 строка фрагмента


Как это исправить?

 
pykachilo:

Здравствуйте, вот пиcал код и столкнулся с такой проблемой.

Код рабочий, если исключить строчку:

С ней же, сразу перестает работать.

Вот сам фрагмент кода, где опознается ошибка:

А вот результаты по итогу:

 'whichBars' - undeclared identifier; 7 строка фрагмента

 'whichBars' - undeclared identifier; 8 строка фрагмента


Как это исправить?

whichBars определить в начале функции, а не в условии.
 

Добрый день.

Такой вопрос: в документации в разделе "Типы событий графика" (https://docs.mql4.com/ru/constants/chartconstants/enum_chartevents
для события CHARTEVENT_KEYDOWN опредено что параметр sparam представляет собой "Строковое значение битовой маски, описывающее статус кнопок клавиатуры"

Однако я не могу найти информацию о том какие биты за что отвечают.

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

Где можно посмотреть документацию по sparam="строковому значению битовой маски, описывающий статус кнопок клавиатуры" для события CHARTEVENT_KEYDOWN ?

Спасибо.

Типы событий графика - Константы графиков - Константы, перечисления и структуры - Справочник MQL4
Типы событий графика - Константы графиков - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Существуют 9 видов событий, которые можно обрабатывать с помощью функции предопределенной функции OnChartEvent(). Для пользовательских событий предусмотрено 65535 идентификаторов в диапазоне от CHARTEVENT_CUSTOM до CHARTEVENT_CUSTOM_LAST включительно. Для генерации пользовательского события необходимо использовать функцию EventChartCustom...
 
Maksims Ignatovs:

Где можно посмотреть документацию по sparam="строковому значению битовой маски, описывающий статус кнопок клавиатуры" для события CHARTEVENT_KEYDOWN ?

можно распечатать через Print(sparam) для нужных кнопок. 

я не знаю вашей задачи, но сам предпочитаю lparam использовать, чтобы не думать о языке, капсе и пр. вариациях

 
Igor Zakharov:

можно распечатать через Print(sparam) для нужных кнопок. 

я не знаю вашей задачи, но сам предпочитаю lparam использовать, чтобы не думать о языке, капсе и пр. вариациях

Интересно решение для общего случая. Понятно, что для конкретной клавиши можно методом перебора всевозможных комбинаций (язык, капсы и т.д) посмотреть что происходит и даже попытаться сделать какие-то выводы из этого,
НО ведь этот вопрос должен быть отражен в документации. Для событий мыши так и есть - все доступно в документации. А клавиатура чем провинилась?

Причина обращения: