Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 757

 
Ozero:
Me refería a que el pedido no se cierra :( Perdona si no lo he expresado así, aún soy principiante.

Funciona bastante bien.

//+------------------------------------------------------------------+
//|                                                        Ozero.mq4 |
//|                                            Copyright 2014, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, Vinin"
#property link      "http://vinin.ucoz.ru"
#property version   "1.00"
#property strict
// -------- переменные --- Н -----
extern double gLot=0.1;            // размер лота для покупки 
extern double gPoint=0.001;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
// -------- переменные --- К ----- 
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {

// Открытие позиции
   if(OrdersTotal()==0)
     {
      Print(" Открытие первой позиции ");
      double _Ask=MarketInfo("GBPUSD",MODE_ASK);
      int ticket=OrderSend("GBPUSD",OP_BUY,gLot,_Ask,15,0,0);
      if(ticket>0)
        {
         Print(" ОРДЕР ОТКРЫТ ",ticket);
        }
     }

   double _Bid=MarketInfo("GBPUSD",MODE_BID); //для цены
   for(int pos=OrdersTotal()-1;pos>=0;pos--)
     {
      if(OrderSelect(pos,SELECT_BY_POS))
        {
         if(OrderOpenPrice()+gPoint<_Bid)
           {
            OrderClose(OrderTicket(),OrderLots(),_Bid,15);
           }
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
Archivos adjuntos:
ozero.mq4  2 kb
 
Vinin:

Está funcionando bastante bien.

Hola Vinin.

He analizado su código. Buena solución a mi problema. Pero aun así, ¿te ha funcionado mi código? ¿O las palabras "funciona bien" se refieren a su versión del programa?

Es importante para mí entender el lenguaje MQL.


Pregunta sobre su versión. ¿Por qué no declara las variables _Bid y _Ask al principio del programa? ¿Está permitido en mql4?


Ozero.

 
Vinin:

Está funcionando bastante bien.

¡Fantástico! Su programa funciona. ¿Pero por qué el mío no funciona así?
 
Ozero:
¡Fantástico! Su programa funciona. ¿Pero por qué el mío no funciona así?

¿Con qué se compara aquí la primera parte?

           if (AktualBid>=AktualAsk+0.010 && PozOtk1==false)

Si corrigió el código para obtener el segundo valor, como se le aconsejó:

                   AktualAsk=MarketInfo( "GBPUSD",MODE_ASK);

entonces no lo hiciste para la primera:

      AktualBid=NormalizeDouble(Bid,Digits); //для цены

Y Vinin lo ha arreglado:

   double _Bid=MarketInfo("GBPUSD",MODE_BID); //для цены

Eso es probablemente todo lo que es fantástico. Pero no lo sé con seguridad, compruébalo tú mismo.

 
Hola, ayúdame a entender el indicador, quiero saber qué fórmula se utiliza para calcular el valor "Fórmula 0" así como el valor "Fórmula 1"
Archivos adjuntos:
 
zigga85:
Hola, ayúdame a entender este indicador, quiero saber qué fórmula se utiliza para calcular el valor de la "Fórmula 0", así como el valor de la "Fórmula 1"
(Alto+Bajo+Cierre)/3 y (Alto+Bajo+2*Cierre)/4
 
Vinin:

Funciona bastante bien.

¡¡¡¡Estimado moderador Vinin!!!!

Hace tiempo que quería agradecerles sus sinceras respuestas. Uno de ellos me ayudó hace mucho tiempo en mi transición al comercio real. Me has aconsejado el algoritmo de cierre de orden correcto en lugar del que yo mismo escribí. Todavía uso el tuyo.

Los consejos de este hilo son muy buenos y útiles.

Una vez más, ¡muchas gracias!

 
Vinin:

Está funcionando bastante bien.

Buenas noches.


0 errores, una advertencia: el valor de retorno de 'OrderClose' debe ser comprobado 46 13 es la línea OrderClose(OrderTicket(),OrderLots(),_Bid,15);


Ozero.

 
Ozero:

Buenas noches.


0 errores, una advertencia: el valor de retorno de 'OrderClose' debe ser comprobado 46 13 es la línea OrderClose(OrderTicket(),OrderLots(),_Bid,15);


Ozero.


ResetLastError();
if(!OrderClose(OrderTicket(),OrderLots(),_Bid,15);) Print("Чё-та не закрылася позиция. Фигня вот такая происходит: "+GetLastError());
 
artmedia70:

Poner un ";" detrás del paréntesis.

El programa funciona, PERO a veces falla con el error 4108.


Ozero.

Razón de la queja: