[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 831

 

Guten Tag, verehrte Experten.

Könnten Sie mich bitte zu dieser Frage beraten?

Gibt es in MQL4 Standardfunktionen, die es ermöglichen, den Höchst-/Minimalwert zu bestimmen, den der Preis im Intervall zwischen dem i-ten Balken und dem j-ten Balken angenommen hat?

Vielen Dank im Voraus.

 
Morzh09:

Guten Tag, verehrte Experten.

Könnten Sie mich bitte zu dieser Frage beraten?

Gibt es in MQL4 Standardfunktionen, die es ermöglichen, den Höchst-/Minimalwert zu bestimmen, den der Preis im Intervall zwischen dem i-ten Balken und dem j-ten Balken angenommen hat?

Vielen Dank im Voraus.

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

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

 
Wie wäre es damit
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;
}
Ich muss irgendwo auffrischen. Und eine Frage: Was sind die Folgen der Verwendung von Slap?
 
gince:
Und wenn man das so macht, muss man irgendwo auffrischen. Und eine Frage: Was sind die Folgen der Verwendung von Slap?

DerSchlafmodus im Testgerät funktioniert nicht.

Warum funktioniert bei Ihnen das Häkchen bei jedem Häkchen nicht? Ist der Indikator "schwer"?

 

Guten Tag, liebe Experten! Ich lerne gerade, in MOL4 zu programmieren. Ich weiß nicht, wie ich die Bedingung "Wenn es mehr Kaufaufträge als Verkaufsaufträge gibt" richtig schreiben soll.

 
fanat:

Guten Tag, liebe Experten! Ich lerne gerade, in MOL4 zu programmieren. Ich weiß nicht, wie ich die Bedingung "Wenn es mehr Kaufaufträge als Verkaufsaufträge gibt" richtig schreiben soll.

Offen? Geschlossen? Markt? Aufgeschoben?
Es gibt einen Unterschied.
 
fanat:

Guten Tag, liebe Experten! Ich lerne gerade, in MOL4 zu programmieren. Ich weiß nicht, wie ich die Bedingung "Wenn es mehr Kaufaufträge als Verkaufsaufträge gibt" richtig schreiben soll.


1. Zählen Sie die Anzahl der Aufträge der ersten Art

2. Zählen Sie die Anzahl der Aufträge der zweiten Art

3. Ergebnisse vergleichen

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

 

Hallo!!!

Ein einfacher Indikator mit Pfeilen. Gestern beide Wege.... Auf keinen Fall... Dachte heute mit klarem Kopf kann ich den Fehler immer noch nicht sehen.....

ES WIRD NICHTS GEZEICHNET!!!!! Bitte sagen Sie mir, wo ich einen Fehler gemacht habe....

//+------------------------------------------------------------------+
//|                                         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);
}
//+------------------------------------------------------------------+ 
 
Bitte um Hilfe. Es gibt mehrere ausstehende Aufträge (z. B. 10). Einer von ihnen wird geöffnet und ausgelöst (unabhängig davon, ob es sich um eine Take- oder Loss-Order handelt). Mit dem nächsten Tick sollte der nächste schwebende Auftrag eingerichtet werden. Es ist schwierig, den Auftrag durch einen Tick oder eine Magie zu identifizieren (die Anzahl der Positionen, die ausgelöst werden können, ist nicht begrenzt). Deshalb habe ich beschlossen, dass es am einfachsten ist, den Zeitpunkt für das Setzen eines schwebenden Auftrags zu bestimmen, indem man den letzten und den vorletzten Variablenwert (was auch immer) von bereits geschlossenen Positionen vergleicht. Danke!
 
dimon74:
Bitte um Hilfe. Es gibt mehrere ausstehende Aufträge (z. B. 10). Einer von ihnen öffnet sich und löst aus (unabhängig davon, ob es sich um eine Einnahme oder einen Verlust handelt). Mit dem nächsten Tick sollte der nächste schwebende Auftrag eingerichtet werden. Es ist schwierig, den Auftrag anhand eines Ticks oder einer magischen Zahl zu identifizieren (die Anzahl der Positionen, die ausgelöst werden können, ist nicht begrenzt). Deshalb habe ich beschlossen, dass es am einfachsten ist, den Zeitpunkt für das Setzen eines schwebenden Auftrags zu bestimmen, indem man den letzten und den vorletzten Variablenwert (was auch immer) von bereits geschlossenen Positionen vergleicht. Ich danke Ihnen!

Was wird sich beim nächsten Mal ändern?
Grund der Beschwerde: