¿Qué hay de malo en eso? - página 4

 
sss2019:
¿Qué más va a ser?

y esto lo comprobarás por ti mismo y lo sabrás.
 
sergeev:

y esto lo comprobarás por ti mismo y lo sabrás.
Por qué lo entregas así, ni siquiera le preguntaste su apellido. Es un comodín, ni siquiera tienes que abrir una orden, sólo picotear silenciosamente en tu bolsillo.
 
¡Una chatarra, sin embargo! Eso es, sí, sí.
 

¿Por qué no se abre esta orden, cuál es el error?

//+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern int MaFastPeriod = 30;
extern int MaSlowPeriod = 90;
extern int StopLoss = 25;
extern int TakeProfit = 50;

int init()
  {

  }



int deinit()
  {

  }



int start()
  {
double MaFast = iMA(Symbol(),0,MaFastPeriod,0,MODE_EMA,PRICE_CLOSE,0);
double MaSlow = iMA(Symbol(),0,MaSlowPeriod,0,MODE_EMA,PRICE_CLOSE,0);
   
   if(OrdersTotal() == 0 && MaFast > MaSlow)
   {
   OrderSend(Symbol(),0,0.1,Ask,3,Ask+TakeProfit*Point,Ask-StopLoss*Point,"CommentA",0,0,Green);
   }else
   {
      if(GetLastError() != 0)
         {
         Alert("Ошибка", GetLastError());
         }
   }
   
   return(0);
  }
 
¿Cómo puedo implementar la apertura de un acuerdo sólo en la barra de señales?

Por ejemplo, una media móvil ha cruzado otra, se abre una operación, pero si cierra esta operación, se abrirá otra, incluso después de varias barras desde la barra de señal.
 
sss2019:
¿Cómo puedo implementar la apertura de un acuerdo sólo en la barra de señales?

Por ejemplo, una media móvil ha cruzado otra, se abre una operación, pero si cierra esta operación, se abrirá otra, incluso después de varias barras desde la barra de señal.
Definitivamente estás vetado de google, y de nuestro FAQ también.
En primer lugar, ¿CÓMO se obtiene la señal de cruce de dos MAs?

Entonces busca en Google algo como abrir sólo un sitio de pedidos:mql4.com
 

Sí, sé cómo abrir una orden, pero el problema es que si abres una orden y se cierra después de un par de horas y todas las condiciones para la apertura siguen intactas, entonces se abre otra orden, aunque ya te hayas alejado de la barra de señal.

Voy a echar un vistazo a su enlace, gracias.

 
sss2019:

Sí, sé cómo abrir una orden, pero el problema es que si abres una orden y se cierra después de un par de horas y todas las condiciones de apertura siguen intactas, se abre otra orden aunque ya te hayas alejado de la barra de señal.

Miraré su enlace, gracias.


Establecemos una bandera para permitir que se abran las órdenes. Llega una señal y la bandera lo permite. Abrimos la posición y retiramos inmediatamente la bandera. La postura se cierra después de algún tiempo. El Asesor Experto ve que hay una señal, pero la bandera se elimina (está prohibido colocar órdenes) - como resultado, la orden no se establece.

Siguiente. Si no hay señal, ponemos una bandera (permitimos la apertura de posiciones). O bien, tan pronto como haya una nueva señal, fijamos una bandera. Pero en el segundo caso, el Asesor Experto debería ser capaz de distinguir una nueva señal de la anterior.

 

drknn:



Establece una bandera para permitir la apertura de órdenes. Llega una señal y la bandera lo permite. Abrimos la posición y retiramos inmediatamente la bandera. La postura se cierra después de algún tiempo. El Asesor Experto ve que hay una señal pero la bandera ha sido eliminada (está prohibido establecer órdenes), como resultado, la orden no se establece.

Siguiente. Si no hay señal, ponemos la bandera (permitimos la apertura de posiciones). O bien, tan pronto como haya una nueva señal, ponemos la bandera. Pero en el segundo caso, el Asesor Experto debería ser capaz de distinguir una nueva señal de la anterior.


Muchas gracias, creo que esta forma es más universal.

Por cierto, ¿cómo podemos anunciar en nuestro EA que el pedido ha sido abierto? ¿Quizás esto se pueda implementar utilizando OrderSelect?

 

Bueno, por favor, mirad que he metido la pata ahí y ahora el pedido no se abre.

//+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern int MaFastPeriod = 30;
extern int MaSlowPeriod = 90;
extern int StopLoss = 25;
extern int TakeProfit = 50;

int init()
  {

  }



int deinit()
  {

  }



int start()
  {
  double MyPoint = Point;
   if(Digits == 3 || Digits == 5)
      {
      MyPoint = Point * 10;
      }
      
double MaFast = iMA(Symbol(),0,MaFastPeriod,0,MODE_EMA,PRICE_CLOSE,0);
double MaSlow = iMA(Symbol(),0,MaSlowPeriod,0,MODE_EMA,PRICE_CLOSE,0);

   for(int SelectedOrder = 0; SelectedOrder < OrdersTotal(); SelectedOrder++)
      {
         bool Flag = false;
         if(OrderSelect(SelectedOrder,SELECT_BY_POS,MODE_TRADES)==True)
            {
            Flag = false;
            }
      }
   return(Flag);
   
   if(OrdersTotal() == 0 && MaFast > MaSlow && Flag == false)
      {
      OrderSend(Symbol(),0,0.1,Ask,30,Ask-StopLoss*MyPoint,Ask+TakeProfit*MyPoint,"CommentA",0,0,Green);
      }
   
   return(0);
  }
Razón de la queja: