109 lines
No EOL
6.9 KiB
MQL5
109 lines
No EOL
6.9 KiB
MQL5
|
|
|
|
void OnTick()
|
|
{
|
|
//---8
|
|
double miprecioc,mipreciov,mbruto;
|
|
|
|
OrdenPlanificada miorden1 (10.0,12.5,500) ;
|
|
miorden1.incrementaPreciocompra(0.15);
|
|
miorden1.decrementaPrecioventa(0.33);
|
|
miprecioc=miorden1.getPreciocompra();
|
|
mipreciov=miorden1.getPrecioventa();
|
|
// mbruto=miorden1.getMargenBruto(); no seas bruto, es un método/función privada, da error en compilación.
|
|
|
|
// OrdenPlanificadaconFecha miordenf1 (11.0,13.5,500) ; no sé cómo hacer que el constructor hijo, llame al padre. He probado todo lo del chat gpt, pero nada de nada.
|
|
|
|
//DASHBOARD
|
|
Comment("PRECIO COMPRA : ",miprecioc,"\n",
|
|
"PRECIO VENTA : ",mipreciov, "\n",
|
|
"MARGEN BRUTO : ",mbruto, "\n"
|
|
);
|
|
|
|
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
|
|
class OrdenPlanificada {
|
|
protected:
|
|
double preciocompra;
|
|
double precioventa;
|
|
int numerodeTitulos;
|
|
|
|
public:
|
|
double incrementaPreciocompra(double incremento);
|
|
double decrementaPreciocompra(double decremento);
|
|
double incrementaPrecioventa(double incremento);
|
|
double decrementaPrecioventa(double decremento);
|
|
double getPreciocompra (void);
|
|
double getPrecioventa(void);
|
|
OrdenPlanificada(double prc,double prv,int numt);
|
|
|
|
private:
|
|
double getMargenBruto (void);
|
|
};
|
|
|
|
double OrdenPlanificada::incrementaPreciocompra(double pincremento){
|
|
double valorfinal;
|
|
valorfinal=(preciocompra=preciocompra+pincremento);
|
|
return (valorfinal);
|
|
}
|
|
|
|
double OrdenPlanificada::decrementaPreciocompra(double pdecremento){
|
|
double valorfinal;
|
|
valorfinal=(preciocompra=preciocompra-pdecremento);
|
|
return (valorfinal);
|
|
}
|
|
|
|
double OrdenPlanificada::incrementaPrecioventa(double pincremento){
|
|
double valorfinal;
|
|
valorfinal=(precioventa=precioventa+pincremento);
|
|
return (valorfinal);
|
|
}
|
|
|
|
double OrdenPlanificada::decrementaPrecioventa(double pdecremento){
|
|
double valorfinal;
|
|
valorfinal=this.getMargenBruto(); // esto es una chorradica, pero es para probar que accede a función privada.
|
|
valorfinal=(precioventa=precioventa-pdecremento);
|
|
return (valorfinal);
|
|
}
|
|
|
|
double OrdenPlanificada::getPreciocompra(void){
|
|
return (preciocompra);
|
|
}
|
|
|
|
double OrdenPlanificada::getPrecioventa(void){
|
|
return (precioventa);
|
|
}
|
|
|
|
OrdenPlanificada::OrdenPlanificada(double pc,double pv,int pnum) {
|
|
preciocompra=pc;
|
|
precioventa=pv;
|
|
numerodeTitulos=pnum;
|
|
}
|
|
|
|
double OrdenPlanificada::getMargenBruto (void) {
|
|
return ((this.getPreciocompra()-this.getPrecioventa()) * this.numerodeTitulos);
|
|
}
|
|
//------------ clase derivada -------
|
|
|
|
class OrdenPlanificadaconFecha : public OrdenPlanificada {
|
|
protected:
|
|
datetime fechafin;
|
|
public:
|
|
int setFechafin (datetime pfecha);
|
|
OrdenPlanificadaconFecha (double prc,double prv,int numt) ; //Exige que la redefina con los mismos parámetros, ¿?
|
|
};
|
|
|
|
/* OrdenPlanificadaconFecha (double pc,double pv,int pnum):OrdenPlanificadaconFecha(double pc,double pv,int pnum) {
|
|
this.preciocompra=pc;
|
|
this.precioventa=pv;
|
|
this.numerodeTitulos=pnum;
|
|
}*/
|
|
|
|
|
|
int OrdenPlanificadaconFecha::setFechafin(datetime pfecha) {
|
|
this.fechafin=pfecha;
|
|
// this.getMargenBruto(); me dice claramente en compilación cannot access private member function
|
|
return (1);
|
|
} |