Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1367

 
Artyom Trishkin:

Cool... hatte nicht erwartet.... so etwas aus der Vergangenheit... Vielen Dank.

 
DanilaMactep:

Für den ersten Teil (Auftragszählung) empfehle ich es:

//+----------------------------------------------------------------------------+
//| Подсчет ордеров                                                            |
//+----------------------------------------------------------------------------+
//| -1 - Все типы ордеров                                                      |
//|  0 - ордера типа BUY                                                       |
//|  1 - ордера типа SELL                                                      |
//|  2 - ордера типа BUYLIMIT                                                  |
//|  3 - ордера типа SELLLIMIT                                                 |
//|  4 - ордера типа BUYSTOP                                                   |
//|  5 - ордера типа SELLSTOP                                                  |
//+----------------------------------------------------------------------------+
int CountOrders(string symb="", int or_ty=-1, int magiс=-1) 
  {
   int cnt=0;
   if(symb=="0") symb=_Symbol;
   for(int pos=OrdersTotal()-1;pos>=0;pos--)
     {
      if(OrderSelect(pos,SELECT_BY_POS)==true)
        {
         if((OrderSymbol()==symb || symb=="")&&(or_ty<0 || or_ty==OrderType()))
           {
            if(magiс<0 || OrderMagicNumber()==magiс) cnt++;
           }
        }
     }
   return(cnt);
  }

Weiter

void OnTick()
   { // НАЧАЛО ОН ТИК
   int count_orders_market_buy   = CountOrders(_Symbol,0,magik_number); // КОЛИЧЕСТВО БАЙ ОРДЕРОВ
   int count_orders_market_sell  = CountOrders(_Symbol,1,magik_number); // КОЛИЧЕСТВО СЕЛ ОРДЕРОВ
   int count_orders_buy_limit    = CountOrders(_Symbol,2,magik_number); // КОЛИЧЕСТВО БАЙ ЛИМИТ
   int count_orders_sell_limit   = CountOrders(_Symbol,3,magik_number); // КОЛИЧЕСТВО СЕЛ ЛИМИТ
   int count_orders_stop_buy     = CountOrders(_Symbol,4,magik_number); // КОЛИЧЕСТВО БАЙ СТОП
   int count_orders_stop_sell    = CountOrders(_Symbol,5,magik_number); // КОЛИЧЕСТВО СЕЛ СТОП

Und der Fehler liegt wahrscheinlich hier (gelb hervorgehoben)

if(OrderSend(Symbol(),OP_BUY,lot,Ask,slippages,Ask-sl,Ask+tp,Coment ГДЕ МАГИК? )) Print("Buy Open");
 
Artyom Trishkin:

Es ist blechern. Alle Farben sind versetzt. Aber die Farben haben sich gezeigt. Und in der Vorschau ist auch alles gut....

Nicht kritisch... aber es ist keine Schande...

 
In der Beschreibung der Fibonacci-Levels im Eigenschaftsfenster können Sie deren Werte über %$ in Preislevels ändern. Ich kann nicht herausfinden, wie ich den Preis der Stufen programmatisch ermitteln kann.
 
Galim_V:
In der Beschreibung der Fibonacci-Levels im Eigenschaftsfenster können Sie deren Werte über %$ in Preislevels ändern. Ich kann nicht herausfinden, wie ich den Preis der Stufen programmatisch ermitteln kann.

OBJPROP_LEVELVALUE

 
MakarFX:

OBJPROP_LEVELVALUE

Danke, Makar! Aber ich weiß nicht, wie man es benutzt. Ich muss die Preiswerte von Standard-Fibo-Levels erhalten.

#include <stdlib.mqh>

void OnStart() 
  { 
 string name ="FIBO";
   string text;
  for(int i=0;i<32;i++)
  
    {
//    ObjectSetFiboDescription(name,i,???);
     text=ObjectGetFiboDescription(name,i);
     //---- проверим, возможно уровней у объекта меньше, чем 32
     if(GetLastError()!=ERR_NO_ERROR) break;
     Print(name,"номер уровня: ",i," описание: ",text);
    } 
 }      

Die verbotene Funktion ermöglicht es mir, den Standard durch Preisstufen zu ersetzen. Aber woher bekomme ich sie? Es muss doch irgendwo eine geben.

 
Galim_V:

Vielen Dank, Makar! Aber ich weiß nicht, wie man es benutzt. Ich muss die Preiswerte von Standard-Fibo-Levels erhalten.

Die Funktion "Verbot" ermöglicht es mir, die Standard- durch die Preisangaben zu ersetzen. Aber woher bekomme ich sie? Irgendwo sind sie.

Zwischen den Fibo-Kursen liegt er bei 100%, und alle anderen Niveaus werden aus diesen Werten berechnet. Sie können nicht nur Standardwerte, sondern beliebige Werte ungefähr nach dieser Formel berechnen:

Preis_0 + (Preis_1 - Preis_0) * 0,27;

Und die Verbotsfunktion ermöglicht es Ihnen, dasselbe "%S" in die Stufenbeschreibung einzugeben, damit die Stufen den Preis anzeigen.
 
Galim_V:

Vielen Dank, Makar! Aber ich weiß nicht, wie man es benutzt. Ich muss die Preiswerte von Standard-Fibo-Levels erhalten.

Die Funktion "Verbot" ermöglicht es mir, die Standard- durch die Preisangaben zu ersetzen. Aber woher bekomme ich sie? Irgendwo gibt es sie.

void OnStart()
{
   //---  а сколько у нас Фибо-уровней ?
   int levels=ObjectGetInteger(0,"Fibo",OBJPROP_LEVELS);
   Alert("Fibo levels before = ",levels);
   //---выведем в Журнал=> номер уровня:значения описание_уровня
   for(int i=0; i<levels; i++) {
      Alert(i,":",ObjectGetDouble(0,"Fibo",OBJPROP_LEVELVALUE,i),
            "  ",ObjectGetString(0,"Fibo",OBJPROP_LEVELTEXT,i));
   }
}

Es ist wie folgt

 
Alekseu Fedotov:

Zum Beispiel so.

Wird dies überprüft? )))))

 
Alexey Viktorov:

Ist dies überprüft? )))))

Der Preis wird nicht angezeigt(

2021.01.29 16:16:32.116 Instant direction GBPJPYb,M5: 0:-0.25
2021.01.29 16:16:32.116 Instant direction GBPJPYb,M5: 1:0.0
2021.01.29 16:16:32.116 Instant direction GBPJPYb,M5: 2:0.5
2021.01.29 16:16:32.116 Instant direction GBPJPYb,M5: 3:1.0
2021.01.29 16:16:32.116 Instant direction GBPJPYb,M5: 4:1.5
2021.01.29 16:16:32.116 Instant direction GBPJPYb,M5: 5:2.0
2021.01.29 16:16:32.116 Instant direction GBPJPYb,M5: 6:2.5
2021.01.29 16:16:32.116 Instant direction GBPJPYb,M5: 7:3.0
2021.01.29 16:16:32.116 Instant direction GBPJPYb,M5: 8:3.5
2021.01.29 16:16:32.116 Instant direction GBPJPYb,M5: 9:4.0
2021.01.29 16:16:32.116 Instant direction GBPJPYb,M5: 10:5.0
2021.01.29 16:16:32.116 Instant direction GBPJPYb,M5: 11:6.0
2021.01.29 16:16:37.952 Instant direction GBPJPYb,M5: Fibo levels before = 12
Grund der Beschwerde: