Yo también lo he buscado ahora. El artículo es de 2011... Pero, sobre todo, hay una explicación de cómo se generan los ticks en el modo "todos los ticks". Y "Basado en garrapatas reales" habla por sí mismo. Esa es la diferencia.
¡¡¡Hola a todos!!! Y Feliz Año Nuevo!!! Tengo mi curva de programación en las clases. Y aquí tengo un desconcierto. Tengo en la carpeta #include/ChartObject un archivo de clase -- ChartObjectsLines y contiene no sólo una clase de líneas de tendencia, sino también otras clases con líneas y constructores para todas estas clases. Y aquí está la pregunta, cuya respuesta no he encontrado, ¿resulta que en una clase puede haber muchas clases y constructores para estas clases?
Tengo otra pregunta)) No me mandes a leer el manual, lo he leído más de una vez, todavía no entiendo todo lo que hay en las clases) Hay una clase Trailing Stop para el SAR Parabólico, ubicada en la carpeta Expert\Trailing\ llamada TrailingParabolicSAR.mqh Dime si no es difícil, cómo interactuar con él. Lo entiendo mejor a través de los ejemplos))) Gracias de antemano a los que respondan)
//+------------------------------------------------------------------+//| TrailingParabolicSAR.mqh |//| Copyright 2009-2013, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#include <Expert\ExpertTrailing.mqh>
// wizard description start//+------------------------------------------------------------------+//| Description of the class |//| Title=Trailing Stop based on Parabolic SAR |//| Type=Trailing |//| Name=ParabolicSAR |//| Class=CTrailingPSAR |//| Page= |//| Parameter=Step,double,0.02,Speed increment |//| Parameter=Maximum,double,0.2,Maximum rate |//+------------------------------------------------------------------+// wizard description end//+------------------------------------------------------------------+//| Class CTrailingPSAR. |//| Appointment: Class traling stops with Parabolic SAR. |//| Derives from class CExpertTrailing. |//+------------------------------------------------------------------+class CTrailingPSAR : public CExpertTrailing
{
protected:
CiSAR m_sar; // object-indicator//--- adjusted parametersdouble m_step; // the "speed increment" parameter of the indicatordouble m_maximum; // the "maximum rate" parameter of the indicatorpublic:
CTrailingPSAR(void);
~CTrailingPSAR(void);
//--- methods of setting adjustable parametersvoid Step(double step) { m_step=step; }
void Maximum(double maximum) { m_maximum=maximum; }
//--- method of creating the indicator and timeseriesvirtualbool InitIndicators(CIndicators *indicators);
//---virtualbool CheckTrailingStopLong(CPositionInfo *position,double &sl,double &tp);
virtualbool CheckTrailingStopShort(CPositionInfo *position,double &sl,double &tp);
};
//+------------------------------------------------------------------+//| Constructor |//+------------------------------------------------------------------+void CTrailingPSAR::CTrailingPSAR(void) : m_step(0.02),
m_maximum(0.2)
{
}
//+------------------------------------------------------------------+//| Destructor |//+------------------------------------------------------------------+void CTrailingPSAR::~CTrailingPSAR(void)
{
}
//+------------------------------------------------------------------+//| Create indicators. |//+------------------------------------------------------------------+bool CTrailingPSAR::InitIndicators(CIndicators *indicators)
{
//--- check pointerif(indicators==NULL)
return(false);
//--- add object to collectionif(!indicators.Add(GetPointer(m_sar)))
{
printf(__FUNCTION__+": error adding object");
return(false);
}
//--- initialize objectif(!m_sar.Create(m_symbol.Name(),m_period,m_step,m_maximum))
{
printf(__FUNCTION__+": error initializing object");
return(false);
}
//--- okreturn(true);
}
//+------------------------------------------------------------------+//| Checking trailing stop and/or profit for long position. |//+------------------------------------------------------------------+bool CTrailingPSAR::CheckTrailingStopLong(CPositionInfo *position,double &sl,double &tp)
{
//--- checkif(position==NULL)
return(false);
//---double level =NormalizeDouble(m_symbol.Bid()-m_symbol.StopsLevel()*m_symbol.Point(),m_symbol.Digits());
double new_sl=NormalizeDouble(m_sar.Main(1),m_symbol.Digits());
double pos_sl=position.StopLoss();
double base =(pos_sl==0.0) ? position.PriceOpen() : pos_sl;
//---
sl=EMPTY_VALUE;
tp=EMPTY_VALUE;
if(new_sl>base && new_sl<level)
sl=new_sl;
//---return(sl!=EMPTY_VALUE);
}
//+------------------------------------------------------------------+//| Checking trailing stop and/or profit for short position. |//+------------------------------------------------------------------+bool CTrailingPSAR::CheckTrailingStopShort(CPositionInfo *position,double &sl,double &tp)
{
//--- checkif(position==NULL)
return(false);
//---double level =NormalizeDouble(m_symbol.Ask()+m_symbol.StopsLevel()*m_symbol.Point(),m_symbol.Digits());
double new_sl=NormalizeDouble(m_sar.Main(1)+m_symbol.Spread()*m_symbol.Point(),m_symbol.Digits());
double pos_sl=position.StopLoss();
double base =(pos_sl==0.0) ? position.PriceOpen() : pos_sl;
//---
sl=EMPTY_VALUE;
tp=EMPTY_VALUE;
if(new_sl<base && new_sl>level)
sl=new_sl;
//---return(sl!=EMPTY_VALUE);
}
//+------------------------------------------------------------------+
Kira27: Tengo otra pregunta)) Por favor no me manden a leer las instrucciones, las he leído muchas veces, todavía no entiendo todas las clases) Hay una clase Trailing Stop para el SAR Parabólico, ubicada en la carpeta Expert\Trailing\ y llamada TrailingParabolicSAR.mqh Por favor díganme como usarla. Lo entiendo mejor a través de los ejemplos))) Gracias de antemano a los que respondan)
Un ejemplo de uso se da en [carpeta dta]\MQL5\Experts\Advisors\ExpertMAPSAR.mq5
leerlo ya )
Yo también lo he buscado ahora. El artículo es de 2011... Pero, sobre todo, hay una explicación de cómo se generan los ticks en el modo "todos los ticks". Y "Basado en garrapatas reales" habla por sí mismo. Esa es la diferencia.
En el modo de visualización, las impresiones no se muestran. ¿Se supone que esto es así, o estoy haciendo algo mal?
Y otra pregunta))) ¿Cómo puedo obtener el precio y la fecha de las coordenadas X / Y en la ventana del gráfico?
https://www.mql5.com/ru/docs/chart_operations/charttimepricetoxy
https://www.mql5.com/ru/docs/chart_operations/chartxytotimeprice
https://www.mql5.com/ru/docs/chart_operations/charttimepricetoxy
https://www.mql5.com/ru/docs/chart_operations/chartxytotimeprice
¡¡¡Gracias!!!
Tengo otra pregunta)) Por favor no me manden a leer las instrucciones, las he leído muchas veces, todavía no entiendo todas las clases) Hay una clase Trailing Stop para el SAR Parabólico, ubicada en la carpeta Expert\Trailing\ y llamada TrailingParabolicSAR.mqh Por favor díganme como usarla. Lo entiendo mejor a través de los ejemplos))) Gracias de antemano a los que respondan)
Un ejemplo de uso se da en [carpeta dta]\MQL5\Experts\Advisors\ExpertMAPSAR.mq5
Un ejemplo de uso se da en [carpeta dta]\MQL5\Experts\Advisors\ExpertMAPSAR.mq5
¡¡¡Gracias!!!
Pregunta sobre el probador.
En el modo de visualización, las impresiones no se muestran. ¿Se supone que esto es así, o estoy haciendo algo mal?