Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1367

 
Artyom Trishkin:

Cool... Je ne m'attendais pas à ce qu'une telle chose arrive dans le passé... Merci.

 
DanilaMactep:

Pour la première partie (comptage des commandes), je le recommande :

//+----------------------------------------------------------------------------+
//| Подсчет ордеров                                                            |
//+----------------------------------------------------------------------------+
//| -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);
  }

Suivant

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); // КОЛИЧЕСТВО СЕЛ СТОП

Et l'erreur est probablement ici (surlignée en jaune)

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

C'est étroit. Toutes les couleurs sont décalées. Mais les couleurs sont apparues. Et sur l'aperçu, tout est bon aussi....

Non critique... mais ce n'est pas un as...

 
Dans la description des niveaux de Fibonacci dans la fenêtre des propriétés, vous pouvez changer leurs valeurs en niveaux de prix via %$. Comment obtenir le prix des niveaux de manière programmatique, je ne trouve pas.
 
Galim_V:
Dans la description des niveaux de Fibonacci dans la fenêtre des propriétés, vous pouvez changer leurs valeurs en niveaux de prix via %$. Comment obtenir le prix des niveaux de manière programmatique, je ne trouve pas.

OBJPROP_VALEUR DE SEUIL

 
MakarFX:

OBJPROP_VALEUR DE SEUIL

Merci, Makar ! Mais je ne sais pas comment l'utiliser. J'ai besoin d'obtenir les valeurs de prix des niveaux de fibo standard.

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

La fonction Banned me permet de remplacer la norme par les niveaux de prix. Mais où puis-je les trouver ? Il doit y en avoir un quelque part.

 
Galim_V:

Merci, Makar ! Mais je ne sais pas comment l'utiliser. J'ai besoin d'obtenir les valeurs de prix des niveaux de fibo standard.

La fonction Banned me permet de remplacer les standards par des prix. Mais où puis-je les trouver ? Ils sont quelque part.

Entre les prix du fibo, c'est 100% et tous les autres niveaux sont calculés à partir de ces valeurs. Vous pouvez calculer non seulement les valeurs standard, mais aussi toutes les valeurs approximatives selon cette formule :

Prix_0 + (Prix_1 - Prix_0) * 0,27 ;

Et la fonction d'interdiction vous permet de saisir le même "%S" dans la description du niveau pour que les niveaux affichent le prix.
 
Galim_V:

Merci, Makar ! Mais je ne sais pas comment l'utiliser. J'ai besoin d'obtenir les valeurs de prix des niveaux de fibo standard.

La fonction Banned me permet de remplacer les standards par des prix. Mais où puis-je les trouver ? Quelque part, ils existent.

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

C'est comme ça

 
Alekseu Fedotov:

Comme ça.

Est-ce vérifié ? )))))

 
Alexey Viktorov:

Est-ce vérifié ? )))))

Le prix n'apparaît pas(

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