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

 
User_mt5:
Да, мне следовало бы представить код. Но он простой: в функции OnChartEvent() в первой строке стоит принт:

Наверное, этого недостаточно..

Вы представили программные строки, содержание которых я посмотрю подробно и поэкспериментирую. Может быть, это и решит вопрос.

Спасибо большое!

код из справки рабочий, я в логе получил на прокрутку колесика значения delta = +120 и delta = - 120 

что соответствует прокрутке в одну сторону и в другую

ЗЫ: учтите, что Printы терминал иногда может "проглотить" если будет частый вывод в лог

 
Igor Makanu:

код из справки рабочий, я в логе получил на прокрутку колесика значения delta = +120 и delta = - 120 

что соответствует прокрутке в одну сторону и в другую

ЗЫ: учтите, что Printы терминал иногда может "проглотить" если будет частый вывод в лог

MQL для меня во многом остаётся загадочным. В данном случае после активации мыши событие 9 не ушло из логов. Теперь в одну сторону - 9 и 11, а в другую -  только 11. Я этого не понимаю, хоть убейте.

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

120 я тоже получил и тоже мне пока не понятно что это такое. Буду разбираться.

Вам ещё раз спасибо, Вы очень помогли!

 
User_mt5:

MQL для меня во многом остаётся загадочным. В данном случае после активации мыши событие 9 не ушло из логов. Теперь в одну сторону - 9 и 11, а в другую -  только 11. Я этого не понимаю, хоть убейте.

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

120 я тоже получил и тоже мне пока не понятно что это такое. Буду разбираться.

Вам ещё раз спасибо, Вы очень помогли!

тут дело не в MQL, а сама Виндовс так события формирует, к примеру сообщение Виндовс клик мышью формируется путем выдачи нескольких событий: кнопка нажата , затем кнопка отжата - а обработать нужно всего лишь один клик

так и с колесиком - формируется очередь сообщений

 
Igor Makanu:

тут дело не в MQL, а сама Виндовс так события формирует, к примеру сообщение Виндовс клик мышью формируется путем выдачи нескольких событий: кнопка нажата , затем кнопка отжата - а обработать нужно всего лишь один клик

так и с колесиком - формируется очередь сообщений

Раз Вы говорите, наверное это так и есть. Но я не проф. программист, мне некоторые моменты трудно понять.

Спасибо.

 

Всех приветствую!

Помогите однозначно разобраться в правильности расчёта приемлемого риска в деньгах и объема планируемой позиции, интересует именно формула учитывающая ТикПрайс и другие нюансы, а не рассуждения на тему.

Входные данные:

Депозит, $             = 3000
Риск на сделку, %  = 5
Цена риска, $        = ?
Размер SL, point    = 250
Цена тика              = 1,3
Объем лота           = ?

Считаю так:

Цена риска, $ = Депозит, $ * Риск на сделку, % / 100
Объем лота = Цена риска, $ / Размер SL, point / Цена тика

 
Anzhela Sityaeva:

Всех приветствую!

Помогите однозначно разобраться в правильности расчёта приемлемого риска в деньгах и объема планируемой позиции, интересует именно формула учитывающая ТикПрайс и другие нюансы, а не рассуждения на тему.

Входные данные:

Депозит, $             = 3000
Риск на сделку, %  = 5
Цена риска, $        = ?
Размер SL, point    = 250
Цена тика              = 1,3
Объем лота           = ?

Считаю так:

Цена риска, $ = Депозит, $ * Риск на сделку, % / 100
Объем лота = Цена риска, $ / Размер SL, point / Цена тика

Посмотрите в этом советнике.
Советник 4UJ
Советник 4UJ
  • www.mql5.com
Рекомендаций по валютной паре нет. Используемые индикаторы: Простая скользящая средняя с периодом 48 — SMA(48). Индикатор ATR с периодом 7 и MA по ценам ATR с периодом 30 Условия для покупок: 1. Цена находится выше скользящей средней. 2. Индикатор ATR пересекает свою скользящую среднюю снизу вверх. 3. Как только сформируется первая медвежья...
 
Alexey Viktorov:
Посмотрите в этом советнике.

Благодарю за ответ!

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

Первый вариант: Объем лота = Цена риска, $ / Размер SL, point / Значение тика
Второй вариант : Объем лота = Цена риска, $ / ( Размер SL, point * Значение тика )

 
Anzhela Sityaeva:

Благодарю за ответ!

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

Первый вариант: Объем лота = Цена риска, $ / Размер SL, point / Значение тика
Второй вариант : Объем лота = Цена риска, $ / ( Размер SL, point * Значение тика )

А какую роль в формулах играет запятая??? Ну, а если я правильно понимаю вопрос, то вспомните уроки математики 5го класса: Сначала выполняются выражения в скобках и потом за скобками. Сначала возведение в степень, потом умножение и деление и в последнюю очередь сложение и вычитание в последовательности слева на право.

Пример:

100/10/10=1

100/(10*10)=1

 
Alexey Viktorov:

А какую роль в формулах играет запятая??? Ну, а если я правильно понимаю вопрос, то вспомните уроки математики 5го класса: Сначала выполняются выражения в скобках и потом за скобками. Сначала возведение в степень, потом умножение и деление и в последнюю очередь сложение и вычитание в последовательности слева на право.

Пример:

100/10/10=1

100/(10*10)=1

Запятая не играет роли в формуле, вы правильно заметили, она просто отделяет значение от типа, для облегчения понимания не больше. 5 класс это давно было :), да и с математикой ни когда не дружила, так уж получилось. Но о порядке выполнения действий помню.

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

 

Всем здрасти...

Пытаюсь из советника удалить им же добавленный индикатор. Делаю так:

//Объявляю переменные
int win_ind=-1,
    handle_ind = INVALID_HANDLE;

//Создаю
   handle_ind= iCustom(NULL,0,"ind");
   if(handle_ind== INVALID_HANDLE){
      Print("Не удалось создать индикатор. Код ошибки: ",GetLastError());
      return(false);
   }
   win_ind=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL); //--- получим номер нового подокна, в которое добавим индикатор 
   if(!ChartIndicatorAdd(0,win_ind,handle_ind)){
      Print("Не удалось добавить индикатор на окно графика. Код ошибки: ",GetLastError());
      return(false);
   }

//Удаляю
   string name = ChartIndicatorName(0, win_ind, 0);
   bool res = ChartIndicatorDelete(0, win_ind, name); 
   if (!res) PrintFormat("Не удалось удалить индикатор %s с окна №%d. Код ошибки %d", name,win_ind,GetLastError());

В индикаторе:

int OnInit(){
   IndicatorSetString(INDICATOR_SHORTNAME,"blablabla");

Индикатор добавляется, номер подокна и короткое имя верное, но при удалении ошибка:

2019.05.08 12:01:10.068 2019.04.03 12:39:31   Не удалось удалить индикатор blablabla с окна №2. Код ошибки 4014

4014 - "Системная функция не разрешена для вызова". Подскажите, пожалуйста, что это значит, как удалить индикатор?

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