[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 831

 

Buon pomeriggio, illustri esperti.

Potreste per favore consigliarmi su questa domanda?

Ci sono funzioni standard in MQL4 che permettono di determinare il valore massimo/minimo che il prezzo ha preso nell'intervallo dalla i-esima barra alla j-esima?

Grazie mille in anticipo.

 
Morzh09:

Buon pomeriggio, illustri esperti.

Potreste per favore consigliarmi su questa domanda?

Ci sono funzioni standard in MQL4 che permettono di determinare il valore massimo/minimo che il prezzo ha preso nell'intervallo dalla i-esima barra alla j-esima?

Grazie mille in anticipo.

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

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

 
Che ne dici di questo
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;
}
Devo rinfrescare da qualche parte. E una domanda: quali sono le conseguenze dell'uso di Slap?
 
gince:
E se lo fai così, devi rinfrescare da qualche parte. E una domanda - quali sono le conseguenze dell'uso dello schiaffo?

Ilsonno nel tester non funziona.

Perché il controllo su ogni spunta non funziona? L'indicatore è "pesante"?

 

Buon pomeriggio, cari esperti! Sto imparando a programmare in MOL4. Non riesco a capire come scrivere correttamente la condizione: "Se ci sono più ordini di acquisto che ordini di vendita".

 
fanat:

Buon pomeriggio, cari esperti! Sto imparando a programmare in MOL4. Non riesco a capire come scrivere correttamente la condizione: "Se ci sono più ordini di acquisto che ordini di vendita".

Aperto? Chiuso? Mercato? Rinviato?
C'è una differenza.
 
fanat:

Buon pomeriggio, cari esperti! Sto imparando a programmare in MOL4. Non so come scrivere correttamente la condizione: "Se ci sono più ordini di acquisto che ordini di vendita".


1. Conta il numero di ordini del primo tipo

2. Conta il numero di ordini del secondo tipo

3. Confronta i risultati

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

 

Ciao!!!

Un semplice indicatore con frecce. Ieri entrambi i modi.... in nessun modo... Pensato oggi a mente lucida non riesco ancora a vedere l'errore.....

NON STA DISEGNANDO NULLA!!!!! Per favore, ditemi dove ho sbagliato....

//+------------------------------------------------------------------+
//|                                         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);
}
//+------------------------------------------------------------------+ 
 
Per favore, aiutatemi. Ci sono diversi ordini in sospeso (10 per esempio). Uno di loro si apre e si innesca (non importa se è prendere o perdere). Al prossimo tick, il prossimo ordine pendente dovrebbe essere impostato. È difficile identificare l'ordine da un tick o un magik (il numero di posizioni che possono scattare non è limitato). Ecco perché ho deciso che il modo più semplice per scegliere un tempo per impostare un ordine pendente sarebbe stato quello di confrontare l'ultimo e il penultimo valore della variabile (qualsiasi cosa) delle posizioni che sono già state chiuse. Grazie!
 
dimon74:
Per favore, aiutatemi. Ci sono diversi ordini in sospeso (10 per esempio). Uno di loro si apre e si innesca (non importa se è prendere o perdere). Al prossimo tick, il prossimo ordine pendente dovrebbe essere impostato. È difficile identificare l'ordine da un tick o un magik (il numero di posizioni che possono scattare non è limitato). Ecco perché ho deciso che il modo più semplice per scegliere un tempo per impostare un ordine pendente sarebbe stato quello di confrontare l'ultimo e il penultimo valore della variabile (qualsiasi cosa) delle posizioni che sono già state chiuse. Grazie!

Cosa cambierà la prossima volta?
Motivazione: