Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1367

 
Artyom Trishkin:

Genial... no esperaba.... algo así del pasado... Gracias.

 
DanilaMactep:

Sobre la primera parte (el recuento de pedidos) lo recomiendo:

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

Siguiente

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

Y el error está probablemente aquí (resaltado en amarillo)

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

Es de lata. Todos los colores están compensados. Pero los colores han surgido. Y en la vista previa, todo es bueno también....

No es crítico... pero no es una vergüenza...

 
En la descripción de los niveles de Fibonacci en la ventana de propiedades, puede cambiar sus valores a niveles de precio mediante %$. Cómo obtener el precio de los niveles programáticamente, no lo encuentro.
 
Galim_V:
En la descripción de los niveles de Fibonacci en la ventana de propiedades, puede cambiar sus valores a niveles de precio mediante %$. Cómo obtener el precio de los niveles programáticamente, no lo encuentro.

OBJPROP_LEVELVALUE

 
MakarFX:

OBJPROP_LEVELVALUE

¡Gracias, Makar! Pero no sé cómo usarlo. Necesito obtener los valores del precio de los niveles de fibo estándar.

#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 función prohibida me permite sustituir los niveles estándar por niveles de precios. Pero, ¿dónde los consigo? Debe haber uno en alguna parte.

 
Galim_V:

¡Gracias, Makar! Pero no sé cómo usarlo. Necesito obtener los valores del precio de los niveles de fibo estándar.

La función "Prohibido" me permite sustituir los estándar por los de precio. Pero, ¿dónde los consigo? En algún lugar están.

Entre los precios de fibo, es el 100% y todos los demás niveles se calculan a partir de estos valores. Puede calcular no sólo los valores estándar, sino cualquier valor aproximadamente de acuerdo con esta fórmula:

Precio_0 + (Precio_1 - Precio_0) * 0,27;

Y la función prohibida permite introducir el mismo "%S" en la descripción del nivel para que los niveles muestren el precio.
 
Galim_V:

¡Gracias, Makar! Pero no sé cómo usarlo. Necesito obtener los valores del precio de los niveles de fibo estándar.

La función "Prohibido" me permite sustituir los estándar por los de precio. Pero, ¿dónde los consigo? En algún lugar existen.

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 así

 
Alekseu Fedotov:

Así.

¿Está comprobado? )))))

 
Alexey Viktorov:

¿Está verificado? )))))

El precio no aparece(

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
Razón de la queja: