Preguntas de un "tonto" - página 105

 
uncleVic:
Un poco más de detalle... ¿Cuál es la siguiente línea (o mejor varias) en el registro?

2012.02.22 12:51:15 st (EURUSD,H1) CExpertBase::SetOtherSeries: el cambio de series temporales está prohibido
2012.02.22 12:51:15 st (EURUSD,H1) CExpertBase::SetPriceSeries: el cambio de series temporales está prohibido

nada más

 
openlive:

2012.02.22 12:51:15 st (EURUSD,H1) CExpertBase::SetOtherSeries: el cambio de series temporales está prohibido
2012.02.22 12:51:15 st (EURUSD,H1) CExpertBase::SetPriceSeries: el cambio de series temporales está prohibido

nada más

He encontrado un módulo antiguo en alguna parte. Por favor, adjunte el código del Asesor Experto que obtuvo en el Asistente. No es un secreto, ¿verdad?
 
uncleVic:
Hay un módulo de estilo antiguo en alguna parte. Por favor, adjunte el código EA obtenido en el Asistente. No es un secreto, ¿verdad?
//+------------------------------------------------------------------+
//|                                               Expert_Candles.mq5 |
//|                        Copyright 2010, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2010, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Include                                                          |
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
#include <Expert\Signal\SignalCandles.mqh>
#include <Expert\Trailing\TrailingNone.mqh>
#include <Expert\Money\MoneyFixedLot.mqh>
//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string Inp_Expert_Title              ="Expert_Candles";
int          Expert_MagicNumber            =28148;
bool         Expert_EveryTick              =false;
//--- inputs for signal
input int    Inp_Signal_Candles_Range      =3;
input int    Inp_Signal_Candles_Minimum    =50;
input double Inp_Signal_Candles_ShadowBig  =0.5;
input double Inp_Signal_Candles_ShadowSmall=0.2;
input double Inp_Signal_Candles_Limit      =0.0;
input double Inp_Signal_Candles_StopLoss   =2.0;
input double Inp_Signal_Candles_TakeProfit =1.0;
input int    Inp_Signal_Candles_Expiration =4;
//--- inputs for money
input double Inp_Money_FixLot_Percent      =10.0;
input double Inp_Money_FixLot_Lots         =0.1;
//+------------------------------------------------------------------+
//| Global expert object                                             |
//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Initialization function of the expert                            |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Initializing expert
   if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing expert");
      ExtExpert.Deinit();
      return(-1);
     }
//--- Creation of signal object
   CSignalCandles *signal=new CSignalCandles;
   if(signal==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating signal");
      ExtExpert.Deinit();
      return(-2);
     }
//--- Add signal to expert (will be deleted automatically))
   if(!ExtExpert.InitSignal(signal))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing signal");
      ExtExpert.Deinit();
      return(-3);
     }
//--- Set signal parameters
   signal.Range(Inp_Signal_Candles_Range);
   signal.Minimum(Inp_Signal_Candles_Minimum);
   signal.ShadowBig(Inp_Signal_Candles_ShadowBig);
   signal.ShadowSmall(Inp_Signal_Candles_ShadowSmall);
   signal.Limit(Inp_Signal_Candles_Limit);
   signal.StopLoss(Inp_Signal_Candles_StopLoss);
   signal.TakeProfit(Inp_Signal_Candles_TakeProfit);
   signal.Expiration(Inp_Signal_Candles_Expiration);
//--- Check signal parameters
   if(!signal.ValidationSettings())
     {
      //--- failed
      printf(__FUNCTION__+": error signal parameters");
      ExtExpert.Deinit();
      return(-4);
     }
//--- Creation of trailing object
   CTrailingNone *trailing=new CTrailingNone;
   if(trailing==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating trailing");
      ExtExpert.Deinit();
      return(-5);
     }
//--- Add trailing to expert (will be deleted automatically))
   if(!ExtExpert.InitTrailing(trailing))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing trailing");
      ExtExpert.Deinit();
      return(-6);
     }
//--- Set trailing parameters
//--- Check trailing parameters
   if(!trailing.ValidationSettings())
     {
      //--- failed
      printf(__FUNCTION__+": error trailing parameters");
      ExtExpert.Deinit();
      return(-7);
     }
//--- Creation of money object
   CMoneyFixedLot *money=new CMoneyFixedLot;
   if(money==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating money");
      ExtExpert.Deinit();
      return(-8);
     }
//--- Add money to expert (will be deleted automatically))
   if(!ExtExpert.InitMoney(money))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing money");
      ExtExpert.Deinit();
      return(-9);
     }
//--- Set money parameters
   money.Percent(Inp_Money_FixLot_Percent);
   money.Lots(Inp_Money_FixLot_Lots);
//--- Check money parameters
   if(!money.ValidationSettings())
     {
      //--- failed
      printf(__FUNCTION__+": error money parameters");
      ExtExpert.Deinit();
      return(-10);
     }
//--- Tuning of all necessary indicators
   if(!ExtExpert.InitIndicators())
     {
      //--- failed
      printf(__FUNCTION__+": error initializing indicators");
      ExtExpert.Deinit();
      return(-11);
     }
//--- ok
   return(0);
  }
//+------------------------------------------------------------------+
//| Deinitialization function of the expert                          |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ExtExpert.Deinit();
  }
//+------------------------------------------------------------------+
//| Function-event handler "tick"                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   ExtExpert.OnTick();
  }
//+------------------------------------------------------------------+
//| Function-event handler "trade"                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
   ExtExpert.OnTrade();
  }
//+------------------------------------------------------------------+
//| Function-event handler "timer"                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   ExtExpert.OnTimer();
  }
//+------------------------------------------------------------------+
 
mql5:
Gracias, si puedo hacer una pregunta rápida - ¿es aceptable que dos procesos lean del mismo sitio?
 
openlive:
Es extraño que este código se compile.
#include <Expert\Signal\SignalCandles.mqh> - это старый модуль


PS El archivo podría haberse adjuntado sin más.

 
uncleVic:
Es extraño que este código se compile.


PS El archivo podría haberse adjuntado sin más.

El caso es que el probador funciona bien con él... pero ¿funcionará en el comercio?

como entiendo que no hay ningún módulo nuevo? entonces que debo hacer en este, si no es difícil

 
openlive:

El caso es que el probador funciona bien con él... pero ¿funcionará en el comercio?

según tengo entendido no hay ningún módulo nuevo... entonces que tengo que hacer en este, si no es difícil

Funcionará. Tienes que insertarlo en el método CSignalCandles::ValidationSettings(), al principio:

//--- call of the method of the parent class
   if(!CExpertSignal::ValidationSettings()) return(false);
 
uncleVic:

Funcionará. Para evitarlo, insértelo en el método CSignalCandles::ValidationSettings(), al principio:

bool CSignalCandles::ValidationSettings()
{
if(!CExpertSignal::ValidationSettings()) return(false);

if(m_range<=0)
{
printf(__FUNCTION__+": candles range must be greater than 0");
return(false);
}
//--- ok
return(true);
}
así que ya está ahí.
 
220Volt:
Gracias, si puedo hacer una pregunta rápida - ¿es aceptable que dos procesos lean de la misma área?
Sí, no hay problemas al leer.
 
openlive:

ya está aquí.
Tarea... Por favor, adjunte el módulo de señal (no tengo uno). Echemos un vistazo.
Razón de la queja: