Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 919

 
novichok2018:

Всем здравствуйте!

Нашел на форуме функцию, считающую сколько пунктов прошла цена за определённое кол-во секунд  int ItemsPerSecond(const int seconds,MqlTick &tick), вставил её в код, скомпилировал - всё в норме, но когда пытаюсь её вызвать, компилятор кричит wrong parameters count.

Что я делаю неправильно?

Не читаете:

Документация по MQL5: Основы языка
Документация по MQL5: Основы языка
  • www.mql5.com
Язык MetaQuotes Language 5 (MQL5) является объектно-ориентированным языком программирования высокого уровня и предназначен для написания автоматических торговых стратегий, пользовательских технических индикаторов для анализа разнообразных финансовых рынков. Он позволяет не только писать разнообразные экспертные системы, предназначенные для...
 
novichok2018:

Что случилось? 

Все спят, или вымерли?

Со смеху :)

 
Artyom Trishkin:

Не читаете:

Igor Makanuписать ответы на абсурдные вопросы лень

Господа "умники" !

Вы как-то постоянно забываете, в какой ветке форума находитесь. Могу напомнить: ветка называется "Любые вопросы новичков...". И если уж вы считаете себя способными помочь новичкам (не для выпендрёжа ведь вы сюда зашли?), то незачем брезгливо морщиться на вопросы, которые вам кажутся глупыми и абсурдными, а новичку в которых трудно разобраться без вашей помощи.

Что толку - мне хоть двадцать раз прочитай "вызов функции" в Основах языка, так и осталось непонятным, какие же параметры нужно вводить в данном конкретном случае.

Так что, может быть кто-то всё же переступит через брезгливость и даст конкретный совет?

Спасибо. 

 
novichok2018:

Господа "умники" !

Вы как-то постоянно забываете, в какой ветке форума находитесь. Могу напомнить: ветка называется "Любые вопросы новичков...". И если уж вы считаете себя способными помочь новичкам (не для выпендрёжа ведь вы сюда зашли?), то незачем брезгливо морщиться на вопросы, которые вам кажутся глупыми и абсурдными, а новичку в которых трудно разобраться без вашей помощи.

Что толку - мне хоть двадцать раз прочитай "вызов функции" в Основах языка, так и осталось непонятным, какие же параметры нужно вводить в данном конкретном случае.

Так что, может быть кто-то всё же переступит через брезгливость и даст конкретный совет?

Спасибо. 

Как я могу забыть, если это моя ветка? :)

"Любые" - не означает, что речь можно вести о крепости напитков... Любые, скорее "осмысленные" вопросы. А то, что задаёте вы - это основы любого языка программирования, и вы людей своим вопросом просто в тупик поставили - вас начать обучать азам? Но это выходит за рамки как этой темы, так и самого форума.

Я дал вам ссылку на справку - вы нос воротите. Соответственно, с таким отношением к тем, кто вам показывает путь, приводящий к знаниям, а не "просто за вас всё сделать", вы долго будете людей потряхивать - мол, "чего замолчали, никто не знает что-ли?"...

В справке есть всё и о функциях, и об их формальных параметрах. И, простите, тонны примеров в CodeBase. Открываете любой код, ищете определение любой функции, имеющей формальные параметры, и смотрите как же её там вызывают-то...

Ну просто же - только не лениться, и не ждать манны небесной, а хоть чуть самому пошевелить серым веществом.

Я не заканчивал академий... Я, придя из армии, заинтересовался написанием программ для XZ Spectrum. На Бейсике.., и сам дошёл до того, что писал программы для него уже на ассемблере, а потом и пошло-поехало.

И форумов никаких не было, и интернет мы делили на троих (сегодня один, завтра второй, послезавтра - я). И дорогой был интернет, да ещё и через модем по телефонным проводам.
На радио-барахолке покупал книжки по программированию. И пришёл к тому, к чему пришёл, и теперь мой брат, заканчивавший институт на программиста, спрашивает советов у меня как, и что сделать.
Но я хотел научиться, горел этим. А вы? А вам, по-моему, нужно чтобы кто-то за вас всё сделал.

 
Artyom Trishkin:

Я не заканчивал академий... Я, придя из армии, заинтересовался написанием программ для XZ Spectrum. На Бейсике.., и сам дошёл до того, что писал программы для него уже на ассемблере, а потом и пошло-поехало.

И форумов никаких не было, и интернет мы делили на троих (сегодня один, завтра второй, послезавтра - я). И дорогой был интернет, да ещё и через модем по телефонным проводам.
На радио-барахолке покупал книжки по программированию. И пришёл к тому, к чему пришёл, и теперь мой брат, заканчивавший институт на программиста, спрашивает советов у меня как, и что сделать.
Но я хотел научиться, горел этим. А вы? А вам, по-моему, нужно чтобы кто-то за вас всё сделал.

Честь и хвала Вам за упорство и целеустремленность. Все сказанное Вами безусловно достойно уважения, но требовать того же от всех по-моему бессмысленно. Тем более, что далеко не все желающие написать своего робота стремятся изучить язык программирования. Я уже как-то выше говорил, что у меня например, такой цели нет. Появился вопрос, как сделать то-то и то-то - ищешь решение в справочниках, учебниках, форумах, не слишком углубляясь в тему. Возможно по-этому и возникают подобные ситуации, когда казалось бы элементарные вещи вдруг непонятны. Конечно, "пошевелив серым веществом", я все равно найду решение. Да, возможно перелопатив "тонны примеров в  CodeBase" и потеряв уйму времени. Но становится непонятным, для чего Вы создавали эту ветку и почему ее так назвали, если вместо заявленной помощи новичкам заставляете углубляться в изучение языка. Так и назвали бы - "изучаем МКЛ4 и МКЛ5 вместе". Я думаю, никто из обратившихся за помощью не хочет, чтобы за него все сделали, достаточно объяснить что к чему или дать конкретную подсказку, а не ссылку на учебник. Если человеку надо, чтоб сделали за него, то он так конкретно и говорит: прошу написать мне то-то и то-то.

Ну что ж, зря обратился. Вам успехов в дальнейшем развитии.

 
novichok2018:

Честь и хвала Вам за упорство и целеустремленность. Все сказанное Вами безусловно достойно уважения, но требовать того же от всех по-моему бессмысленно. Тем более, что далеко не все желающие написать своего робота стремятся изучить язык программирования. Я уже как-то выше говорил, что у меня например, такой цели нет. Появился вопрос, как сделать то-то и то-то - ищешь решение в справочниках, учебниках, форумах, не слишком углубляясь в тему. Возможно по-этому и возникают подобные ситуации, когда казалось бы элементарные вещи вдруг непонятны. Конечно, "пошевелив серым веществом", я все равно найду решение. Да, возможно перелопатив "тонны примеров в  CodeBase" и потеряв уйму времени. Но становится непонятным, для чего Вы создавали эту ветку и почему ее так назвали, если вместо заявленной помощи новичкам заставляете углубляться в изучение языка. Так и назвали бы - "изучаем МКЛ4 и МКЛ5 вместе". Я думаю, никто из обратившихся за помощью не хочет, чтобы за него все сделали, достаточно объяснить что к чему или дать конкретную подсказку, а не ссылку на учебник. Если человеку надо, чтоб сделали за него, то он так конкретно и говорит: прошу написать мне то-то и то-то.

Ну что ж, зря обратился. Вам успехов в дальнейшем развитии.

Много обиды в словах. Но вы даже функцию свою не показали.
 
Artyom Trishkin:
Много обиды в словах. Но вы даже функцию свою не показали.

Это не обида, а разочарование. Давно не ребенок, чтобы обижаться. А функцию-то никто и не просил, сразу язвить начали.

Ну что ж, вот функция:

int ItemsPerSecond(const int seconds,MqlTick &tick)
{
//---
   static MqlTick rates[];
   datetime time_start;
   int count=0,size;
   bool insert=false;
   double price_start=0;
   long msc=0;
//---
   time_start=TimeCurrent()-seconds;
   
   for(int i=0;i<ArraySize(rates);i++)
   {
      if(rates[i].time>0 && rates[i].time<time_start)
      {
         ZeroMemory(rates[i]);
      }
      else if(!insert && rates[i].time==0)
      {
         rates[i]=tick;
         insert=true;
      }
      if(rates[i].time_msc>0 && (rates[i].time_msc<msc || msc==0))
      {
         price_start=rates[i].bid;
         msc=rates[i].time_msc;
      }
      
   }
   if(!insert)
   {
      size=ArraySize(rates);
      ArrayResize(rates,size+1,300);
      rates[size]=tick;
   }
   if(price_start>0)count=(int)((tick.bid-price_start)/Point);
   
   Comment("size: "+IntegerToString(ArraySize(rates))+"\r\n"+"count: "+IntegerToString(count));
//---
   return(count);   
} 

а вот как я пытаюсь её вызвать:

void OnTick()
  { 
  ItemsPerSecond(3); 
  }

3 - это три секунды (как я думаю).

 
novichok2018:

Нашел на форуме функцию, считающую сколько пунктов прошла цена за определённое кол-во секунд  int ItemsPerSecond(const int seconds,MqlTick &tick), вставил её в код, скомпилировал - всё в норме, но когда пытаюсь её вызвать, компилятор кричит wrong parameters count.

Что я делаю неправильно?


novichok2018:

а вот как я пытаюсь её вызвать:

void OnTick()
  { 
  ItemsPerSecond(3); 
  }

читаем справку https://www.mql5.com/ru/docs/basis/function и  https://www.mql5.com/ru/docs/basis/variables/formal

у Вас сколько параметров в Вызываемой функции?

int ItemsPerSecond(const int seconds,MqlTick &tick)



novichok2018:

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

к сожалению Вы даже "по вершкам" не осилили материал по MQL, речи даже не идет о самостоятельном написании программ, к сожалению Вы ничего не изучили....на пальцах...Вы выучили английский алфавит "Эй, Би, Си, Ди..." , а теперь пытаетесь писать на форуме на англиЦком, "Horosho", Вам пишут, что это не знание английского языка, это вообще ни о чем.... а Вы опять обижаться, что вот форум, вот топик с поддержкой новичков, и я все уже читал!!! и опять по кругу, эй Вы умники! а зачем этот топик! я не из обидчивых!!! ...

 
Igor Makanu:


читаем справку https://www.mql5.com/ru/docs/basis/function и  https://www.mql5.com/ru/docs/basis/variables/formal

у Вас сколько параметров в Вызываемой функции?



к сожалению Вы даже "по вершкам" не осилили материал по MQL, речи даже не идет о самостоятельном написании программ, к сожалению Вы ничего не изучили....на пальцах...Вы выучили английский алфавит "Эй, Би, Си, Ди..." , а теперь пытаетесь писать на форуме на англиЦком, "Horosho", Вам пишут, что это не знание английского языка, это вообще ни о чем.... а Вы опять обижаться, что вот форум, вот топик с поддержкой новичков, и я все уже читал!!! и опять по кругу, эй Вы умники! а зачем этот топик! я не из обидчивых!!! ...

Много буковок - и ничего, кроме самолюбования и унижения собеседника. А в каком виде вставить второй параметр? Задавал я второй параметр числом с тем же результатом. Зачем было столько "словесов"? Покажите решение на моём примере, предварительно скомпилировав и протестировав. Или раздутое самоуважение не позволяет?

 
novichok2018:

Или раздутое самоуважение не позволяет?

ОК, воспользуюсь своим правом не общаться с Вами (к счастью принудить к этому Вы меня не сможете) , Вы же пользуетесь правом писать на форум, но не читать предложенный Вам материал для изучения?

void OnTick()
  { 
  MqlTick t;
// судя по исходнику в t нужно скопировать тики и вызывать так:
ItemsPerSecond(3,t); 
  }

novichok2018:

Задавал я второй параметр числом с тем же результатом. Зачем было столько "словесов"? Покажите решение на моём примере, предварительно скомпилировав и протестировав

вот в Ваш пример дописал правильный вызов функции ItemsPerSecond(), не компилировал, не тестировал, и не собираюсь запускать терминал - на Ваш вопрос я ответил

Причина обращения: