me he quedado estancado con una EA

 

hola


estoy haciendo una EA, donde tengo unos high y unos low, y quiero que cuando la EA, cruce esos high o low abra una posición larga o corta ....  pero no logro que funcione


¿Cómo hago que una orden se abra cuando cruce una linea pintada? o el valor que tengo de high o low?

 
Javier Santiago Gaston De Iriarte Cabrera:

hola


estoy haciendo una EA, donde tengo unos high y unos low, y quiero que cuando la EA, cruce esos high o low abra una posición larga o corta ....  pero no logro que funcione


¿Cómo hago que una orden se abra cuando cruce una linea pintada? o el valor que tengo de high o low?

Hola compañero. Te refieres a que cuando la vela actual supere por ejemplo el High de la vela anterior?

Yo definiría antes de OnInit lo siguiente: (es la condición de cruce)

bool crossed[2];

bool Cross(int i, bool condition) //returns true if "condition" is true and was false in the previous call { bool ret = condition && !crossed[i]; crossed[i] = condition; return(ret); }

Y en la sección OnInit:

int i;
   for (i = 0; i < ArraySize(crossed); i++)
      crossed[i] = true;

Y por último, si he entendido bien tu mensaje, en OnTick:

 //Abrir Buy
   RefreshRates();
   if(Cross(0, Ask > High[1]) //El precio cruza por encima de la vela máxima
   )
     {
      RefreshRates();
      price = Ask;   
      if(IsTradeAllowed())
        {
        //mandas la órden
        }
     }
   
   //Abrir Sell
   RefreshRates();
   if(Cross(1, Bid < Low[1]) //El precio cruza por debajo de la vela mínima
   )
     {
      RefreshRates();
      price = Bid;   
      if(IsTradeAllowed())
        {
         //mandas la órden
        }
     }
  }
 
que bueno! muchas gracias
 

hola, gracias por la ayuda, soy novato y me está costando mucho


las velas ya las tengo definidas .... (es la mayor de una serie de velas .... ¿como hago para que tenga en cuenta esa vela?


por otra parte, al compilar me dice que refreshrates no está declarado??¿?

 
Javier Santiago Gaston De Iriarte Cabrera:

hola, gracias por la ayuda, soy novato y me está costando mucho


las velas ya las tengo definidas .... (es la mayor de una serie de velas .... ¿como hago para que tenga en cuenta esa vela?


por otra parte, al compilar me dice que refreshrates no está declarado??¿?

MQL5 no usa RefreshRates().

 
Documentación para MQL5: Biblioteca estándar / Clases de comercio / CSymbolInfo / RefreshRates
Documentación para MQL5: Biblioteca estándar / Clases de comercio / CSymbolInfo / RefreshRates
  • www.mql5.com
RefreshRates - CSymbolInfo - Clases de comercio - Biblioteca estándar - Manual de referencia de MQL5 - manual de usuario para el lenguaje del trading algorítmico/automático para MetaTrader 5
Razón de la queja: