Ваши вопросы по языку MQL4

Александр_Стручков

Интересующийся
Господа, объясните, пожалуйста, возможно ли это и как :)

Написал советник, в котором используются показания индикатора Momentum. Для визуального контроля работы советника прописал возможность чертить линии и различные дополнительные знаки на графике цены. Выполняет замечательно.

Нужно реализовать рисование дополнительных линий и символов в окне индикатора. Возможно ли это и как реализовать?

В функции ObjectCreate ставлю индекс окна 1. Т.е. окно графика - это 0, а окно индикатора - это 1, но никаких объектов в окне индикатора не появляется :(
 

matro3

Почетный гражданин
Код:
bool  ObjectCreate(
   string        object_name,   // имя объекта
   ENUM_OBJECT   object_type,   // тип объекта
   int           sub_window,    // индекс окна
   datetime      time1,         // время первой точки привязки
   double        price1,        // цена первой точки привязки
   datetime      time2=0,       // время второй точки привязки
   double        price2=0,      // цена второй точки привязки
   datetime      time3=0,       // время третьей точки привязки
   double        price3=0       // цена третьей точки привязки
   );
Что у вас в значениях цен для точек привязки? Может значение цены валютной пары?
 

Ugar

Гуру форума
Если в подвале только один индикатор, то он конечно №1. Но не стоит забывать что подвалов может быть много, тогда он может быть и другим номером.
Пожалуй стоит поискать индюк ChartWindowFind или WindowFind
 
Последнее редактирование:

tommy27

Гуру форума
Кто нибудь уже пользовался функцией WebRequest ?
MQL4: Добавлена функция WebRequest для работы с HTTP-запросами, благодаря которой MQL4-программы теперь могут взаимодействовать с различными сайтами и веб-службами.

С помощью этой новой функции любой робот может обмениваться данными со сторонними сайтами, совершать сделки исходя из свежих новостей и записей экономического календаря, реализовывать аналитику, формировать и публиковать автоматические отчеты, считывать свежие котировки и многое другое, что раньше было доступно только с помощью сомнительных сторонних DLL. При этом для трейдеров все абсолютно безопасно, так как они сами могут контролировать список доверенных веб-сайтов, к которым разрешено обращаться программам.

Функция WebRequest() получает и отправляет информацию с веб-сайтов с помощью GET и POST-запросов. Чтобы разрешить MQL4-программе осуществлять такие запросы, необходимо включить опцию "Разрешить WebRequest для следующих URL" в настройках терминала и явным образом вручную прописать URL-адреса доверенных сайтов.

Хотелось бы расширить свои познания в этой области, но я так понял что там знаний мкл4 будет недостаточно.
Может есть у кого для примера индюк или сов новостной использующий эту функцию?

Во, прикольно, метаквоты как будто меня услышали :) - опубликовали живой сов по этой функции. Поковыряюсь на выходных.
_http://www.mql5.com/ru/code/11411
 
Последнее редактирование:

SIDOYY

Новичок форума
Здраствуйте, подскажите пожалуйста что и где нужно прописать советники что бы ко всем ордерам он присваивал один и тот же комментарий? А если кому не сложно дописать это все сделайте пожалуйста, сову добавил во вложения.
 

Вложения

  • ADX_Expert.mq4
    7,7 КБ · Просмотры: 24

zhserg

Местный знаток
Здраствуйте, подскажите пожалуйста что и где нужно прописать советники что бы ко всем ордерам он присваивал один и тот же комментарий? А если кому не сложно дописать это все сделайте пожалуйста, сову добавил во вложения.

:)
 

Вложения

  • ADX_Expert(z).mq4
    7,7 КБ · Просмотры: 21

советник

Активный участник
У меня есть информация, что теперь никто не может декомпилировать EA. После последнего обновления МТ4. Правда ли это?
 

Ugar

Гуру форума
У меня есть информация, что теперь никто не может декомпилировать EA. После последнего обновления МТ4. Правда ли это?
Возможно пока не выйдет новый декомпил. Это вечное противостояние компилятора и декомпилятора. Метаквоты периодически меняют компиляторы что бы декомпил не мог вскрывать программы, а через какое то время выходит новый декомпилятор, который уже может вскрывать. Потом опять метаквоты меняют компилятор...
Вскрыть можно всё что представляет интерес. Не вскрывается только то что никому не нужно. Ну или если сложность вскрытия не соответствует надобности результата.
 
Последнее редактирование:

tommy27

Гуру форума
У меня есть информация, что теперь никто не может декомпилировать EA. После последнего обновления МТ4. Правда ли это?
Я думаю вряд ли декомпилы будут, новому билду уже пол года, а воз и ныне там.
Да и у метаквотов на этом билде весь их новый проект(взрывной и прибыльный по их словам) Маркета приложений для МТ4 построен и допустить взлом - они себе вряд ли позволят, это будет гвоздём в крышку гроба всего их проекта я чет не видел ломанные МТ5 файлы, ломануть наверно возможно - ломают и не такое, но расчет здесь прост - цена взлома выйдет намного дороже приобретения легального продукта, это единственный действенный метод борьбы.
 

Александр_Стручков

Интересующийся
Если в подвале только один индикатор, то он конечно №1. Но не стоит забывать что подвалов может быть много, тогда он может быть и другим номером.
Пожалуй стоит поискать индюк ChartWindowFind или WindowFind

Ugar, не помогло. Хотя и необходимость уже отпала. В любом случае спасибо за совет :)
 

zliden

Новичок форума
Приветствую Уважаемых коллег!
Подскажите пожалуйста: что дописать , чтобы скрипт закрывал сделку через 10 минут после её открытия?
 

AlexeyVik

Программист mql4 mql5
Приветствую Уважаемых коллег!
Подскажите пожалуйста: что дописать , чтобы скрипт закрывал сделку через 10 минут после её открытия?
Сначала выбрать ордер. (возможно он будет не один) Проверить свой-чужой и условие
if(TimeCurrent() - OrderOpenTime() >= 10*60)
если условие выполнено - закрыть ордер.
 

Zolotai

Интересующийся
Как заполучить массив ордеров(те,что на данный момент(не историю)) , далее перебрать в цикле...?
Можно ли сразу заполучить массив по критерию. К примеру по типу ордера, сразу одной функцией?
 
Последнее редактирование:

matro3

Почетный гражданин
Как заполучить массив ордеров(те,что на данный момент(не историю)) , далее перебрать в цикле...?
Можно ли сразу заполучить массив по критерию. К примеру по типу ордера, сразу одной функцией?

Код:
int cnt = OrdersTotal();
  
   for (int i=0; i<cnt; i++)
   {
      if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
      if (OrderSymbol() != Symbol()) continue;
      if (OrderMagicNumber() != magicNum) continue;

      int type = OrderType();
      if (type == OP_BUY)
      {
      }
    
      if (type == OP_SELL)
      {
      }
   }
 

Zolotai

Интересующийся
Предположим я бы хотел изменить цену. Передвинуть отложный ордер.
Код:
OrderModify(cnt, OrderOpenPrice(), 0 , 0, 0, Green);
Подскажите в данной функции где прописывать цену и, что за функция которая покажет текущую цену инструмента?
 
Последнее редактирование:

Zolotai

Интересующийся
Прописываю

HTML:
int start()
  {  

Print("фывфывывфr");
     return(0);
  
  }

И потом если прописать так....
HTML:
   for (int i=0; i<cnt; i++)
   { 
    
     if (OrderSymbol() != Symbol()) continue;
    
         Alert('1');

    }

По данному символу есть отложные ордера. Но сигнала нет...
Прописав так
HTML:
   for (int i=0; i<cnt; i++)
   { 

    Alert('1');
    
     if (OrderSymbol() != Symbol()) continue;
    


    }

Сигналит...

Так тоже не пропускает
HTML:
    if (OrderSymbol() == Symbol())
           Alert('1');

Вот весь код... Что не так?
HTML:
//+------------------------------------------------------------------+
//|                                                        jjjjj.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"                

double type;

int start()
  {
  
      Print("symbol of order", OrderSymbol());
       
      int cnt = OrdersTotal();
  
      for (int i=0; i<cnt; i++)  {
      

         if (OrderSymbol() == Symbol()){
           Alert('1');
         
         }
 
         type = OrderType();
    
         if (type == OP_BUYLIMIT){

              Alert('1');         
                 
              //OrderModify(cnt, OrderOpenPrice(), 0 , 0, 0, Green);
      
         }else if(type == OP_SELLLIMIT){
         
              Alert('l');
      
         }
         
      }
  
     return(0);
  
  }
 
Последнее редактирование:

matro3

Почетный гражданин
Предположим я бы хотел изменить цену. Передвинуть отложный ордер.
Код:
OrderModify(cnt, OrderOpenPrice(), 0 , 0, 0, Green);
Подскажите в данной функции где прописывать цену и, что за функция которая покажет текущую цену инструмента?

Все есть в справке
http://docs.mql4.com/ru/trading/ordermodify
 

matro3

Почетный гражданин
Код:
for (int i=0; i<cnt; i++)
   { 
    
     if (OrderSymbol() != Symbol())
         Alert('1');
         continue;

    }
Сначала сигнал, а потом выход из цикла
 
Верх