Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1503
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пример кода индикатора зиг заг с Mql5, как правильно это реализовывается без CopyBuffer, что то не получается.
На MQL5 без CopyBuffer и не получится. Только с ним. Привычный по MQL4 стиль работы c данными от индикаторов не работает в MQL5.
На MQL5 без CopyBuffer и не получится. Только с ним. Привычный по MQL4 стиль работы c данными от индикаторов не работает в MQL5.
Это понятно, на mql5 у меня все и работает, я же написал, как заставить этот кода работать на mql4 выделил желтым то что написал, но в местах где выделено красным ошибку выдает выхода за пределы массива
Здравствуйте. Пожалуйста, вставьте код в сообщение с помощью специального окна ввода (на картинке показана кнопка для его вызова):
Теперь о коде. Вы правильно сделали, что перебрали все открытые позиции, но почему-то не выбрали ни одной позиции в тикете для дальнейшей работы с ней:
С уважением, Владимир.
Здравствуйте. Спасибо за ответ. Ниже приведен вставленный код в соответствии с запросом.
Это понятно, на mql5 у меня все и работает, я же написал, как заставить этот кода работать на mql4 выделил желтым то что написал, но в местах где выделено красным ошибку выдает выхода за пределы массива
Ой, я извиняюсь, невнимательно прочитал первое предложение.
По поводу ошибки: размер массивов high и low у вас устанавливается внутри функции iGetArray() и CopyRates(). Но там размер, по идее, должен устанавливаться значению переменной count, которая равна 300. А дальше в цикле вы хотите получить доступ к 1000 элементов. Мне кажется, вызов iGetArray() и CopyRates() вам не нужен. Достаточно вызвать
Здравствуйте. Спасибо за ваш ответ. Ниже приведен вставленный код в соответствии с запросом.
Я также пытаюсь реализовать процесс с помощью функции onTradeTransaction() из mql5. Программа компилируется нормально, но лимитные ордера на покупку не удаляются, когда нет сделки на покупку. Мне кажется, я неправильно понимаю логику. Пожалуйста, кто-нибудь должен меня поправить. Смотрите код ниже
Здравствуйте. Спасибо за ответ. Ниже приведен вставленный код в соответствии с запросом.
Здравствуйте.
Похоже, что у вас в коде не хватает выбора позиции с индексом i в циклах поиска открытых позиций. Без нее не понятно, тип какой позиции возвращает PositionGetInteger(POSITION_TYPE).
Аналогично надо добавить выбор позиции и в код поиска позиций SELL.
for(int i = 0; i < totalPositions; i++) { ulong ticket = PositionGetTicket(i); if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY){ hasOpenBuyPosition = true; break; } }
Здравствуйте.
Похоже, что в вашем коде отсутствует выбор позиции с индексом i в цикле поиска открытых позиций. Без него непонятно, какой тип позиции возвращает PositionGetInteger(POSITION_TYPE).
Аналогично следует добавить выбор позиции в код поиска позиций SELL.
Спасибо Юрию Быкову. Все отлично работает. Спасибо
Ой, я извиняюсь, невнимательно прочитал первое предложение.
По поводу ошибки: размер массивов high и low у вас устанавливается внутри функции iGetArray() и CopyRates(). Но там размер, по идее, должен устанавливаться значению переменной count, которая равна 300. А дальше в цикле вы хотите получить доступ к 1000 элементов. Мне кажется, вызов iGetArray() и CopyRates() вам не нужен. Достаточно вызвать
Спасибо все заработало.
Есть старая проблема, может подскажите почему так происходит.
Тема такая, натягиваем сетку фибо, берем время верхнего бара и время нижнего.
С помощью полученных индексов получаем кол-во баров между верхней и нежней линией фибо.
Но, если тоже самое проделать через цикл, всегда выходит на один бар меньше.
Как сделать что бы было одинаково ?
Как видно на скрине, верхний индекс линии фибо = 19... нижний 29, получается 10 баров, по факту их 11, метод bars посчитал правильно, а цикл нет.. как быть
Есть старая проблема, может подскажите почему так происходит.
Тема такая, натягиваем сетку фибо, берем время верхнего бара и время нижнего.
С помощью полученных индексов получаем кол-во баров между верхней и нежней линией фибо.
Но, если тоже самое проделать через цикл, всегда выходит на один бар меньше.
Как сделать что бы было одинаково ?
Как видно на скрине, верхний индекс линии фибо = 19... нижний 29, получается 10 баров, по факту их 11, метод bars посчитал правильно, а цикл нет.. как быть
Видимо, "проблема заборного столба", https://ru.wikipedia.org/wiki/Ошибка_на_единицу