[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 527
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Евгений, я конечно, могу всё понять НО, это написано в так называемом учебнике. Как мне идти от простого, где смотреть ? Если ты сам программист, возможно, для тебя это очевидно. Но я не въехал совсем.
Да и ветка для новичков, я же задаю вопросы по теме.. Уже второй день пытаюсь понять. Пожалели бы уже, и объяснили бы кто-нибудь. :(
А по поводу:
Если не копать, то и понять не возможно. А если не понять, то пользоваться тоже не получится в полной мере.
Нужна практика (отработка на терминале). Читайте чужие коды, ищите логику, снова практика. Ставьте себе задачи для получения логических ответов от терминала или сервера.
Усложняйте задачи.
Терминал ,Учебник, Документация -- отличные источники для учебы и творческой работы, тем более для новичка (испытано на себе).
Это спорт на уровне творчества (свои приёмчики, постоянное нахождение в форме).
А правит вашими действиями и мыслями Логика.
перерабатываю моноэксперта на мультивалютный. Подскажите, как в этом случае в МТ4 обновляются цены и загружаются бары для других пар?
Может где есть описание как работает эксперт, прикрепленный к одному графику с другой валютной парой?
перерабатываю моноэксперта на мультивалютный. Подскажите, как в этом случае в МТ4 обновляются цены и загружаются бары для других пар?
Может где есть описание как работает эксперт, прикрепленный к одному графику с другой валютной парой?
Вам нужны как минимум 2 функции: MarketInfo() и Refreshrates()
Первая позволит запрашивать цены с другого торгового инструмента, а вторая - обновит данные для использования первой. Поэтому в коде сначала вызываете Refreshrates(), а затем можете делать запросы MarketInfo(). Но это в том случае, если советник, скажем спал какое-то время функцией Sleep(), или очень долго производил какие-то вычисления. Мол, пока это происходило котировки пришли новые и нужно обновить их с помощью Refreshrates()
Вам нужны как минимум 2 функции: MarketInfo() и Refreshrates()
Первая позволит запрашивать цены с другого торгового инструмента, а вторая - обновит данные для использования первой. Поэтому в коде сначала вызываете Refreshrates(), а затем можете делать запросы MarketInfo(). Но это в том случае, если советник, скажем спал какое-то время функцией Sleep(), или очень долго производил какие-то вычисления. Мол, пока это происходило котировки пришли новые и нужно обновить их с помощью Refreshrates()
Как я понял, Refreshrates() работает по текущему инструменту или все-таки обновляет данные по всем инструментам?
Добрый вечер.
В кодо-писании я "карась" :) Вот собираю советник на индикаторе Фибоначчи. Пока на стратегию необрашаите внимание. Загвозтка в следуюшем - 7 уровння Фибоначчи, как зделать чтоби на каждом пересечонном уровне выставлялись только 2 разних отложных ордера и не более.
Был би презнателен за какую либо подсказку.
За ранее извеняюсь за мои неловкий Руский.
Как я понял, Refreshrates() работает по текущему инструменту или все-таки обновляет данные по всем инструментам?
По всем инструментам.
Добрый вечер.
В кодо-писании я "карась" :) Вот собираю советник на индикаторе Фибоначчи. Пока на стратегию необрашаите внимание. Загвозтка в следуюшем - 7 уровння Фибоначчи, как зделать чтоби на каждом пересечонном уровне выставлялись только 2 разних отложных ордера и не более.
Был би презнателен за какую либо подсказку.
За ранее извеняюсь за мои неловкий Руский.
Работа
P.S. "На то щука, чтоб карась не дремал".(Русская пословица).
Работа
P.S. "На то щука, чтоб карась не дремал".(Русская пословица).
Спосибо за пословицу:)) Какраз по теме -
Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4.
Допишите - Любои ответ ПРОФИ!
Здравствуйте эксперты, прошу помощи в создании скрипта. На графике обозначены 2 МА(Moving Average) индикатора, МА1 обозначен красным цветом, а МА2 синим. Задача скрипта: пересечение МА1 и МА2 так, чтобы красная линия пересекла синию сверху вниз. Эту точку назовем А, а если красная пересекла синюю сверху вниз то это точка В. Так вот, в точке А нужно чтобы скрипит закрыл ордер селл и открыл ордер бай, а в точке В закрыть ордер бай и открыть ордер селл. Этот цикл должен быть бесконечным. Прикрепил похожий код, помогите пожалуйста, буду очень благодарен
Чтобы не усугублять путаницу, хочу исправить ошибку, допущенную мной в предыдущем ответе, запись "array1[Bars*6-60,60][0] " - не правильна, т.к. Bars*6 - это общее количество элементов а массиве array1. Каждый бар имеет по 6 свойств, допустим у нас имеется 30 баров, умножив их на 6, мы получим количество элементов в первом массиве - 180 . Второй массив имеет всего 60 свободных "ячеек" (т.е. 10 х 6 свойств), поэтому мы должны выбрать только 60 элементов из первого массива для копирования. С помощью выражения [Bars*6-60,60] мы из общего количества вычитаем 60,т.е 180 - 60 = 120, т.е. 120 элемент первого массива запишется в нулевой элемент второго, 121 в 1-й и.т.д. , другой вопрос каким образом получается, что информация о последих сформировавшихся барах содержатся не в начале первого массива, а в конце... но видимо ответ кроется в коде функции, и глубже капать уже нет смысла...
Ну база то у меня есть, это не причём. Логически Наталья написала верно. И, даже в случае, когда у нас 30 баров, то значение индекса массива array1 получилось 120. Соответственно, значение соответствующего индекса у массива array2 при инициализации уже в коде объявлено как 10.
https://docs.mql4.com/ru/array/ArrayCopy
В книге по Си я прочитал, что:
В языке Си не контролируется выход за границы массива, то есть формально вы можете записать что-то в элемент с несуществующим индексом, например в A[345] или в A[-12]. Однако при этом вы стираете какую-то ячейку в памяти, не относящуюся к массиву, поэтому последствия такого шага непредсказуемы и во многих случаях программа зависает.
Получается индекс у массива array1(исходного массива) больше соответствующего индекса массива array2 (массива-приёмника). А следовательно так делать не следует! Вот что я имел ввиду..