Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пишу мультивалютный советник, где во входных параметрах задаётся имя инструмента, типа string Symbol0="EURUSD". Если ошибочно напишу название, то торговля не идёт. Вопрос: есть ли такая ф-ция, которая бы сравнивала названия инструмента с инструментами которые предоставляет брокер.
Вопрос в том, что Вы хотите видеть на выходе. В принципе, любая стандартная функция, использующая в качестве одного из своих параметров символьное имя инструмента, "сравнивает" указанное пользователем название с названиями инструментов брокера. И для таких функций даже предусмотрена ошибка ERR_MARKET_UNKNOWN_SYMBOL (4301).
Я пытаюсь сделать индикатор сбора тиков для последующей обработки и визуализации. MT5 AlpariUK Version 5.0 Build 756
Тестовый индикатор при обработке onCalculate печатает значения текущих BID, ASK, LAST, VOLUME, tick_volume.
Результат:
2013.03.03 19:45:59 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:03 Bid=93.680 Ask=93.689 Price=93.68000000 Volume=1000000 Tick volume=5
2013.03.03 19:45:59 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:03 Bid=93.680 Ask=93.689 Price=93.68000000 Volume=1000000 Tick volume=4
2013.03.03 19:45:59 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:03 Bid=93.681 Ask=93.691 Price=93.68100000 Volume=3000000 Tick volume=4
2013.03.03 19:45:59 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:03 Bid=93.681 Ask=93.691 Price=93.68100000 Volume=3000000 Tick volume=4
2013.03.03 19:45:58 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:02 Bid=93.682 Ask=93.691 Price=93.68200000 Volume=2000000 Tick volume=3
2013.03.03 19:45:58 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:02 Bid=93.682 Ask=93.691 Price=93.68200000 Volume=2000000 Tick volume=3
2013.03.03 19:45:57 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:01 Bid=93.683 Ask=93.693 Price=93.68300000 Volume=1000000 Tick volume=2
2013.03.03 19:45:57 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:01 Bid=93.683 Ask=93.693 Price=93.68300000 Volume=1000000 Tick volume=1
2013.03.03 19:45:56 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:00 Bid=93.689 Ask=93.696 Price=93.68900000 Volume=570000 Tick volume=1
2013.03.03 19:45:56 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:00 Bid=93.689 Ask=93.696 Price=93.68900000 Volume=570000 Tick volume=1
2013.03.03 19:45:55 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:59 Bid=93.685 Ask=93.695 Price=93.68500000 Volume=1800000 Tick volume=53
2013.03.03 19:45:54 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:58 Bid=93.685 Ask=93.695 Price=93.68500000 Volume=1700000 Tick volume=52
2013.03.03 19:45:54 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:58 Bid=93.685 Ask=93.695 Price=93.68500000 Volume=1500000 Tick volume=51
2013.03.03 19:45:54 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:58 Bid=93.685 Ask=93.695 Price=93.68500000 Volume=1500000 Tick volume=51
2013.03.03 19:45:53 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:57 Bid=93.685 Ask=93.693 Price=93.68500000 Volume=500000 Tick volume=50
2013.03.03 19:45:52 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:56 Bid=93.685 Ask=93.693 Price=93.68500000 Volume=400000 Tick volume=49
2013.03.03 19:45:52 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:56 Bid=93.685 Ask=93.693 Price=93.68500000 Volume=200000 Tick volume=48
2013.03.03 19:45:52 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:56 Bid=93.685 Ask=93.693 Price=93.68500000 Volume=200000 Tick volume=48
2013.03.03 19:45:51 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:55 Bid=93.685 Ask=93.691 Price=93.68500000 Volume=200000 Tick volume=47
2013.03.03 19:45:51 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:55 Bid=93.685 Ask=93.691 Price=93.68500000 Volume=1000000 Tick volume=46
2013.03.03 19:45:51 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:55 Bid=93.685 Ask=93.691 Price=93.68500000 Volume=1000000 Tick volume=46
2013.03.03 19:45:50 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:54 Bid=93.680 Ask=93.691 Price=93.68000000 Volume=1000000 Tick volume=45
2013.03.03 19:45:50 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:54 Bid=93.680 Ask=93.691 Price=93.68000000 Volume=1000000 Tick volume=45
2013.03.03 19:45:48 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:52 Bid=93.682 Ask=93.691 Price=93.68200000 Volume=1000000 Tick volume=44
Выглядит так, что onCalculate большую часть времени срабатывает дважды на один тик, а tick_volume не имеет ничего общего с объемом тика. Он сбрасывается в 1 при переходе на новый период. Одно и то же значение может повторяться по 1, 2, 3 раза.
Для проверки запустил одновременно ЕА, который печатает тики и свой индикатор.
Результат:
2013.03.03 19:51:56 Ticks (USDJPY,M1) 2013.03.03 19:51:56 93.684 93.677
2013.03.03 19:51:56 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:52:00 Bid=93.677 Ask=93.684 Price=93.67700000 Volume=1000000 Tick volume=2
2013.03.03 19:51:56 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:52:00 Bid=93.677 Ask=93.684 Price=93.67700000 Volume=1000000 Tick volume=2
2013.03.03 19:51:56 Ticks (USDJPY,M1) 2013.03.03 19:51:56 93.683 93.674
2013.03.03 19:51:56 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:52:00 Bid=93.674 Ask=93.683 Price=93.67400000 Volume=3000000 Tick volume=1
2013.03.03 19:51:56 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:52:00 Bid=93.674 Ask=93.683 Price=93.67400000 Volume=3000000 Tick volume=1
2013.03.03 19:51:55 Ticks (USDJPY,M1) 2013.03.03 19:51:55 93.682 93.674
2013.03.03 19:51:55 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:59 Bid=93.674 Ask=93.682 Price=93.67400000 Volume=3000000 Tick volume=37
2013.03.03 19:51:55 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:59 Bid=93.674 Ask=93.682 Price=93.67400000 Volume=3000000 Tick volume=37
2013.03.03 19:51:51 Ticks (USDJPY,M1) 2013.03.03 19:51:51 93.680 93.670
2013.03.03 19:51:51 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:55 Bid=93.670 Ask=93.680 Price=93.67000000 Volume=1000000 Tick volume=36
2013.03.03 19:51:51 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:55 Bid=93.670 Ask=93.680 Price=93.67000000 Volume=1000000 Tick volume=36
2013.03.03 19:51:50 Ticks (USDJPY,M1) 2013.03.03 19:51:50 93.678 93.669
2013.03.03 19:51:50 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:54 Bid=93.669 Ask=93.678 Price=93.66900000 Volume=3500000 Tick volume=35
2013.03.03 19:51:49 Ticks (USDJPY,M1) 2013.03.03 19:51:49 93.678 93.669
2013.03.03 19:51:49 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:53 Bid=93.669 Ask=93.678 Price=93.66900000 Volume=3000000 Tick volume=34
2013.03.03 19:51:49 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:53 Bid=93.669 Ask=93.678 Price=93.66900000 Volume=3000000 Tick volume=34
2013.03.03 19:51:46 Ticks (USDJPY,M1) 2013.03.03 19:51:46 93.680 93.672
2013.03.03 19:51:46 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:50 Bid=93.672 Ask=93.680 Price=93.67200000 Volume=1000000 Tick volume=33
2013.03.03 19:51:46 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:50 Bid=93.672 Ask=93.680 Price=93.67200000 Volume=1000000 Tick volume=33
2013.03.03 19:51:44 Ticks (USDJPY,M1) 2013.03.03 19:51:44 93.681 93.672
2013.03.03 19:51:44 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:48 Bid=93.672 Ask=93.681 Price=93.67200000 Volume=1000000 Tick volume=32
2013.03.03 19:51:44 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:48 Bid=93.672 Ask=93.681 Price=93.67200000 Volume=1000000 Tick volume=32
2013.03.03 19:51:44 Ticks (USDJPY,M1) 2013.03.03 19:51:44 93.683 93.673
2013.03.03 19:51:44 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:48 Bid=93.673 Ask=93.683 Price=93.67300000 Volume=1000000 Tick volume=31
2013.03.03 19:51:44 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:48 Bid=93.673 Ask=93.683 Price=93.67300000 Volume=1000000 Tick volume=30
2013.03.03 19:51:42 Ticks (USDJPY,M1) 2013.03.03 19:51:42 93.683 93.674
2013.03.03 19:51:42 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:46 Bid=93.674 Ask=93.683 Price=93.67400000 Volume=3000000 Tick volume=30
2013.03.03 19:51:42 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:46 Bid=93.674 Ask=93.683 Price=93.67400000 Volume=3000000 Tick volume=30
2013.03.03 19:51:41 Ticks (USDJPY,M1) 2013.03.03 19:51:41 93.683 93.673
2013.03.03 19:51:41 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:45 Bid=93.673 Ask=93.683 Price=93.67300000 Volume=1000000 Tick volume=29
2013.03.03 19:51:41 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:45 Bid=93.673 Ask=93.683 Price=93.67300000 Volume=1000000 Tick volume=29
2013.03.03 19:51:40 Ticks (USDJPY,M1) 2013.03.03 19:51:40 93.682 93.673
2013.03.03 19:51:40 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:44 Bid=93.673 Ask=93.682 Price=93.67300000 Volume=1000000 Tick volume=28
2013.03.03 19:51:40 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:44 Bid=93.673 Ask=93.682 Price=93.67300000 Volume=1000000 Tick volume=28
2013.03.03 19:51:39 Ticks (USDJPY,M1) 2013.03.03 19:51:39 93.681 93.671
2013.03.03 19:51:39 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:43 Bid=93.671 Ask=93.681 Price=93.67100000 Volume=4000000 Tick volume=27
2013.03.03 19:51:38 Ticks (USDJPY,M1) 2013.03.03 19:51:38 93.681 93.671
2013.03.03 19:51:38 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:42 Bid=93.671 Ask=93.681 Price=93.67100000 Volume=6000000 Tick volume=26
2013.03.03 19:51:38 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:42 Bid=93.671 Ask=93.681 Price=93.67100000 Volume=6000000 Tick volume=26
2013.03.03 19:51:37 Ticks (USDJPY,M1) 2013.03.03 19:51:37 93.682 93.674
2013.03.03 19:51:37 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:41 Bid=93.674 Ask=93.682 Price=93.67400000 Volume=1000000 Tick volume=25
2013.03.03 19:51:37 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:41 Bid=93.674 Ask=93.682 Price=93.67400000 Volume=1000000 Tick volume=24
Вопрос: почему тик дублируется и как от этого избавиться?
Если onCalculate срабатывает не только при изменении цены, но и по каким-то другим причинам, то как определить причину перехода на onCalculatе ? И где описаны все причины срабатывания onCalculatе ?
Что я делаю не так с Tick volume?
Я что-то упустил?
Еще один вопрос - время на моем компутере отстает довольно сильно. Разница за двое суток составила 4 секунды. В каком направлении искать решение?
Всем спасибо.
Еще один вопрос к уважаемой публике:
В документации на странице https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants#enum_symbol_info_integer
сказано:
SYMBOL_BID Bid - лучшее предложение на продажу
SYMBOL_ASK Ask - лучшее предложение на покупку
В моем понимании Bid - лучшее предложение на покупку, а Ask - лучшее предложение на продажу.
Вот что ответил ServiceDeskЭто означает
SYMBOL_BID Bid - лучшее предложение на продажу (лучшая цена, по который Вы можете продать в данный момент)
SYMBOL_ASK Ask - лучшее предложение на покупку (лучшая цена, по который Вы можете купить в данный момент)
Выношу на обсуждение: кто прав?
Еще один вопрос к уважаемой публике:
В документации на странице https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants#enum_symbol_info_integer
сказано:
SYMBOL_BID Bid - лучшее предложение на продажу
SYMBOL_ASK Ask - лучшее предложение на покупку
В моем понимании Bid - лучшее предложение на покупку, а Ask - лучшее предложение на продажу.
Вот что ответил ServiceDeskMZen
SYMBOL_BID Bid - лучшее предложение на продажу (лучшая цена, по который Вы можете продать в данный момент)
SYMBOL_ASK Ask - лучшее предложение на покупку (лучшая цена, по который Вы можете купить в данный момент)
Выношу на обсуждение: кто прав?
Игра слов - в обоих ситуациях есть покупатель, в обоих ситуациях есть продавец, смотря с какой позиции рассматривать
А-ааа, понял!
Когда я прошу "Купите у меня" - это предложение на покупку!
А когда я говорю "Продайте мне" - то это предложение на продажу!
LOL!
Начинаю осваивать ООП. Вопрос к знатокам - можно ли поместить класс в самом конце кода эксперта (также как и функции),
а не подключать класс к коду как:
#include <Trade\Trade.mqh>
Начинаю осваивать ООП. Вопрос к знатокам - можно ли поместить класс в самом конце кода эксперта (также как и функции),
а не подключать класс к коду как: