Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Народ! Подскажите новичку в программировании, как работать с handle. Что это такое - некий файл в буфере? Как из него извлечь информацию, чтобы с ней работать?
Посмотрите:
Справочник MQL5 / Технические индикаторы
Справочник MQL5 / Доступ к таймсериям и индикаторам / CopyBuffer
Если вкратце, то хендл - это некий указатель (ссылка) на созданную программой копию индикатора, предназначенный для использования в функции CopyBuffer.
Посмотрите также статьи для начинающих, там про это рассказано.
А как присвоить переменной значения текущей цены не подскажите?
Наверное проще со статьей познакомиться - "Переход с MQL4 на MQL5".
Да и в документацию не лишне по чаще заглядывать.
А это ответ на вопрос из примера для функции SymbolInfoDouble
AUser:
И еще интересует, есть ли возможность загрузить в хендл индикатора его исторические данные?
Если быть точным то в хендл не для того предназначен, а данные грузятся в специализированные массивы при помощи функций из раздела "Доступ к таймсериям и данным индикаторов".
Как минимум с этими функциями стоит познакомиться по ближе
CopyBuffer
Получает в массив данные указанного буфера от указанного индикатора
CopyRates
Получает в массив исторические данные структуры Rates для указанных символа и периода
CopyTime
Получает в массив исторические данные по времени открытия баров по соответствующим символу и периоду
CopyOpen
Получает в массив исторические данные по цене открытия баров по соответствующим символу и периоду
CopyHigh
Получает в массив исторические данные по максимальной цене баров по соответствующим символу и периоду
CopyLow
Получает в массив исторические данные по минимальной цене баров по соответствующим символу и периоду
CopyClose
Получает в массив исторические данные по цене закрытия баров по соответствующим символу и периоду
AUser:
А вот с историей индикатора не все ясно. Проблема то вот в чем: прежде чем сравнивать значения индикаторов на барах их же надо накопить в массивах индикаторов. Ну ладно - значения с 15минутных баров можно и подождать, а как быть, скажем, с недельными? Полистал справочник - не понял))) Вот эта допустим: CopyClose (Получает в массив исторические данные по цене закрытия баров по соответствующим символу и периоду) Данные-то получим, а как заставить посчитать по ним значения индикатора? Чего-то я тут недопонимаю.
Я так понимаю Вы пишете эксперт использующий индикаторы?
Если хендл получен и явных проблем нет, то получение данных из кастомного (пользовательского) индюка выполняется при помощи CopyBuffer, для стандартных технических индикаторов лучше применять следующие функции
Данный код должен записать в массив buffer данные по 20 барам из 0 буфера, при этом вернуть количество реально скопированных элементов массива либо -1
При этом отсчет 20 баров производится от 0 бара, следовательно нам не следует забывать о серийности (подробно читаем тут). О получении дополнительных данных можно прочитать тут.
Ругается.. что не так
опубликуйте здесь справку по функции OrderSend
Там так написано, что без подготовки понять сложно)
опубликуйте здесь справку по функции OrderSend
я только надеюсь вас заставить читать. Иначе ничего не сможете делать.
AUser, - Sergeev прав. У функции OrderSend всего два параметра. Нужно потратить немножко времени на изучение матчасти MQL5.
Написал:
OrderSend(TRADE_ACTION_DEAL,Symbol(),1,SL,TP,10,ORDER_TYPE_BUY,ORDER_FILLING_CANCEL);
Ругается.. что не так?
Хочу купить по настоящей цене.
1. Хочется получить более подробный код этого участка или работающий пример;
2. Хочется сразу определиться с языком на котором этот код реализован;
3. Хочется чтобы люди научились читать справку, в данном случае прочитали описание функции OrderSend.
В данном случае вполне хватит вот этого фрагмента!!!
Функция OrderSend() предназначена для совершения торговых операций через отправку запросов на торговый сервер
bool OrderSend(
MqlTradeRequest& request, // структура запроса
MqlTradeResult& result // структура ответа
);
4. Хочется чтобы люди побольше узнали о структурах MqlTradeRequest и MqlTradeResult
5. Хочется чтобы хоть кто-то познакомился с такой замечательной вещью как CTrade (начинка данного класса расположена в файле \MQL5\Include\Trade\Trade.mqh)
Пример применения в эксперте можно посмотреть в стандартном эксперте - MACD Sample.
Скажу даже больше, хорошо бы ознакомиться с тем что происходит с приказом начиная от класса CSampleExpert до следующего функционала коасса CTrade:
а) PositionOpen - Открывает позицию с заданными параметрами
б) PositionModify - Изменяет параметры позиции по указанному символу
б) PositionClose - Закрывает позицию по указанному символу.
PS
В заключении, хочется чтобы люди не только читали справку но умели искать информацию в файлах стандартной библиотеки (неплохо будет познакомиться с комбинацией клавиш Ctrl+Shift+F) и в примерах находящихся на данном сайте (Code Base - сильная штука, если уметь ей пользоваться).
Вопрос про функцию Sleep(). Правильно ли я понимаю, что использование этой функции в эксперте приостанавливает выполнение только этого эксперта и передаёт ресурсы процессора (ядра) следующим задачам из списка задач этого ядра? Иными словами, правильно ли, что функция Sleep() не тормозит сам поток, в котором обрабатывается эксперт, а работает в качестве переключателя между текущим экспертом и другими программами, подхваченными конкретным ядром?
Вопрос про структуру MqlTradeResult. Не обнаружил в ней поле time - время успешной базовой проверки запроса (или что-нибудь в этом роде) Кто-нибудь помнит, поднимался ли вопрос о введении дополнительного поля time в структуру MqlTradeResult? Потребовалось для выуживания отложенного ордера, если он вдруг уйдёт в историю.