Добрый день! Подскажите кто нибудь , пожалуйста, как сделать чтобы в советнике при нажатии мыши на определенной точке графика происходило открытие ордера в этой точке, Есть пример только когда устанавливаешь скрипт или советник, то функция NormalizeDouble(WindowPriceOnDropped(),Digits); определяет точку указания мышью, . Но вопрос в том чтобы это можно было делать в любой момент из работающего советника. Есть ли такая возможность.
Вижу функцию ChartGetInteger(0,CHART_EVENT_MOUSE_MOVE,0,1)) , но как ее использовать пока не понял, можно ли определить куда (в какую точку) был направлен указатель мыши?
Добрый день! Подскажите кто нибудь , пожалуйста, как сделать чтобы в советнике при нажатии мыши на определенной точке графика происходило открытие ордера в этой точке, Есть пример только когда устанавливаешь скрипт или советник, то функция NormalizeDouble(WindowPriceOnDropped(),Digits); определяет точку указания мышью, . Но вопрос в том чтобы это можно было делать в любой момент из работающего советника. Есть ли такая возможность.
Вижу функцию ChartGetInteger(0,CHART_EVENT_MOUSE_MOVE,0,1)) , но как ее использовать пока не понял, можно ли определить куда (в какую точку) был направлен указатель мыши?
Еще вопрос : перенес функции в библиотеку из советника при запуске советника, он сразу же вылетает, а в сообщениях показывает что терминал не может загрузить библиотеку Cannot call 'ATP_funkcii.mq4::DrawLABEL', 'ATP_funkcii.mq4' is not loaded
Как решить проблемму?
Заметил одну вещь! В редакторе программы файлы советника и библиотеки видно, а на компьютере в файлах программы их почему то нет. Только файл советника.
Индекс любого массива всегда начинается с нуля. Т.е., если размер массива 1, то индекс этой ячейки будет 0.
Как, зная цифру 5, узнать цифру 6 ?
Как, зная цифру 6, узнать цифру 7, зная, что цифр всего 8 ?
Как, зная индекс 7, узнать следующий индекс, зная, что размер массива = 8 ?
Спасибо за подробное разъяснение)))) То есть верным будет написать
double Mas[]; //массив для упорядочивания всех ордеровfor(int i=0; i<OrdersTotal(); i++) // Цикл перебора ордер
{
if(OrderSelect(i,SELECT_BY_POS)) // Если есть следующий
{
Price=OrderOpenPrice();
ArrayResize(Mas, i+1); //задан размер массива
Mas [i] = Price;
ArraySort (Mas,WHOLE_ARRAY,0,MODE_DESCEND); // Теперь цены открытия упорядочены по убыванию
}
}
if(ArraySize(Mas)>1) //Если массив не пустой
{
int Blizko2=ArrayBsearch(Mas,Ask,WHOLE_ARRAY,0,MODE_DESCEND); //Определен индекс ближайшего большего по значению елемента к текущей цене
PriceBlizko2 = Mas[Blizko2]; // Цена выбранного ордераint Blizko1;
Mas[Blizko1]= Blizko2+1; Это верно??
//Определен индекс ближайшего меньшего по значению елемента к текущей цене
PriceBlizko1=Mas[Blizko1];
Спасибо за подробное разъяснение)))) То есть верным будет написать
Подскажите пожалуйста?
Нет необходимости сортировать массив после каждого добавления элемента массива. Лучше перенести сортировку
double Mas[]; //массив для упорядочивания всех ордеровfor(int i=0; i<OrdersTotal(); i++) // Цикл перебора ордер
{
if(OrderSelect(i,SELECT_BY_POS)) // Если есть следующий
{
Price=OrderOpenPrice();
ArrayResize(Mas, i+1); //задан размер массива
Mas [i] = Price;
}
}
if(ArraySize(Mas)>1) //Если массив не пустой
{ ArraySort (Mas,WHOLE_ARRAY,0,MODE_DESCEND); // Теперь цены открытия упорядочены по убываниюint Blizko2=ArrayBsearch(Mas,Ask,WHOLE_ARRAY,0,MODE_DESCEND); //Определен индекс ближайшего большего по значению елемента к текущей цене
PriceBlizko2 = Mas[Blizko2]; // Цена выбранного ордераint Blizko1;
Mas[Blizko1]= Blizko2+1; Это верно??
//Определен индекс ближайшего меньшего по значению елемента к текущей цене
PriceBlizko1=Mas[Blizko1];
Из справки
Возвращаемое значение
Возвращает индекс первого найденного элемента. Если искомое значение не найдено, то возвращает индекс ближайшего меньшего по значению из элементов, между которыми расположено искомое значение.
Mas[Blizko2] это и есть ближайшее меньшее значение в массиве.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
здравствуйте хочу получить дату экспирации для фьючерсов
EXPIRATION=(datetime)SymbolInfoInteger(Symbol(),SYMBOL_EXPIRATION_TIME);
А выдает 1970 01 01 00 00
Добрый день! Подскажите кто нибудь , пожалуйста, как сделать чтобы в советнике при нажатии мыши на определенной точке графика происходило открытие ордера в этой точке, Есть пример только когда устанавливаешь скрипт или советник, то функция NormalizeDouble(WindowPriceOnDropped(),Digits); определяет точку указания мышью, . Но вопрос в том чтобы это можно было делать в любой момент из работающего советника. Есть ли такая возможность.
Вижу функцию ChartGetInteger(0,CHART_EVENT_MOUSE_MOVE,0,1)) , но как ее использовать пока не понял, можно ли определить куда (в какую точку) был направлен указатель мыши?
Добрый день! Подскажите кто нибудь , пожалуйста, как сделать чтобы в советнике при нажатии мыши на определенной точке графика происходило открытие ордера в этой точке, Есть пример только когда устанавливаешь скрипт или советник, то функция NormalizeDouble(WindowPriceOnDropped(),Digits); определяет точку указания мышью, . Но вопрос в том чтобы это можно было делать в любой момент из работающего советника. Есть ли такая возможность.
Вижу функцию ChartGetInteger(0,CHART_EVENT_MOUSE_MOVE,0,1)) , но как ее использовать пока не понял, можно ли определить куда (в какую точку) был направлен указатель мыши?
Используйте событие клика "CHARTEVENT_CLICK"
Куски кода можно взять отсюда
Используйте событие клика "CHARTEVENT_CLICK"
Куски кода можно взять отсюда
Огромное Спасибо !!!
Еще вопрос : перенес функции в библиотеку из советника при запуске советника, он сразу же вылетает, а в сообщениях показывает что терминал не может загрузить библиотеку Cannot call 'ATP_funkcii.mq4::DrawLABEL', 'ATP_funkcii.mq4' is not loaded
Как решить проблемму?
Заметил одну вещь! В редакторе программы файлы советника и библиотеки видно, а на компьютере в файлах программы их почему то нет. Только файл советника.
Здравствуйте! Подскажите пожалуйста как зная индекс элемента массива узнать индекс следующего элемента массива?
Индекс любого массива всегда начинается с нуля. Т.е., если размер массива 1, то индекс этой ячейки будет 0.
Как, зная цифру 5, узнать цифру 6 ?
Как, зная цифру 6, узнать цифру 7, зная, что цифр всего 8 ?
Как, зная индекс 7, узнать следующий индекс, зная, что размер массива = 8 ?
Индекс любого массива всегда начинается с нуля. Т.е., если размер массива 1, то индекс этой ячейки будет 0.
Как, зная цифру 5, узнать цифру 6 ?
Как, зная цифру 6, узнать цифру 7, зная, что цифр всего 8 ?
Как, зная индекс 7, узнать следующий индекс, зная, что размер массива = 8 ?
Спасибо за подробное разъяснение)))) То есть верным будет написать
Подскажите пожалуйста?
Спасибо за подробное разъяснение)))) То есть верным будет написать
Подскажите пожалуйста?
Нет необходимости сортировать массив после каждого добавления элемента массива. Лучше перенести сортировку
Из справки
Возвращаемое значение
Возвращает индекс первого найденного элемента. Если искомое значение не найдено, то возвращает индекс ближайшего меньшего по значению из элементов, между которыми расположено искомое значение.
Mas[Blizko2] это и есть ближайшее меньшее значение в массиве.