La amistad es la amistad, pero el tabaco es aparte... El código completo será para éste:
no se utiliza:
dar el código completo con la biblioteca estándar (no puedo hacerlo yo mismo ya que no soy experto en la biblioteca estándar) ...
--
no para lo bueno, sino para lo malo... Porque perderás tu comprensión de la realidad... aprende OOP.
Llegados a este punto, creo que la cuestión ha terminado.
Camarada, no necesito aprender sobre POO, puedo enseñar a cualquiera, y no sólo sobre POO. Pedí un código para comparar lo que hay que escribir para abrir un trato con la ayuda de la biblioteca estándar y lo que hay que escribir sin ella. ¿Y qué es más fácil de entender al final? Parece una sugerencia bastante constructiva.
Camarada, no necesito que me enseñen sobre POO, puedo enseñar a cualquiera, y no sólo sobre POO. Y pedí un código para comparar lo que hay que escribir para abrir un trato con la ayuda de la biblioteca estándar y lo que hay que escribir sin ella. ¿Y qué es más fácil de entender al final? Parece una sugerencia bastante constructiva.
Bueno, no, así que no.
Lo he escrito todo.
Archivo en el directorio Include:
class МойСигнальщик : public CExpertSignal //наследуемся от Signal
{
private:
CiCustom МойИндикатор;
public:
МойОбработчик();
~МойОбработчик();
bool ValidationSettings(void);
bool InitIndicators(CIndicators *indicators);
virtualint LongCondition();
virtualint ShortCondition();
protected:
bool МойИндикатор(CIndicators *indicators);
int МойСигнальщик::LongCondition()
{
int signal=0;
if (!signalLong0==0)
{
signal=100;
}
return(signal);
}
En el Asesor Experto:
#include <МойСигнальщик.mqh>inputdouble Signal_StopLevel =150.0; // Stop Loss level (in points)inputdouble Signal_TakeLevel =120.0; // Take Profit level (in points)inputdouble Signal_PriceLevel =10.0; // Price level to execute a dealinputdouble Money_FixLot =1.0;
CExpert ExtExpert;
//+------------------------------------------------------------------+//| Initialization function of the expert |//+------------------------------------------------------------------+intOnInit()
{
//--- Initializing expertif(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
{
//--- failedprintf(__FUNCTION__+": error initializing expert");
ExtExpert.Deinit();
return(-1);
}
//--- Creating signal
CExpertSignal *signal=new CExpertSignal;
if(signal==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating signal");
ExtExpert.Deinit();
return(-2);
}
//---
ExtExpert.InitSignal(signal);
signal.ThresholdOpen(Signal_ThresholdOpen);
signal.ThresholdClose(Signal_ThresholdClose);
signal.PriceLevel(Signal_PriceLevel);
signal.StopLevel(Signal_StopLevel);
signal.TakeLevel(Signal_TakeLevel);
signal.Expiration(Signal_Expiration);
//--- Creating filter IRTMiniMax
МойИндикатор *filter0=new МойИндикатор;
if(filter0==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating filter0");
ExtExpert.Deinit();
return(-3);
}
signal.AddFilter(filter0);
//--- Set filter parameters
filter0.Weight(Signal_MovingMM_Weight);
//--- Creation of trailing object
CTrailingNone *trailing=new CTrailingNone;
if(trailing==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating trailing");
ExtExpert.Deinit();
return(-4);
}
//--- Add trailing to expert (will be deleted automatically))if(!ExtExpert.InitTrailing(trailing))
{
//--- failedprintf(__FUNCTION__+": error initializing trailing");
ExtExpert.Deinit();
return(-5);
}
//--- Set trailing parameters//--- Creation of money object
CMoneyFixedLot *money=new CMoneyFixedLot;
if(money==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating money");
ExtExpert.Deinit();
return(-6);
}
//--- Add money to expert (will be deleted automatically))if(!ExtExpert.InitMoney(money))
{
//--- failedprintf(__FUNCTION__+": error initializing money");
ExtExpert.Deinit();
return(-7);
}
//--- Set money parameters
money.Lot(Money_FixLot);
//--- Check all trading objects parametersif(!ExtExpert.ValidationSettings())
{
//--- failed
ExtExpert.Deinit();
return(-8);
}
//--- Tuning of all necessary indicatorsif(!ExtExpert.InitIndicators())
{
//--- failedprintf(__FUNCTION__+": error initializing indicators");
ExtExpert.Deinit();
return(-9);
}
//--- okreturn(0);
}
//+------------------------------------------------------------------+//| Deinitialization function of the expert |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
ExtExpert.Deinit();
}
//+------------------------------------------------------------------+//| "Tick" event handler function |//+------------------------------------------------------------------+voidOnTick()
{
ExtExpert.OnTick();
}
//+------------------------------------------------------------------+//| "Trade" event handler function |//+------------------------------------------------------------------+voidOnTrade()
{
ExtExpert.OnTrade();
}
//+------------------------------------------------------------------+//| "Timer" event handler function |//+------------------------------------------------------------------+voidOnTimer()
{
ExtExpert.OnTimer();
}
//+------------------------------------------------------------------+
notused: ¿Qué es más fácil? ¿Rellenar una estructura o ocuparse de las señales?
Esa es la cuestión... La señal en este caso concreto puede ser un mensaje de texto desde su teléfono... pero cuando le diga a su asesor exactamente lo que tiene que hacer... lo hará...
Puedo hacer cualquier cosa en la Señal, siempre que el traje me quede bien... Ya estoy en el ATC2012)
La amistad es la amistad, pero el tabaco es aparte... El código completo será para éste:
no se utiliza:
dar el código completo con la biblioteca estándar (no puedo hacerlo yo mismo ya que no soy experto en la biblioteca estándar) ...
--
no para lo bueno, sino para lo malo... Porque perderás tu comprensión de la realidad... aprende OOP.
Llegados a este punto, creo que la cuestión ha terminado.
Camarada, no necesito aprender sobre POO, puedo enseñar a cualquiera, y no sólo sobre POO. Pedí un código para comparar lo que hay que escribir para abrir un trato con la ayuda de la biblioteca estándar y lo que hay que escribir sin ella. ¿Y qué es más fácil de entender al final? Parece una sugerencia bastante constructiva.
Bueno, no, así que no.
¡Un GRAN AGRADECIMIENTO a todos!
enviado
A la espera de la verificación
¡Con un poco de suerte nos encontraremos en el Campeonato de Trading Automatizado 2012!
¡Buena suerte a todos!
(Tengo que aprender...)
Camarada, no necesito que me enseñen sobre POO, puedo enseñar a cualquiera, y no sólo sobre POO. Y pedí un código para comparar lo que hay que escribir para abrir un trato con la ayuda de la biblioteca estándar y lo que hay que escribir sin ella. ¿Y qué es más fácil de entender al final? Parece una sugerencia bastante constructiva.
Bueno, no, así que no.
Lo he escrito todo.
Archivo en el directorio Include:
En el Asesor Experto:
Eso es todo...
Enséñeme sobre OOP, por favor
Y el conjunto ya está listo y no es necesario, una vez más, reinventar la rueda...
¡Un GRAN AGRADECIMIENTO a todos!
enviado
A la espera de la verificación
¡Con un poco de suerte nos encontraremos en el Campeonato de Trading Automatizado 2012!
¡Buena suerte a todos!
(Tengo que aprender...)
¿qué es más fácil? ¿llenar una estructura o ocuparse de las señales?
Oof )) Enhorabuena. Ahora tendremos que animarte ))
¿Qué es más fácil? ¿Rellenar una estructura o ocuparse de las señales?
Esa es la cuestión... La señal en este caso concreto puede ser un mensaje de texto desde su teléfono... pero cuando le diga a su asesor exactamente lo que tiene que hacer... lo hará...
Puedo hacer cualquier cosa en la Señal, siempre que el traje me quede bien... Ya estoy en el ATC2012)
Sí, ese es el camino a seguir.
pero la mayoría de las veces no.