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

 
Комментарии, не относящиеся к этой теме, были перенесены в "Вопросы от начинающих MQL4 MT4 MetaTrader 4".
 

Вопрос, на который не нашёл однозначного ответа:

Нужно использовать 2 индикатора с четырьмя периодами, это нужно в ините 4 раза хандулить один индикатор, и 4 раза второй?

Или можно как-то по одному разу каждый, а то таким способом и строк в файле не хватит.

Спасибо!

 
Vitaly Muzichenko:

Вопрос, на который не нашёл однозначного ответа:

Нужно использовать 2 индикатора с четырьмя периодами, это нужно в ините 4 раза хандулить один индикатор, и 4 раза второй?

Или можно как-то по одному разу каждый, а то таким способом и строк в файле не хватит.

Спасибо!

Представьте, Вам нужно открыть 8 дверей, у каждой - свой ключ. Сколько ключей Вам нужно, чтобы открыть все двери?
 
Alexey Kozitsyn:
Представьте, Вам нужно открыть 8 дверей, у каждой - свой ключ. Сколько ключей Вам нужно, чтобы открыть все двери?

Одна отмычка, и не более. 

Я могу здесь это использовать, может есть возможность и Я о ней не знаю? Остановилась работа из-за неопределённости(

 
Vitaly Muzichenko:

Одна отмычка, и не более. 

Я могу здесь это использовать, может есть возможность и Я о ней не знаю? 

Нет, здесь только ключами.
 
Alexey Kozitsyn:
Нет, здесь только ключами.
Спасибо, теперь буду делать уверенно, и не думать о том, что можно сделать правильно.
 
     Здравствуйте! 2017.05.05_02:58 GMT+3. Кто подскажет как получить в программном коде советника значения четырёх последних точек ZigZag'а и их индексы или время начала баров в MQL5 ? Я долго бился над этим, но пока ничего не получилось. Если применять оператор цикла while или for, разницы нет, то тестер стратегий в одном из журналов выдаёт ошибку: выход за пределы массива во включаемом файле. Вот включаемый файл. Массив значений ZigZag я получаю при помощи функции CopyBuffer() и хэндла ZigZag. Там, видимо, записаны только точки ZigZag и последовательно перебирать индексы в порядке возрастания не получается. Получается выход за пределы массива. Может господин Карпутов знает как получить последние несколько точек ZigZag и не получить выход за пределы массива?
     Я даже пытался менять код индикатора ZigZag, но что-то не получилось переписать его так, чтобы в индикаторные буферы записывались и нулевые значения. Так, чтобы при обработке циклом не получалось выхода за пределы массива. Полностью понять что написано в коде ZigZag и как он работает пока не получилось. Мне это надоело, поэтому пишу на форум.
     Считаю ручную торговлю прошлым веком. Хотя бы потому, что времени для торговли мало, да и толком не высыпаться и открывать сделки во время еды тоже желание пропало. Считаю, что написать советник мне вполне по силам. И сдаваться и отступать назад пока не собираюсь. Пока всё. Жду ответа. 03:28 GMT+3. Вставил в 03:56 GMT+3.   
Файлы:
TDiff.mqh  2 kb
 
Николай Никитюк:
     Здравствуйте! 2017.05.05_02:58 GMT+3. Кто подскажет как получить в программном коде советника значения четырёх последних точек ZigZag'а и их индексы или время начала баров в MQL5 ? Я долго бился над этим, но пока ничего не получилось. Если применять оператор цикла while или for, разницы нет, то тестер стратегий в одном из журналов выдаёт ошибку: выход за пределы массива во включаемом файле. Вот включаемый файл. Массив значений ZigZag я получаю при помощи функции CopyBuffer() и хэндла ZigZag. Там, видимо, записаны только точки ZigZag и последовательно перебирать индексы в порядке возрастания не получается. Получается выход за пределы массива.

Нет. Там записаны все точки включая пустые.

Николай Никитюк:
     Я даже пытался менять код индикатора ZigZag, но что-то не получилось переписать его так, чтобы в индикаторные буферы записывались и нулевые значения. Так, чтобы при обработке циклом не получалось выхода за пределы массива. Полностью понять что написано в коде ZigZag и как он работает пока не получилось. Мне это надоело, поэтому пишу на форум.
     Считаю ручную торговлю прошлым веком. Хотя бы потому, что времени для торговли мало, да и толком не высыпаться и открывать сделки во время еды тоже желание пропало. Считаю, что написать советник мне вполне по силам. И сдаваться и отступать назад пока не собираюсь. Пока всё. Жду ответа. 03:28 GMT+3. Вставил в 03:56 GMT+3.  

Чтобы избавиться от выхода за границы массива, надо разобраться с направлениями массивов.

Чтобы получить индексы или время баров надо вместе с копированием буфера индикатора копировать время баров CopyTime() или CopuRates() где кроме времени есть и OHLC баров.

Поскольку цикла не избежать, я-бы применил вторую форму функции

int  CopyBuffer(
   int       indicator_handle,     // handle индикатора
   int       buffer_num,           // номер буфера индикатора
   datetime  start_time,           // с какой даты
   int       count,                // сколько копируем
   double    buffer[]              // массив, куда будут скопированы данные
   );

Дальше условие: если скопировалось значение больше нуля, то это и есть точка ZigZag и сравнив это значение с High и Low этого бара будем понимать верхний или нижний экстремум.

 

Люди, помогите разобраться, что за хрень происходит в MQL5 с учетом ордеров.

Общаюсь с программистами и создается впечатление, что четкий учет ордеров по тому принципу, что был в MQL4, невозможен - нельзя задать ордеру магический номер, невозможно потом простым перебором OrdersTotal() выбрать нужные позиции на основе магика и определить, какой ордер открыт советником, а какой вручную и т.д., нельзя закрыть конкретный ордер по тикету, нельзя создать лесенку из ордеров в одном направлении, а потом закрывать самый ранний из них и т.д.

Неужели метаквоты такую хрень могли сделать? Как без этого можно работать?

 
Artyom Kuraev:

Люди, помогите разобраться, что за хрень происходит в MQL5 с учетом ордеров.

Общаюсь с программистами и создается впечатление, что четкий учет ордеров по тому принципу, что был в MQL4, невозможен - нельзя задать ордеру магический номер, невозможно потом простым перебором OrdersTotal() выбрать нужные позиции на основе магика и определить, какой ордер открыт советником, а какой вручную и т.д., нельзя закрыть конкретный ордер по тикету, нельзя создать лесенку из ордеров в одном направлении, а потом закрывать самый ранний из них и т.д.

Неужели метаквоты такую хрень могли сделать? Как без этого можно работать?

Откуда вы находите таких программистов???

ВСЁ перечисленное абсолютная чушь. Куда послать такого программиста, надеюсь сами понимаете.

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