Também pesquisei agora. O artigo é de 2011... Mas, o mais importante, há uma explicação de como as carraças são geradas no modo "todas as carraças". E "Com base em carraças reais" fala por si. Essa é a diferença.
Olá a todos!!! E Feliz Ano Novo!!! Tenho a minha curva de programação nas aulas. E aqui tenho um puzzle. Tenho na pasta #include/ChartObject um ficheiro de classes -- ChartObjectsLines e contém não só uma classe de linhas de tendência, mas também outras classes com linhas e construtores para todas estas classes. E aqui está a pergunta, a resposta à qual não encontrei, acontece que numa classe podem existir muitas classes e construtores para estas classes?
Tenho outra pergunta)) Só não me envie para ler o manual, já o li mais de uma vez, ainda não compreendo tudo nas aulas) Existe uma paragem de rastreio para SAR parabólica, localizada na pasta Expert\Trailing\ chamada TrailingParabolicSAR.mqh Diz-me como interagir com ela se não for difícil. Compreendo-o melhor através de exemplos))))) Graças antecipadamente àqueles que respondem)
//+------------------------------------------------------------------+//| 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: Tenho outra pergunta)) Por favor não me envie para ler instruções, já o li muitas vezes, ainda não compreendo todas as classes) Existe uma classe Trailing Stop para SAR Parabólica, localizada na pasta Expert\Trailing\ e chamada TrailingParabolicSAR.mqh Por favor diga-me como utilizá-la. Compreendo-o melhor através de exemplos))))) Graças antecipadamente àqueles que respondem)
Um exemplo de utilização é dado em [dta folder]MQL5\Experts\Advisors\ExpertMAPSAR.mq5
leia-o já )
Também pesquisei agora. O artigo é de 2011... Mas, o mais importante, há uma explicação de como as carraças são geradas no modo "todas as carraças". E "Com base em carraças reais" fala por si. Essa é a diferença.
No modo de visualização, as impressões não são exibidas. É suposto ser este o caso, ou estou a fazer algo errado?
E outra pergunta))) Como obter o preço e a data das coordenadas X / Y na janela gráfica???
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
Obrigado!!!
Tenho outra pergunta)) Por favor não me envie para ler instruções, já o li muitas vezes, ainda não compreendo todas as classes) Existe uma classe Trailing Stop para SAR Parabólica, localizada na pasta Expert\Trailing\ e chamada TrailingParabolicSAR.mqh Por favor diga-me como utilizá-la. Compreendo-o melhor através de exemplos))))) Graças antecipadamente àqueles que respondem)
Um exemplo de utilização é dado em [dta folder]MQL5\Experts\Advisors\ExpertMAPSAR.mq5
Um exemplo de utilização é dado em [dta folder]MQL5\Experts\Advisors\ExpertMAPSAR.mq5
Obrigado!!!
Pergunta sobre o testador.
No modo de visualização, as impressões não são exibidas. É suposto ser este o caso, ou estou a fazer algo errado?