[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 831

 

Добрый день, уважаемые эксперты.

Подскажите, пожалуйста, по такому вопросу:

есть ли в MQL4 стандартные функции, позволяющие определить максимальное\минимальное значение, которое принимала цена на интервале с i-го по j-ый бар?

Заранее большое спасибо.

 
Morzh09:

Добрый день, уважаемые эксперты.

Подскажите, пожалуйста, по такому вопросу:

есть ли в MQL4 стандартные функции, позволяющие определить максимальное\минимальное значение, которое принимала цена на интервале с i-го по j-ый бар?

Заранее большое спасибо.

https://docs.mql4.com/ru/series/iHighest

https://docs.mql4.com/ru/series/iLowest

 
А если зделать так
void CheckForOpen() { 

//

s=0;
     t_up=icustom(.........................);
     if(t_up==1)
        {
          s=1;
          for(k=0;k<10;k++)             //количество раз проверки
            {
               sleep(30000);             //
             //думаю что в этом месте рефреш ????????
               if(t_up==1)
                    s=1;
                else
                    {
                       s=0;
                       break;
                    }
             }
           if(s==1)op="buy";
        }
      else
        {
          s=0;
          break;
        }
return;
}
Куда то надо вставить рефреш. И вопрос- какие последствия использования Слеепа  ?
 
gince:
А если зделать так Куда то надо вставить рефреш. И вопрос- какие последствия использования Слеепа ?

Sleep в тестере не работает.

Почему вам не подходит проверка на каждом тике? Индюкатор "тяжелый" ?

 

Добрый день, уважаемые эксперты! Учусь программировать на MOL4 . Никак не соображу, как правильно записать условие:" Если ордеров buy, больше чем ордеров sell." Прошу помочь.

 
fanat:

Добрый день, уважаемые эксперты! Учусь программировать на MOL4 . Никак не соображу, как правильно записать условие:" Если ордеров buy, больше чем ордеров sell." Прошу помочь.

Открытых? Закрытых? Рыночных? Отложенных?
Есть разница.
 
fanat:

Добрый день, уважаемые эксперты! Учусь программировать на MOL4 . Никак не соображу, как правильно записать условие:" Если ордеров buy, больше чем ордеров sell." Прошу помочь.


1. Сосчитать количество оредров первого типа

2. Сосчитать количество ордеров второго типа

3. Сравнить результаты

extern int Magic=20100906;
//+------------------------------------------------------------------+
//|     Массив для хранения количества открытых позиций каждого типа |
//|                                Copyright © 2010, Victor Nicolaev |
//|                                            e-mail: vinin@mail.ru |
//+------------------------------------------------------------------+
//| int Order_Count[6];                                              |
//+------------------------------------------------------------------+
int Order_Count[6];

//+------------------------------------------------------------------+
//|       Функция возвращаюшая количество ордеров определенного типа |
//|                                   исхода из заданных ограничений |
//|                                Copyright © 2010, Victor Nicolaev |
//|                                            e-mail: vinin@mail.ru |
//+------------------------------------------------------------------+
//| int Order_Count_Calculate(string lSymbol, int lMagic, int lOP=-1)|
//+------------------------------------------------------------------+
int Order_Count_Calculate(string lSymbol, int lMagic, int lOP=-1){
   ArrayInitialize(Order_Count,0);
   for (int i = OrdersTotal() - 1;  i >= 0;  i--) {
      if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
      if (OrderSymbol() != lSymbol)                   continue;
      if (OrderMagicNumber() != lMagic)                continue;
      Order_Count[OrderType()]++;
   }
   if (lOP!=-1) return(Order_Count[lOP]);
   return(0);
}

int start(){
   Order_Count_Calculate(Symbol(), Magic);
   if (Order_Count[OP_BUY]>Order_Count[OP_SELL])
   // Ваши действия
   return(0);
}

 

Здравствуйте!!!

Простой индикатор со стрелочками. Вчера и так и сяк.... никак... Думал сегодня на свежую голову всё равно не вижу ошибку.....

НУ НЕ РИСУЕТ ОН Н И Ч Е Г О!!!!! Подскажите плиззззз где ошибся....

//+------------------------------------------------------------------+
//|                                         Indicator_OsMA_Stoch.mq4 |
//|                                                                  |
//|           огромное cпасибо за помощь Vinin и granit77            |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
//---- input parameters
extern int       Fast_EMA=8;      // пар-ры OsMA
extern int       Slow_EMA=34;     // пар-ры OsMA
extern int       Signal_EMA=1;    // пар-ры OsMA
extern double    N = 0.0002;      // контр. линия
extern int     KPeriod     = 21;  // Период (количество баров) для вычисления линии %K.
extern int     DPeriod     = 5;   // Период усреднения для вычисления линии %D.
extern int     Slowing     = 8;   // Значение замедления.
extern int       A = 20;          // расстояние от бара
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double OsMA[];
double Stoch[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorBuffers(4);
   SetIndexStyle(0,DRAW_ARROW, EMPTY, 1);
   SetIndexArrow(0,234);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(1,DRAW_ARROW, EMPTY, 1);
   SetIndexArrow(1,233);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexEmptyValue(1,0.0);
   SetIndexBuffer(2,OsMA);
   SetIndexBuffer(3,Stoch);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   int limit = Bars-counted_bars-1;
   
   for(int i = limit; i>= 0; i--) {
      ExtMapBuffer2[i] = EMPTY;
      ExtMapBuffer1[i] = EMPTY;
      OsMA[i]=iOsMA(NULL,0,Fast_EMA,Slow_EMA,Signal_EMA,PRICE_OPEN,i);
      Stoch[i]=iStochastic(NULL,0,KPeriod,DPeriod,Slowing,1,0,MODE_MAIN,i);
      if(true                &&
        (OsMA[i]>OsMA[i+1])  ||
        (OsMA[i]<OsMA[i+1])  &&
        (Stoch[i+1]>Stoch[i])||
        (Stoch[i+1]<Stoch[i])
        )
      {
       if((OsMA[i]<-N)&&(Stoch[i]<20)) ExtMapBuffer2[i] = Low[i] -A*Point;
       if((OsMA[i]> N)&&(Stoch[i]>80)) ExtMapBuffer1[i] = High[i]+A*Point; 
      }
   }
   return(0);
}
//+------------------------------------------------------------------+ 
 
Помогите пожалуйста. Есть несколько отложенных ордеров (10 например). Один из них открывается и срабатывает (неважно по тейку или лоссу). На следующем тике должен установится следующий отложенный ордер. Идентифицировать ордера по тикету или магику сложно (колличество позиций которые могут сработать не ограничено). Поэтому я и решил, что самым простым способом выбора времени для установки отложки будет сравнивание последней и предпоследней величин переменных (всё равно каких) уже закрытых позиций. Спасибо!
 
dimon74:
Помогите пожалуйста. Есть несколько отложенных ордеров (10 например). Один из них открывается и срабатывает (неважно по тейку или лоссу). На следующем тике должен установится следующий отложенный ордер. Идентифицировать ордера по тикету или магику сложно (колличество позиций которые могут сработать не ограничено). Поэтому я и решил, что самым простым способом выбора времени для установки отложки будет сравнивание последней и предпоследней величин переменных (всё равно каких) уже закрытых позиций. Спасибо!

А в следующий раз что изменится?