Ich habe es jetzt auch nachgeschlagen. Der Artikel stammt aus dem Jahr 2011... Vor allem aber wird erklärt, wie die Zecken im Modus "Alle Zecken" erzeugt werden. Und "basierend auf echten Zecken" spricht für sich selbst. Das ist der Unterschied.
Hallo zusammen!!! Und frohes neues Jahr!!! Ich habe meine Programmierkurve im Unterricht bekommen. Und hier habe ich ein Rätsel. Ich habe im Ordner #include/ChartObject eine Klassendatei - ChartObjectsLines und es enthält nicht nur eine Klasse von Trendlinien, sondern auch andere Klassen mit Linien und Konstruktoren für alle diese Klassen. Und hier ist die Frage, die Antwort auf die ich nicht gefunden habe, dass in einer Klasse kann viele Klassen und Konstruktoren für diese Klassen sein?
Ich habe eine weitere Frage)) Schicken Sie mich einfach nicht, um das Handbuch zu lesen, ich habe es mehr als einmal gelesen, ich verstehe immer noch nicht alles in den Klassen) Es gibt eine Klasse Trailing Stop für Parabolic SAR, in den Ordner Expert\Trailing\ namens TrailingParabolicSAR.mqh Sagen Sie mir, wenn es nicht schwierig ist, wie man mit ihm interagieren. Ich verstehe es besser durch Beispiele))) Danke im Voraus an diejenigen, die antworten)
//+------------------------------------------------------------------+//| 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: Ich habe eine weitere Frage)) Bitte schicken Sie mich nicht, um Anweisungen zu lesen, ich habe es viele Male gelesen, ich verstehe immer noch nicht alle Klassen) Es gibt eine Trailing Stop Klasse für Parabolic SAR, in Expert\Trailing\ Ordner und namens TrailingParabolicSAR.mqh Bitte sagen Sie mir, wie es zu benutzen. Ich verstehe es besser durch Beispiele))) Danke im Voraus an diejenigen, die antworten)
Ein Beispiel für die Verwendung findet sich in [dta folder]\MQL5\Experts\Advisors\ExpertMAPSAR.mq5
lesen Sie es bereits )
Ich habe es jetzt auch nachgeschlagen. Der Artikel stammt aus dem Jahr 2011... Vor allem aber wird erklärt, wie die Zecken im Modus "Alle Zecken" erzeugt werden. Und "basierend auf echten Zecken" spricht für sich selbst. Das ist der Unterschied.
Im Visualisierungsmodus werden die Ausdrucke nicht angezeigt. Sollte dies der Fall sein, oder mache ich etwas falsch?
Und noch eine Frage: Wie erhalte ich den Preis und das Datum aus den X-/Y-Koordinaten im Diagrammfenster?
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
Ich danke Ihnen!!!
Ich habe eine weitere Frage)) Bitte schicken Sie mich nicht, um Anweisungen zu lesen, ich habe es viele Male gelesen, ich verstehe immer noch nicht alle Klassen) Es gibt eine Trailing Stop Klasse für Parabolic SAR, in Expert\Trailing\ Ordner und namens TrailingParabolicSAR.mqh Bitte sagen Sie mir, wie es zu benutzen. Ich verstehe es besser durch Beispiele))) Danke im Voraus an diejenigen, die antworten)
Ein Beispiel für die Verwendung findet sich in [dta folder]\MQL5\Experts\Advisors\ExpertMAPSAR.mq5
Ein Beispiel für die Verwendung findet sich in [dta folder]\MQL5\Experts\Advisors\ExpertMAPSAR.mq5
Ich danke Ihnen!!!
Frage zum Testgerät.
Im Visualisierungsmodus werden die Ausdrucke nicht angezeigt. Sollte dies der Fall sein, oder mache ich etwas falsch?