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

 
Lol Kek:

Есть ли возможность для input переменной типа boolean в интерфейсе Входных параметров сделать возможность по двойному нажатию вместо переключения между true/false отображать свой текст? Спасибо

enum  ENUM_ONOFF
{
On  = 1,  // On   тут любой текст
Off = 0   // Off  тут любой текст
};

input ENUM_ONOFF iValue = On; // Параметр
 
Vladimir Pastushak:

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

А мне нужно чтобы отрабатывал как  input bool yesOrNo = true; - когда во входящих параметрах просто кликаешь дважды и он меняет значение на противоположное и наооборот при повторных. ТОлько вместо true и false вывести свой текст

 
Lol Kek:

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

А мне нужно чтобы отрабатывал как  input bool yesOrNo = true; - когда во входящих параметрах просто кликаешь дважды и он меняет значение на противоположное и наооборот при повторных. ТОлько вместо true и false вывести свой текст

Разницы нет никакой  bool это true и folse  а true это 1,  folse это 0

 

Здравствуйте. Совсем зеленый новичек. Подскажите по основам.

1 - почему хоть я и программирую в mql4 - он мне выкатывает шаблон для mql 5 c функциями int OnInit(), void OnTick() ? Они не создают ошибок, но работают ли они. У меня начинает путаница быть.

2 - пишу советник. void OnTick() - я так понимаю заменяет функцию  int start(), а    int OnInit()  - вместо  int init().

2.1 - прописал переменные которые буду использовать в  int OnInit() - он начал ругаться. Назначил тип переменной сразу по мере ее появления. Ругаться перестал. Почему?

2.2 - Элементарно открыть отложенный ордер на покупку и продажу. Почему он их не открывает. Хотя ошибок никаких не пишет?

int BS1 = OrderSend (Symbol(),OP_BUYSTOP,lots,Ask+50,3,0,0,"bs1",1,0,clrGreen);

int SS1 = OrderSend (Symbol(),OP_SELLSTOP,lots,Bid+50,3,0,0,"ss1",-1,0,clrRed);

3 - Как прикрутить счетчик к переменной - номеру ордера. (BS1, SS1) - переменные которые сразу и говорят какой это по счету ордер. Чтобы когда он продолжит сетку, поиск нужного ордера проходил все так же легко. После того, как   OP_BUYSTOP - поменяет свое значение на BUY, его идентификатор не изменится? Я смогу его найти по данным в BS1?

4 - Как проще сделать проверку на открыт ли уже какой либо из отложенных ордеров, или нет, особенно если в параметрах открытия заданно возможное проскальзывание на 3 пункта. Т.е. он сканирует диапозон цен, а не одну цену и может открыться и по цене на 1-3 пункта выше/ниже указанной по дефолту....

5. Подскажите еще где учебничек или уроки по MQL4 взять. Для повышения мастерства. Вот удивляюсь. Стратегия может быть описана в 2 строки, а открываешь советник так 100500 строк кода. Почему... И код такой, что фиг разберешь :(


Завалил вопросами ))) Помогите пожалуйста разобраться

 


Завалил вопросами ))) Помогите пожалуйста разобраться

по пп 2.2 : Ask+50 это вы сильно маханули :-) 50 насколько понял замысел это пункты..то есть надо 50 * _Point .. и ещё нормализовать. То есть вместо Ask+50 придётся писать NormalizeDouble(Ask+50*_Point,_Digits)

 
@Maxim Kuznetsov - спасибо ))
 

Почитал, вкурил, что означает каждый из параметров, поставил.....

У меня не откырвается отложенный sell. Блин он даже ошибок не выдает. GetLastError()=0! Покупку открывает как положено, а на продажу игнорит. Меня на смех берет, что ему надо то? ))))

int BS1 = OrderSend (Symbol(),OP_BUYSTOP,lots,NormalizeDouble(Ask+50*_Point,_Digits),3,0,0,"bs1",1,0,clrGreen);
  int SS1 = OrderSend (Symbol(),OP_SELLSTOP,lots,NormalizeDouble(Bid+50*_Point,_Digits),3,0,0,"ss1",101,0,clrRed);
    if (GetLastError()==1);
    {
    Alert (GetLastError());
    }

Люди добрые, где знаний нужных поднабраться? ))

 
Gilmor:

Почитал, вкурил, что означает каждый из параметров, поставил.....

У меня не откырвается отложенный sell. Блин он даже ошибок не выдает. GetLastError()=0! Покупку открывает как положено, а на продажу игнорит. Меня на смех берет, что ему надо то? ))))

Люди добрые, где знаний нужных поднабраться? ))

Есть такая вкладочка интересная в терминале - "Эксперты" называется. Вот в ней пишутся ошибки экспертов. Загляните. А потом в свой код.

 
int start()                                  // Спец. функция start()
  {                                          
  double prise;
  double lots = 0.01;  
  if (OrdersTotal()<1)
  {
  prise = MarketInfo(Symbol(), MODE_ASK);
  // int BS1 = OrderSend (Symbol(),OP_BUYSTOP,lots,NormalizeDouble(Ask+50*_Point,_Digits),3,0,0,"bs1",1,0,clrGreen);
  int SS1 = OrderSend (Symbol(),OP_SELLSTOP,lots,NormalizeDouble(Bid+50*_Point,_Digits),3,0,0,"ss1",101,0,clrRed);
   /* if (GetLastError()==1);
    {
    Alert (GetLastError());
    }
    */
  }
 
   return;                                   // Выход из start()
  }

Artyom Trishkin:

Есть такая вкладочка интересная в терминале - "Эксперты" называется. Вот в ней пишутся ошибки экспертов. Загляните. А потом в свой код.

Как видите в этой вкладке тоже показывает якобы все идеально. Загрузил, инициировал. У него никаких ошибок нет. :(

А так, спасибо! Не знал про использование этой вкладки.

 

Добрый день.

Уже неделю мучаюсь, пытаясь найти информацию. Помогите кодом))

Цель : Узнать разницу в пунктах открытия и закрытия свечи.

       Сложить её и вывести на экран.И так по 100 барам.

В итоге ,на экране я хочу увидеть общую сумму. 

void OnTick()

  {   

      double minprice =99999 , mp,cl,

             maxprice =-99999 ;

      double Index    = 0;

      double Index1    = 0;

      for(int i=100; i>0; i--)

      {

         mp = iLow  (Symbol(), PERIOD_CURRENT, i); 

         cl = iClose(Symbol(), PERIOD_CURRENT, i);

         

         if( mp < minprice)

               minprice = mp - cl;             

               Index = minprice + mp ; 

      }

Спасибо.

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Все предопределенные периоды графиков имеют уникальные идентификаторы. Идентификатор PERIOD_CURRENT означает текущий период графика, на котором запущена mql5-программа.
Причина обращения: