Asesores Expertos: Multi Stochastic

 

Multi Stochastic:

Asesor multidivisa según las señales del indicador iStochastic (Stochastic Oscillator).

Multi Stochastic tester

Autor: Vladimir Karputov

 
Automated-Trading:

Estocástico múltiple:

Autor: Vladimir Karputov

Vladimir, por favor, haz una clase Martin conmutable, porque tengo que añadirla manualmente a todos los códigos para comprobar si funciona....

Gracias

//--- externo
input double   KLot      =5;         // Factor de multiplicación del lote
input double   MaxLot    = 0.20;         // Lote máximo, tras el cual se inicializa el lote
input double   Lots       = 0.040;       // Número de lotes de negociación 

//+------------------------------------------------------------------+ 
//| Aplicar Martin o rechazar, fijar KLot=1 ||
//+------------------------------------------------------------------+
double martin(void)
  {
   double lot=Lots;
//--- Historial de acceso
   HistorySelect(0,TimeCurrent());
//--- Tratos en la historia
   int orders=HistoryDealsTotal();
//--- Ticket de la última transacción 
   ulong ticket=HistoryDealGetTicket(orders-1);
   if(ticket==0)
     {
      Print("¡No hay tratos en la historia! ");
      lot=Lots;
     }
//--- Beneficio de la transacción
   double profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
//--- Lote de transacción.
   double lastlot=HistoryDealGetDouble(ticket,DEAL_VOLUME);
//--- Beneficio negativo
   if(profit<0.0)
     {
      //--- Aumentar el siguiente lote
      lot=lastlot*KLot;
      Print(" ¡El trato está cerrado en la parada! ");
     }
//--- Llevar el lote al mínimo
   double minvol=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
   if(lot<minvol)
      lot=minvol;
//--- Si el lote es mayor que el lote máximo, entonces el lote inicial
   if(lot>MaxLot)
      lot=Lots;
//--- Volumen de operaciones de retorno
   return(lot);
  }
//+------------------------------------------------------------------+
//| Ver el tipo de la última transacción cerrada |
//+------------------------------------------------------------------+
int LastDealType(void)
  {
   int type=0;
//--- Historial de acceso
   HistorySelect(0,TimeCurrent());
//--- Tratos en la historia
   int orders=HistoryDealsTotal();
//--- Ticket de la última transacción 
   ulong ticket=HistoryDealGetTicket(orders-1);
//--- No hay transacciones en el historial
   if(ticket==0)
     {
      Print("¡No hay tratos en la historia! ");
      type=0;
     }
   if(ticket>0)
     {
      //--- Última operación de COMPRA 
      if(HistoryDealGetInteger(ticket,DEAL_TYPE)==DEAL_TYPE_BUY)
        {
         type=2;
        }
      //--- Última operación VENDER
      if(HistoryDealGetInteger(ticket,DEAL_TYPE)==DEAL_TYPE_SELL)
        {
         type=1;
        }
     }
//---
   return(type);
  }  
//+------------------------------------------------------------------+
 
Сергей Криушин:

Vladimir, por favor, haz una clase Martin conmutable, de lo contrario tengo que añadir manualmente a todos los códigos para comprobar la aceptabilidad en el trabajo...

Gracias


¿Por qué? No es necesario.

 
Vladimir Karputov:

¿Por qué? No es necesario.

No sé... Martin es a veces mucho mejor....

 
Сергей Криушин:

No sé... a veces es mucho mejor con Martin.....

Siempre es mejor con Martin, pero no es tan bueno sin Martin.

 
Vitaly Muzichenko:

Siempre funciona mucho mejor con martin, pero sin el todo es triste.

Sí, lo principal es no acelerarlo, para no drenar...por cierto, el código universal se toma de https://www.mql5.com/es/code/13315 si el beneficio se cambia a positivo - poner beneficio>0; resultará bastante antiMartin...multiplicará el beneficio.... ))
 

Hola

¿Utiliza 2 o 3 oscilador estocástico para el comercio?

por ejemplo- stoch(5,3,3) y stoch(26,10,10) juntos ?

 
tesla351 :

Hola

¿Utiliza 2 o 3 oscilador estocástico para el comercio?

por ejemplo- stoch(5,3,3) y stoch(26,10,10) juntos?


No. Por lo general, un indicador iStochastic (oscilador estocástico) se utiliza.

 

"El comprobador se ha detenido porque OnInit devuelve un código distinto de cero 1"

¿Cómo solucionarlo?