Имя пользователя:

Пароль:



MQL4 - вопросы программирования

Добавили в закладки: lbh
Подписчиков: lbh

MQL4 - вопросы программирования

Номер сообщения:#1  Непрочитанное сообщение Kordan » 27 авг 2012, 18:57

Предлагаю здесь обсуждать вопросы по программированию, полезные и нестандартные функции и т.д.
Аватар пользователя
Kordan
.
.
      Автор темы
Сообщений: 2452
Возраст: 50
Зарегистрирован: 67 месяцев и 2 дня
Откуда: Саратов
Национальный флаг:
Russia
Благодарил (а): 667 раз.
Поблагодарили: 1220 раз.
Имя: Валерий
Пункты репутации: 25
Молодой трейдерМолодой трейдерМолодой трейдер

Полезные функции MQL4

Номер сообщения:#2  Непрочитанное сообщение Zaaartu » 05 сен 2012, 03:46

Тема нужная, надеюсь она найдет своих завсегдатаев. Хорошие прогеры подчас необходимы как воздух) да и всегда полезен взгляд со стороны на подходы к реализации той или иной задачи. Еще бы по MQL5 такую сделать ;)
А покамесь, для затравки, предлагаю ознакомиться с творениями не без известного KimIV.
Сборник функций - http://forum.mql4.com/ru/38949
Неплохо облегчают жизнь и в случае чего быстро модифицируются почти под любую задачу. На мой взгляд этот сборник - универсальный помощник любому программисту MQL4, как новичку так и опытному "кодоведу" :) Зачем изобретать велосипед, если другие давным давно все придумали и приспокойненько ездят как им хочется? :)
Аватар пользователя
Zaaartu
White Pirate
White Pirate
Сообщений: 1394
Возраст: 28
Зарегистрирован: 65 месяцев и 14 дней
Национальный флаг:
Russia
Благодарил (а): 34 раз.
Поблагодарили: 837 раз.
Имя: Михаил
Пункты репутации: 37
Молодой трейдерМолодой трейдерМолодой трейдерМолодой трейдер

Re: MQL4

Номер сообщения:#3  Непрочитанное сообщение Pyyx » 07 сен 2012, 22:04

Kordan, просмотрев форум, увидел твой вопрос про массивы, и решил помочь.
Вот как я реализовываю заполнение массивов по данным ордеров, это значительно ускоряет тестирование. Перебор идет по магику и по текущему инструменту, что позволяет работать одному боту на разных инструментах с одинаковыми магиками.
Скрытый текст: показать
Код: выделить все · Развернуть
double arrayBUY[][6],arraySell[][6]; --- массивы ордеров
int oBuy=0,oSell=0;  --- количество ордеров на покупку и продажу

int start()
{
oBuy=0,oSell=0;-- всегда устанавливайте перед этой функцией
InfaOrders();  ---функция заполнения
return(0);
  }

Код: выделить все · Развернуть
//+------------------------------------------------------------------+
void InfaOrders()
{int i;
   ArrayResize(arrayBUY,100);
   ArrayResize(arraySell,100);
for(i=OrdersTotal()-1;i>=0;i--)
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
   if (OrderSymbol() == Symbol() && OrderMagicNumber() == ExpertMagicNumber)
     {if(OrderType()==OP_BUY) {
         arrayBUY[oBuy][0] = OrderTicket();--- тикет ордера
         arrayBUY[oBuy][1] = OrderLots();--- лот ордера
         arrayBUY[oBuy][2] = OrderOpenPrice();--- цена открития ордера
         arrayBUY[oBuy][3] = OrderStopLoss();--- SL ордера
         arrayBUY[oBuy][4] = OrderTakeProfit();--- ТР ордера
         arrayBUY[oBuy][5] = OrderType();--- тип ордера
         oBuy++;}
      if(OrderType()==OP_SELL){
         arraySell[oSell][0] = OrderTicket();
         arraySell[oSell][1] = OrderLots();
         arraySell[oSell][2] = OrderOpenPrice();
         arraySell[oSell][3] = OrderStopLoss();
         arraySell[oSell][4] = OrderTakeProfit();
         arraySell[oSell][5] = OrderType();
         oSell++;}}
   ArrayResize(arrayBUY,oBuy);
   ArrayResize(arraySell,oSell);
}
//+------------------------------------------------------------------+
Последний раз редактировалось Pyyx 16 дек 2014, 02:39, всего редактировалось 5 раз(а).
Причина: Заключил код в теги [code][/code]и[spoiler][/spoiler]
Правильного выбора в реальности не существует — есть только сделанный выбор и его последствия.

MQL4 - вопросы программирования
Аватар пользователя
Pyyx
.
.
Сообщений: 950
Возраст: 37
Зарегистрирован: 66 месяцев и 9 дней
Откуда: Планета Земля
Национальный флаг:
Belarus
Благодарил (а): 331 раз.
Поблагодарили: 545 раз.
Имя: Сергей
Пункты репутации: 21
Молодой трейдерМолодой трейдерМолодой трейдер

Re: MQL4

Номер сообщения:#4  Непрочитанное сообщение STALKER » 08 сен 2012, 07:00

Ребята подскажите при компиляции выскакивает ошибка
Function "draw.obj.hline" is not referenced and will be removed from exp-file
что она означает
Аватар пользователя
STALKER


Re: MQL4

Номер сообщения:#5  Непрочитанное сообщение Sergej » 08 сен 2012, 07:06

STALKER писал(а):

Function "draw.obj.hline" is not referenced and will be removed from exp-file
что она означает

В программе нет обращения к этой функции, поэтому при компиляции она удаляется из ехе файла. Это не ошибка, а просто предупреждение.
Аватар пользователя
Sergej


MQL4

Номер сообщения:#6  Непрочитанное сообщение STALKER » 16 сен 2012, 12:08

У меня вопрос, может есть у кого видео уроки по программированию MQL4, типа от А до Я или для чайников вообщем чтоб с самых азов до сложных функций, было бы не плохо тут такое увидеть, или ссылки где скачать, или самим залить на обменник и выложить ссылку. По гуглив почти каждая вторая ссылка идет на этот сайт но что то как то я не доверяю кто может покупал от туда http://cool-files.com/sait.php отпишитесь стоит 100 баксов отдавать
Аватар пользователя
STALKER


MQL4

Номер сообщения:#7  Непрочитанное сообщение Kordan » 16 сен 2012, 13:35

STALKER писал(а):

У меня вопрос, может есть у кого видео уроки по программированию MQL4, типа от А до Я или для чайников вообщем чтоб с самых азов до сложных функций, было бы не плохо тут такое увидеть, или ссылки где скачать, или самим залить на обменник и выложить ссылку. По гуглив почти каждая вторая ссылка идет на этот сайт но что то как то я не доверяю кто может покупал от туда http://cool-files.com/sait.php отпишитесь стоит 100 баксов отдавать

Может стоит на торрентах поискать. В поиске бесполезно. Другой вариант скинуться желающим. А так можно подчитывать типа таких самоучителей.
P.S. :
Вот нашел еще вариант. Для вступивших в VIP группу здесь за $15, можно заказать видеокурс бесплатно
Pyyx писал(а):

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

Никак не получается у меня сделать сбор информации по открытым ордерам на массивах. Может кто подскажет на примере хотя бы замены одной функции.
Скрытый текст: показать
Код: выделить все · Развернуть
int CountOfBuy()
{
  int count = 0;
  for (int i = 0; i < OrdersTotal(); i++)
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      if ((OrderSymbol() == Symbol()) && (OrderMagicNumber() ==MagicNumber))
        if (OrderType() == OP_BUY)
          count++;
  return(count);
}
Аватар пользователя
Kordan
.
.
      Автор темы
Сообщений: 2452
Возраст: 50
Зарегистрирован: 67 месяцев и 2 дня
Откуда: Саратов
Национальный флаг:
Russia
Благодарил (а): 667 раз.
Поблагодарили: 1220 раз.
Имя: Валерий
Пункты репутации: 25
Молодой трейдерМолодой трейдерМолодой трейдер

MQL4

Номер сообщения:#8  Непрочитанное сообщение Pyyx » 16 сен 2012, 22:20

Kordan писал(а):

Никак не получается у меня сделать сбор информации по открытым ордерам на массивах. Может кто подскажет на примере хотя бы замены одной функции.
Скрытый текст: показать
Код: выделить все · Развернуть
int CountOfBuy()
{
  int count = 0;
  for (int i = 0; i < OrdersTotal(); i++)
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      if ((OrderSymbol() == Symbol()) && (OrderMagicNumber() ==MagicNumber))
        if (OrderType() == OP_BUY)
          count++;
  return(count);
}


Не совсем корректный пример, но попробую объяснить.
Код: выделить все · Развернуть
int CountOfBuy()
{
  int count = 0;
  for (int i = 0; i < OrdersTotal(); i++)
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      if ((OrderSymbol() == Symbol()) && (OrderMagicNumber() ==MagicNumber))
        if (OrderType() == OP_BUY)
          count++;
  return(count);
}

Дело в том, что эта функция делает подсчет только баевских ордеров с фильтром по магику и инструменту. А в функции, что я показал, выводится полная инфа по каждому ордеру с фильтром по магику и инструменту, и, дополнительно, если магик стоит -1 то остаётся толь один фильтр по инструменту, то есть советник с этой функцией установленный на какой либо инструмент подхватит все открытые ордера.
Код: выделить все · Развернуть
//+------------------------------------------------------------------+
void InfaOrders()
{int i;bool flag=false;
   ArrayResize(arrayBUY,100);
   ArrayResize(arraySell,100);
for(i=OrdersTotal()-1;i>=0;i--)
   {if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
    {if (ExpertMagicNumber==-1){if (OrderSymbol() == Symbol())flag=true;}
     else {if (OrderSymbol() == Symbol())if (OrderMagicNumber() == ExpertMagicNumber)flag=true;}
     if(flag)
     {if(OrderType()==OP_BUY)
        {arrayBUY[oBuy][0] = OrderTicket();
         arrayBUY[oBuy][1] = OrderLots();
         arrayBUY[oBuy][2] = OrderOpenPrice();
         arrayBUY[oBuy][3] = OrderStopLoss();
         arrayBUY[oBuy][4] = OrderTakeProfit();
         arrayBUY[oBuy][5] = OrderType();
         oBuy++;}
      if(OrderType()==OP_SELL)
        {arraySell[oSell][0] = OrderTicket();
         arraySell[oSell][1] = OrderLots();
         arraySell[oSell][2] = OrderOpenPrice();
         arraySell[oSell][3] = OrderStopLoss();
         arraySell[oSell][4] = OrderTakeProfit();
         arraySell[oSell][5] = OrderType();
         oSell++;}
     }
    }
   }
   ArrayResize(arrayBUY,oBuy);
   ArrayResize(arraySell,oSell);
}
//+------------------------------------------------------------------+


Эта функция заполняет двумерный массив созданный в начале.
MQL4 - вопросы программирования


Примеры использования.
Модификация TakeProfi ордеров Buy:

Код: выделить все · Развернуть
oBuy=0;oSell=0;
InfaOrders();
for (i=0;i<oBuy;i++)OrderModif(arrayBUY[i][0],arrayBUY[i][2],arrayBUY[i][3],PriceBuy+ND(TakeProfit*Point));


Модификация TakeProfi ордеров Sell:

Код: выделить все · Развернуть
oBuy=0;oSell=0;
InfaOrders();
for (i=0;i<oSell;i++)OrderModif(arraySell[i][0],arraySell[i][2],arraySell[i][3],PriceSell-ND(TakeProfit*Point));


функция вызванная в примерах:

Код: выделить все · Развернуть
//+------------------------------------------------------------------+
void OrderModif(int ticket,double Pirs,double SL,double TP)
{bool res=false;
  res=OrderModify(ticket,Pirs,SL,TP,0);
  if (!res)Print("Ордер #",ticket," модифицировать не удалось. Ошибка ",OrderError()); // не удалось модифицировать
}
//+------------------------------------------------------------------+


Если что то не понятно пишите.

P.S. Мой любимый учебник, по нему я учился и постоянно консультируюсь.
http://book.mql4.com/ru/
Правильного выбора в реальности не существует — есть только сделанный выбор и его последствия.

MQL4 - вопросы программирования
Аватар пользователя
Pyyx
.
.
Сообщений: 950
Возраст: 37
Зарегистрирован: 66 месяцев и 9 дней
Откуда: Планета Земля
Национальный флаг:
Belarus
Благодарил (а): 331 раз.
Поблагодарили: 545 раз.
Имя: Сергей
Пункты репутации: 21
Молодой трейдерМолодой трейдерМолодой трейдер

MQL4

Номер сообщения:#9  Непрочитанное сообщение STALKER » 19 сен 2012, 04:10

Меня вот еще интересует вопрос, кто знает где почитать или может выложит здесь материал, как на советники индикаторы ставиться защита от де компиляции и как их к счету привязывают, кто владеет информацией по защите поделитесь хочется ознакомиться для общего развития может когда нибудь стану мега программистом пригодиться :D
Аватар пользователя
STALKER


MQL4

Номер сообщения:#10  Непрочитанное сообщение coder-ex » 19 сен 2012, 04:37

У меня вопрос к знающим.

Какой код будет выполняться быстрее:
1. Код советника использует внешние индикаторы из стандартного комплекта МТ4
2. Код советника использует внешние индикаторы из пользовательских индикаторов МТ4
3. Индикаторы находятся внутри сова
Си — это причудливый, несовершенный, но невероятно успешный язык.
— Dennis M. Ritchie.
Аватар пользователя
coder-ex
.
.
Сообщений: 849
Возраст: 47
Зарегистрирован: 18 месяцев и 2 дня
Откуда: Томск
Национальный флаг:
Russia
Благодарил (а): 10 раз.
Поблагодарили: 21 раз.
Имя: Константин
Пункты репутации: 2
Ученик трейдера

MQL4

Номер сообщения:#11  Непрочитанное сообщение Pyyx » 19 сен 2012, 11:50

Kisa писал(а):

У меня вопрос к знающим.

Какой код будет выполняться быстрее:
1. Код советника использует внешние индикаторы из стандартного комплекта МТ4
2. Код советника использует внешние индикаторы из пользовательских индикаторов МТ4
3. Индикаторы находятся внутри сова



Смотря где вам нужно увеличить скорость. Если в реальном времени, для увеличения скорости вычисления и установки ордеров, то алгоритм лучше всего прописывать в теле советника. Ну а если для увеличении скорости тестирования или оптимизации, то лучше использовать пользовательские или встроенные индикаторы.
Дело в том, что терминал МТ4 и МТ5 при запуске на тестирование сначала производит вычисления всех функций вызываемых командами встроенных индикаторов или командой iCustom(…) на выбранной вами истории, и уже при непосредственном тесте советника обращается к полученным данным, не перечитывая данные индикатора.

P.S. В связи с этой особенностью тестирования в терминалах МТ4 и МТ5, многие советники показывающие хорошие результаты на перерисовывающихся или смотрящих на историю индикаторах, в реальном времени сливают депозиты.
:D :D :D
Правильного выбора в реальности не существует — есть только сделанный выбор и его последствия.

MQL4 - вопросы программирования
Аватар пользователя
Pyyx
.
.
Сообщений: 950
Возраст: 37
Зарегистрирован: 66 месяцев и 9 дней
Откуда: Планета Земля
Национальный флаг:
Belarus
Благодарил (а): 331 раз.
Поблагодарили: 545 раз.
Имя: Сергей
Пункты репутации: 21
Молодой трейдерМолодой трейдерМолодой трейдер

MQL4

Номер сообщения:#12  Непрочитанное сообщение coder-ex » 19 сен 2012, 16:37

Pyyx писал(а):

Kisa писал(а):

У меня вопрос к знающим.

Какой код будет выполняться быстрее:
1. Код советника использует внешние индикаторы из стандартного комплекта МТ4
2. Код советника использует внешние индикаторы из пользовательских индикаторов МТ4
3. Индикаторы находятся внутри сова



Смотря где вам нужно увеличить скорость. Если в реальном времени, для увеличения скорости вычисления и установки ордеров, то алгоритм лучше всего прописывать в теле советника. Ну а если для увеличении скорости тестирования или оптимизации, то лучше использовать пользовательские или встроенные индикаторы.
Дело в том, что терминал МТ4 и МТ5 при запуске на тестирование сначала производит вычисления всех функций вызываемых командами встроенных индикаторов или командой iCustom(…) на выбранной вами истории, и уже при непосредственном тесте советника обращается к полученным данным, не перечитывая данные индикатора.

P.S. В связи с этой особенностью тестирования в терминалах МТ4 и МТ5, многие советники показывающие хорошие результаты на перерисовывающихся или смотрящих на историю индикаторах, в реальном времени сливают депозиты.
:D :D :D


А как сделать так, что бы данные индикаторов пересчитывались при тестировании? может тогда действительно имеет смысл код индикатора вставить в код советника?
Си — это причудливый, несовершенный, но невероятно успешный язык.
— Dennis M. Ritchie.
Аватар пользователя
coder-ex
.
.
Сообщений: 849
Возраст: 47
Зарегистрирован: 18 месяцев и 2 дня
Откуда: Томск
Национальный флаг:
Russia
Благодарил (а): 10 раз.
Поблагодарили: 21 раз.
Имя: Константин
Пункты репутации: 2
Ученик трейдера

MQL4

Номер сообщения:#13  Непрочитанное сообщение Pyyx » 19 сен 2012, 21:44

Kisa писал(а):

А как сделать так, что бы данные индикаторов пересчитывались при тестировании? может тогда действительно имеет смысл код индикатора вставить в код советника?


Не вижу смысла вообще пользоваться такими индикаторами. Ну а если очень нужно, то вставляй в советник. Но это дополнительный геморрой с массивами, так как и советниках буфер не используется.
:mrgreen: :mrgreen: :mrgreen:
Правильного выбора в реальности не существует — есть только сделанный выбор и его последствия.

MQL4 - вопросы программирования
Аватар пользователя
Pyyx
.
.
Сообщений: 950
Возраст: 37
Зарегистрирован: 66 месяцев и 9 дней
Откуда: Планета Земля
Национальный флаг:
Belarus
Благодарил (а): 331 раз.
Поблагодарили: 545 раз.
Имя: Сергей
Пункты репутации: 21
Молодой трейдерМолодой трейдерМолодой трейдер

MQL4

Номер сообщения:#14  Непрочитанное сообщение coder-ex » 26 сен 2012, 10:20

Меня интересует к примеру индикатор Ишимоку.
Мне нужно при тестировании получать не перерисовывающиеся данные этого индикатора, а как в реальном времени. Как реализовать такой алгоритм в советнике? Вставить код индикатора в код советника или использовать пользовательский индикатор посредством iCustom(..)?

Подскажите как нанести значки в виде меток на график цены при получении к примеру сигналов Buy и Sell ?

Меня интересует алгоритм нанесения на график к примеру стрелки, в район цены при получении сигнала от индикатора. Сам принцип нанесения меток на график я знаю, но вот как привязать к цене не могу сообразить.
Си — это причудливый, несовершенный, но невероятно успешный язык.
— Dennis M. Ritchie.
Аватар пользователя
coder-ex
.
.
Сообщений: 849
Возраст: 47
Зарегистрирован: 18 месяцев и 2 дня
Откуда: Томск
Национальный флаг:
Russia
Благодарил (а): 10 раз.
Поблагодарили: 21 раз.
Имя: Константин
Пункты репутации: 2
Ученик трейдера

MQL4

Номер сообщения:#15  Непрочитанное сообщение Pyyx » 26 сен 2012, 16:04

Kisa писал(а):

Меня интересует к примеру индикатор Ишимоку.
Мне нужно при тестировании получать не перерисовывающиеся данные этого индикатора, а как в реальном времени. Как реализовать такой алгоритм в советнике? Вставить код индикатора в код советника или использовать пользовательский индикатор посредством iCustom(..)?

Подскажите как нанести значки в виде меток на график цены при получении к примеру сигналов Buy и Sell ?

Меня интересует алгоритм нанесения на график к примеру стрелки, в район цены при получении сигнала от индикатора. Сам принцип нанесения меток на график я знаю, но вот как привязать к цене не могу сообразить.


Так и не понял толком чего вы хотите, но попробую. Для нанесения каких-либо объектов на график нужны, как минимум, две координаты время и ЦЕНА. Но если это не подходит, то я, обычно, даю название объекту того параметра, который мне пригодится в последствии.
Правильного выбора в реальности не существует — есть только сделанный выбор и его последствия.

MQL4 - вопросы программирования
Аватар пользователя
Pyyx
.
.
Сообщений: 950
Возраст: 37
Зарегистрирован: 66 месяцев и 9 дней
Откуда: Планета Земля
Национальный флаг:
Belarus
Благодарил (а): 331 раз.
Поблагодарили: 545 раз.
Имя: Сергей
Пункты репутации: 21
Молодой трейдерМолодой трейдерМолодой трейдер

MQL4

Номер сообщения:#16  Непрочитанное сообщение coder-ex » 26 сен 2012, 16:07

Pyyx писал(а):

Kisa писал(а):

Меня интересует к примеру индикатор Ишимоку.
Мне нужно при тестировании получать не перерисовывающиеся данные этого индикатора, а как в реальном времени. Как реализовать такой алгоритм в советнике? Вставить код индикатора в код советника или использовать пользовательский индикатор посредством iCustom(..)?

Подскажите как нанести значки в виде меток на график цены при получении к примеру сигналов Buy и Sell ?

Меня интересует алгоритм нанесения на график к примеру стрелки, в район цены при получении сигнала от индикатора. Сам принцип нанесения меток на график я знаю, но вот как привязать к цене не могу сообразить.
Так и не понял толком чего вы хотите, но попробую. Для нанесения каких-либо объектов на график нужны, как минимум, две координаты время и ЦЕНА. Но если это не подходит, то я, обычно, даю название объекту того параметра, который мне пригодится в последствии.
Ситуация в следующем:

Скрытый текст: показать
Код: выделить все · Развернуть
if(ObjectFind("Obj001")==-1)
               {
               ObjectCreate("Obj001", OBJ_ARROW, 0, Time[1], Close[1]);
               ObjectSet("Obj001", OBJPROP_ARROWCODE, 241);
               ObjectSet("Obj001", OBJPROP_COLOR, Blue);
                }
При проходе программой этой конструкции ставится метка в виде стрелки, но она ставится только одна, а мне нужно что бы как только программа проходила эту конструкцию каждый раз ставилась метка.
Си — это причудливый, несовершенный, но невероятно успешный язык.
— Dennis M. Ritchie.
Аватар пользователя
coder-ex
.
.
Сообщений: 849
Возраст: 47
Зарегистрирован: 18 месяцев и 2 дня
Откуда: Томск
Национальный флаг:
Russia
Благодарил (а): 10 раз.
Поблагодарили: 21 раз.
Имя: Константин
Пункты репутации: 2
Ученик трейдера

MQL4

Номер сообщения:#17  Непрочитанное сообщение Pyyx » 26 сен 2012, 16:56

Kisa писал(а):

Ситуация в следующем:

Скрытый текст: показать
Код: выделить все · Развернуть
if(ObjectFind("Obj001")==-1)
               {
               ObjectCreate("Obj001", OBJ_ARROW, 0, Time[1], Close[1]);
               ObjectSet("Obj001", OBJPROP_ARROWCODE, 241);
               ObjectSet("Obj001", OBJPROP_COLOR, Blue);
                }

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


Попробуй так
Скрытый текст: показать
Код: выделить все · Развернуть
]ObjectDelete("Obj001");
               ObjectCreate("Obj001", OBJ_ARROW, 0, Time[1], Close[1]);
               ObjectSet("Obj001", OBJPROP_ARROWCODE, 241);
               ObjectSet("Obj001", OBJPROP_COLOR, Blue);
Правильного выбора в реальности не существует — есть только сделанный выбор и его последствия.

MQL4 - вопросы программирования
Аватар пользователя
Pyyx
.
.
Сообщений: 950
Возраст: 37
Зарегистрирован: 66 месяцев и 9 дней
Откуда: Планета Земля
Национальный флаг:
Belarus
Благодарил (а): 331 раз.
Поблагодарили: 545 раз.
Имя: Сергей
Пункты репутации: 21
Молодой трейдерМолодой трейдерМолодой трейдер

MQL4

Номер сообщения:#18  Непрочитанное сообщение coder-ex » 26 сен 2012, 17:13

Pyyx писал(а):

Kisa писал(а):

Ситуация в следующем:

Скрытый текст: показать
Код: выделить все · Развернуть
if(ObjectFind("Obj001")==-1)
               {
               ObjectCreate("Obj001", OBJ_ARROW, 0, Time[1], Close[1]);
               ObjectSet("Obj001", OBJPROP_ARROWCODE, 241);
               ObjectSet("Obj001", OBJPROP_COLOR, Blue);
                }

При проходе программой этой конструкции ставится метка в виде стрелки, но она ставится только одна, а мне нужно что бы как только программа проходила эту конструкцию каждый раз ставилась метка.
Попробуй так
Скрытый текст: показать
Код: выделить все · Развернуть
ObjectDelete("Obj001");
               ObjectCreate("Obj001", OBJ_ARROW, 0, Time[1], Close[1]);
               ObjectSet("Obj001", OBJPROP_ARROWCODE, 241);
               ObjectSet("Obj001", OBJPROP_COLOR, Blue);
А так предыдущие метки удаляются и на графике остается только последняя.
Си — это причудливый, несовершенный, но невероятно успешный язык.
— Dennis M. Ritchie.
Аватар пользователя
coder-ex
.
.
Сообщений: 849
Возраст: 47
Зарегистрирован: 18 месяцев и 2 дня
Откуда: Томск
Национальный флаг:
Russia
Благодарил (а): 10 раз.
Поблагодарили: 21 раз.
Имя: Константин
Пункты репутации: 2
Ученик трейдера

MQL4

Номер сообщения:#19  Непрочитанное сообщение Virexes » 27 сен 2012, 02:44

Kisa писал(а):

Меня интересует к примеру индикатор Ишимоку.
Мне нужно при тестировании получать не перерисовывающиеся данные этого индикатора, а как в реальном времени. Как реализовать такой алгоритм в советнике? Вставить код индикатора в код советника или использовать пользовательский индикатор посредством iCustom(..)?

Подскажите как нанести значки в виде меток на график цены при получении к примеру сигналов Buy и Sell ?

Меня интересует алгоритм нанесения на график к примеру стрелки, в район цены при получении сигнала от индикатора. Сам принцип нанесения меток на график я знаю, но вот как привязать к цене не могу сообразить.

Есть сова по Ишимоку, в код не заглядывал, но может что-нибудь найдешь для себя интерестного
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Virexes


MQL4

Номер сообщения:#20  Непрочитанное сообщение coder-ex » 27 сен 2012, 04:22

Virexes писал(а):

Kisa писал(а):

Меня интересует к примеру индикатор Ишимоку.
Мне нужно при тестировании получать не перерисовывающиеся данные этого индикатора, а как в реальном времени. Как реализовать такой алгоритм в советнике? Вставить код индикатора в код советника или использовать пользовательский индикатор посредством iCustom(..)?

Подскажите как нанести значки в виде меток на график цены при получении к примеру сигналов Buy и Sell ?

Меня интересует алгоритм нанесения на график к примеру стрелки, в район цены при получении сигнала от индикатора. Сам принцип нанесения меток на график я знаю, но вот как привязать к цене не могу сообразить.

Есть сова по Ишимоку, в код не заглядывал, но может что-нибудь найдешь для себя интерестного


Этот сов у меня есть, из него ранее уже кое что взял за основу, но все равно спасибо :) Только вот на мой вопрос без заглядывания в код совы ответить нельзя, ведь мне нужна именно индикация, которой в той сове нет...

А вот свой вопрос по нанесению меток уже теоретически решил, сегодня его реализую. Ночью (как обычно это у меня бывает :) ) пришла идея прикрутить функцию добавления к имени метки 1, а имя метки объявить как строковую переменную "метка_".
Си — это причудливый, несовершенный, но невероятно успешный язык.
— Dennis M. Ritchie.
Аватар пользователя
coder-ex
.
.
Сообщений: 849
Возраст: 47
Зарегистрирован: 18 месяцев и 2 дня
Откуда: Томск
Национальный флаг:
Russia
Благодарил (а): 10 раз.
Поблагодарили: 21 раз.
Имя: Константин
Пункты репутации: 2
Ученик трейдера

След.

Вернуться в Программное обеспечение



Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей

  • Объявления
cron