[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 831

 

Boa tarde, distintos especialistas.

Você poderia me aconselhar sobre esta questão?

Existe alguma função padrão na MQL4 que permita determinar o valor máximo/mínimo que o preço assumiu no intervalo da i-ésima barra até a j-ésima?

Muito obrigado de antemão.

 
Morzh09:

Boa tarde, distintos especialistas.

Você poderia me aconselhar sobre esta questão?

Existe alguma função padrão na MQL4 que permita determinar o valor máximo/mínimo que o preço assumiu no intervalo da i-ésima barra até a j-ésima?

Muito obrigado de antemão.

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

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

 
Que tal isto
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;
}
Tenho que refrescar em algum lugar. E uma pergunta - quais são as conseqüências do uso do Slap?
 
gince:
E se você faz isso assim, você tem que refrescar em algum lugar. E uma pergunta - quais são as conseqüências do uso da bofetada?

Dormir no testador não funciona.

Por que a verificação de cada carrapato não funciona para você? O indicador é "pesado"?

 

Boa tarde, caros especialistas! Estou aprendendo a programar no MOL4. Não consigo descobrir como escrever corretamente a condição: "Se houver mais ordens de compra do que ordens de venda".

 
fanat:

Boa tarde, caros especialistas! Estou aprendendo a programar no MOL4. Não consigo descobrir como escrever corretamente a condição: "Se houver mais ordens de compra do que ordens de venda".

Aberto? Fechado? O mercado? Diferido?
Há uma diferença.
 
fanat:

Boa tarde, caros especialistas! Estou aprendendo a programar no MOL4. Não sei como escrever corretamente a condição: "Se houver mais ordens de compra do que ordens de venda". Por favor, ajude.


1. Contar o número de pedidos do primeiro tipo

2. Contar o número de pedidos do segundo tipo

3. Compare os resultados

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);
}

 

Olá!!!

Um indicador simples com setas. Ontem de ambas as maneiras.... de jeito nenhum... Pensado hoje com a cabeça limpa ainda não consigo ver o erro.....

NÃO ESTÁ DESENHANDO NADA!!!!! Por favor, me diga onde eu cometi um erro....

//+------------------------------------------------------------------+
//|                                         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);
}
//+------------------------------------------------------------------+ 
 
Por favor, ajude. Há várias ordens pendentes (10 por exemplo). Uma delas abre e aciona (não importa se é tomada ou perda). No próximo tick, a próxima ordem pendente deve ser estabelecida. É difícil identificar a ordem por um tick ou por um número mágico (o número de posições que pode acionar não é limitado). É por isso que decidi que a maneira mais fácil de escolher um tempo para estabelecer uma ordem pendente seria comparar os últimos e penúltimos valores variáveis (quaisquer que sejam) das posições que já foram fechadas. Obrigado!
 
dimon74:
Por favor, ajude. Há várias ordens pendentes (10 por exemplo). Uma delas abre e aciona (não importa se é uma ordem de tomada ou perda). No próximo tick, a próxima ordem pendente deve ser estabelecida. É difícil identificar a ordem por um tick ou um magik (o número de posições que podem desencadear não é limitado). É por isso que decidi que a maneira mais fácil de escolher um tempo para estabelecer uma ordem pendente seria comparar os últimos e penúltimos valores variáveis (quaisquer que sejam) das posições que já foram fechadas. Obrigado!

O que vai mudar da próxima vez?