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

 
Tretyakov Rostyslav #:

Significa que si no hay órdenes

Sí, o si la detracción es inferior a un determinado nivel. Pero por lo que tengo entendido la puesta a cero no tiene nada que ver, si no hay puesta a cero entonces hay un cierre interminable de órdenes y en mi caso una orden no está cerrada.

 
EVGENII SHELIPOV #:

Sí, o una reducción por debajo de un determinado nivel. Pero por lo que tengo entendido la puesta a cero no tiene nada que ver, si no hay puesta a cero entonces hay un cierre infinito de órdenes y en mi caso una orden no está cerrada.

Esto se debe a que, una vez cerrado el primer pedido, esta condición ya no funciona

if(CalculiteProfitMinMaxPenultimateOrders() >= 0 && OrderGroupCloseSignal()==0 &&
                  Drawdown >= DrawdownClosingMinMaxOrders && FindPenultimateProfit() > 0)

para que no pase a la función de cierre

 
Tretyakov Rostyslav #:

Porque una vez cerrado el primer pedido, esta condición ya no es válida

que significa que no llega más allá, a la función de cierre

¿Crees que esta condición está en el comando para cerrar órdenes y en la función para cerrar órdenes si quito esta condición de la función para cerrar órdenes cambiará algo?

 
EVGENII SHELIPOV #:

Crees que esta condición está en el comando para cerrar órdenes y en la función para cerrar órdenes si quito esta condición de la función para cerrar órdenes cambiará algo

Esto acelerará las cosas... por qué comprobar lo mismo dos veces.

Por cierto, has publicado dos funciones diferentes

ClosseMinMaxPenultimateOrdersZero()

и

ClosseMinMaxPenultimateOrders()
¿Es esa la intención?
 
Tretyakov Rostyslav #:

Esto acelerará las cosas... para qué comprobar dos veces lo mismo.

Por cierto, has publicado dos funciones diferentes

и

¿Es así como funciona?

Lo he comprobado ahora y el EA cierra mal sin esta condición, por lo que es imposible prescindir de ella.

 
Vitaly Muzichenko #:

Por favor, ayúdenme.

No estoy recibiendo lo que espero en absoluto. Necesito leer el archivo de registro.

Debería haber empezado aquí:

#include <WinAPI\\fileapi.mqh>
 
EVGENII SHELIPOV #:

Lo he comprobado ahora y sin él el Expert Advisor se cierra mal, así que no hay manera de hacerlo sin él.

Así que no son lo mismo.

               if(CalculiteProfitMinMaxPenultimateOrders() >= 0 && OrderGroupCloseSignal()==0 &&
                  Drawdown >= DrawdownClosingMinMaxOrders && FindPenultimateProfit() > 0)
               if(CalculiteProfitMinMaxPenultimateOrders() >= 0 && OrderGroupCloseSignal()==1 &&
                  Drawdown >= DrawdownClosingMinMaxOrders && FindPenultimateProfit() > 0)
 
Иван la función FileSeek no tuvieron éxito.
Mi intelecto no es suficiente para entender la razón de esto. Por favor, explique qué demonios está pasando.

¿Y bien? ¿Alguien tiene una pista?

 

Amigos, por favor, ayuden.

Tengo un EA multidivisa que escribí en mql4. En el probador, por supuesto, no funciona. He decidido que debo cambiar a mql5.

He adaptado todos los errores del compilador y los he corregido. EXCEPTO el uso de indicadores técnicos. Tengo muy poca idea de qué hacer con mi cabeza. La documentación es incomprensible y ocupa dos páginas. Tal vez estoy buscando en el lugar equivocado.

Una línea de código en mql4 como sigue

double MA1EURGBP_TF = iMA("EURGBP",15,MA1_Period,0,MODE_EMA,PRICE_OPEN,0);

o

double Stoch_M_GBPUSD=iStochastic("GBPUSD", Stoch_Period, K_Period, D_Period, Slowing, MODE_EMA, 0, MODE_MAIN, 0);

Según la documentación, toda la página de código cambia en mql5. Manejadores, buffers, arrays con parámetros, esto para init, esto para calcular, manejo de errores durante la creación de manejadores... esto es una locura... Tal vez estoy buscando en el lugar equivocado.

Y si utilizo varios pares y varios marcos temporales, ahí tengo "Guerra y Paz".

 
Sergey Dymov un EA multidivisa que escribí en mql4. En el probador, por supuesto, no funciona. He decidido que debo cambiar a mql5.

He adaptado todos los errores del compilador y los he corregido. EXCEPTO el uso de indicadores técnicos. Tengo muy poca idea de qué hacer con mi cabeza. La documentación es incomprensible y ocupa dos páginas. Tal vez estoy buscando en el lugar equivocado.

Una línea de código en mql4 como sigue

double MA1EURGBP_TF = iMA("EURGBP",15,MA1_Period,0,MODE_EMA,PRICE_OPEN,0);

o

double Stoch_M_GBPUSD=iStochastic("GBPUSD", Stoch_Period, K_Period, D_Period, Slowing, MODE_EMA, 0, MODE_MAIN, 0);

Según la documentación, toda la página de código cambia en mql5. Manejadores, buffers, arrays con parámetros, esto para init, esto para calcular, manejo de errores durante la creación de manejadores... esto es una locura... Tal vez estoy buscando en el lugar equivocado.

Y si utilizo varios pares y varios marcos temporales, ahí tengo "Guerra y Paz".

int handleSQ=-1;
double BufferSQ[1];
int OnInit()
{

  handleSQ=iCustom(Symbol(),PERIOD_CURRENT,"squares",Period1,Period2,Period3,Dev_Step_1,Dev_Step_2,Dev_Step_3);
  if(handleSQ<0) {
    return(INIT_FAILED);
    Print("handleSQ = ",handleSQ,"  error = ",GetLastError());
  }
//---
  return(INIT_SUCCEEDED);
}

void OnTick()
{

    int copy=CopyBuffer(handleSQ,0,1,1,BufferSQ);
    if(copy<0) Print("Неудачная попытка копирования Squares");
    u1=BufferSQ[0];//iCustom(Symbol(),PERIOD_CURRENT,"squares_v2",Period1,Period2,Period3,Dev_Step_1,Dev_Step_2,Dev_Step_3,i);
Razón de la queja: