Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Vladimir, ich habe es herausgefunden und es zum Laufen gebracht. Wo kann ich hier Verkaufsaufträge mit Kaufaufträgen vertauschen?
Jedes Signalmodul hat zwei Funktionen, die zur Ausgabe von Kauf- oder Verkaufssignalen verwendet werden. Diese sind "LongCondition" und "ShortCondition".
Jedes Signalmodul hat zwei Funktionen, die zur Ausgabe von Kauf- oder Verkaufssignalen verwendet werden. Diese sind "LongCondition" und "ShortCondition".
Ich habe verstanden, dass dies in Ihrem EA der Fall ist:
{
int result=0;
int idx=StartIndex();
//--- analyze positional relationship of the close price and the indicator at the first analyzed bar
if(m_reverse)
if(DiffCloseMA(idx)>0.0)
{
//--- the close price is above the indicator (the indicator has no objections to buying)
if(IS_PATTERN_USAGE(0))
result=m_pattern_0;
}
if(!m_reverse)
if(DiffCloseMA(idx)<0.0)
{
//--- the close price is below the indicator (the indicator has no objections to buying)
if(IS_PATTERN_USAGE(0))
result=m_pattern_0;
}
//--- return the result
return(result);
}
//+------------------------------------------------------------------+
//| "Voting" that price will fall. |
//+------------------------------------------------------------------+
int CSignalMA::ShortCondition(void)
{
int result=0;
int idx =StartIndex();
//--- analyze positional relationship of the close price and the indicator at the first analyzed bar
if(m_reverse)
if(DiffCloseMA(idx)<0.0)
{
//--- the close price is below the indicator (the indicator has no objections to buying)
if(IS_PATTERN_USAGE(0))
result=m_pattern_0;
}
if(!m_reverse)
if(DiffCloseMA(idx)>0.0)
{
//--- the close price is above the indicator (the indicator has no objections to buying)
if(IS_PATTERN_USAGE(0))
result=m_pattern_0;
}
//--- return the result
return(result);
}
//+------------------------------------------------------------------+
und wo ist hier die Linie, die für die Aktion verantwortlich ist? Und wie kann ich diese Eigenschaft ändern?
Ich verstehe, dass dies in Ihrem EA der Fall ist:
{
int result=0;
int idx=StartIndex();
//--- analyze positional relationship of the close price and the indicator at the first analyzed bar
if(m_reverse)
if(DiffCloseMA(idx)>0.0)
{
//--- the close price is above the indicator (the indicator has no objections to buying)
if(IS_PATTERN_USAGE(0))
result=m_pattern_0;
}
if(!m_reverse)
if(DiffCloseMA(idx)<0.0)
{
//--- the close price is below the indicator (the indicator has no objections to buying)
if(IS_PATTERN_USAGE(0))
result=m_pattern_0;
}
//--- return the result
return(result);
}
//+------------------------------------------------------------------+
//| "Voting" that price will fall. |
//+------------------------------------------------------------------+
int CSignalMA::ShortCondition(void)
{
int result=0;
int idx =StartIndex();
//--- analyze positional relationship of the close price and the indicator at the first analyzed bar
if(m_reverse)
if(DiffCloseMA(idx)<0.0)
{
//--- the close price is below the indicator (the indicator has no objections to buying)
if(IS_PATTERN_USAGE(0))
result=m_pattern_0;
}
if(!m_reverse)
if(DiffCloseMA(idx)>0.0)
{
//--- the close price is above the indicator (the indicator has no objections to buying)
if(IS_PATTERN_USAGE(0))
result=m_pattern_0;
}
//--- return the result
return(result);
}
//+------------------------------------------------------------------+
und wo ist hier die Linie, die für die Aktion verantwortlich ist? Und wie kann ich diese Eigenschaft ändern?
Bitte fügen Sie den Code korrekt ein:Code korrekt im Forum einfügen
Sie haben den Code NICHT aus dem CODE zitiert, sondern aus dem MODUL SIGNALS.
Sie müssen in meinem Modul nichts ändern, um die Signalrichtung zu ändern, denn es hat eine "Reverse"-Einstellung - je nachdem, welchen Wert diese hat (true oder false), können die Signale direkt umgekehrt werden.
Anhand des Beispiels "LongCondition":
wenn die Umkehrung ("m_reverse") wahr ist und der Schlusskurs abzüglich des Indikatorwertes größer als Null ist - dann geben wir das Signal "Long" (Buy, kaufen)
{
int result=0;
int idx=StartIndex();
//--- analyze positional relationship of the close price and the indicator at the first analyzed bar
if(m_reverse)
if(DiffCloseMA(idx)>0.0)
{
//--- the close price is above the indicator (the indicator has no objections to buying)
if(IS_PATTERN_USAGE(0))
result=m_pattern_0;
}
if(!m_reverse)
if(DiffCloseMA(idx)<0.0)
{
//--- the close price is below the indicator (the indicator has no objections to buying)
if(IS_PATTERN_USAGE(0))
result=m_pattern_0;
}
//--- return the result
return(result);
}
Bitte fügen Sie den Code korrekt ein:Code korrekt im Forum einfügen
Sie haben den Code NICHT aus dem ADVISOR, sondern aus dem SIGNAL MODULE eingefügt.
Sie müssen nichts ändern, um die Signalrichtung in meinem Modul zu ändern, da es die Einstellung "Reverse" hat - je nachdem, welchen Wert sie hat (true oder false), können die Signale direkt umgekehrt werden.
Anhand des Beispiels "LongCondition":
wenn "m_reverse" wahr ist und der Schlusskurs abzüglich des Indikatorwertes größer als Null ist - dann ist das Signal "Long" (Buy, kaufen)
{
int result=0;
int idx=StartIndex();
//--- analyze positional relationship of the close price and the indicator at the first analyzed bar
if(m_reverse)
if(DiffCloseMA(idx)>0.0)
{
//--- the close price is above the indicator (the indicator has no objections to buying)
if(IS_PATTERN_USAGE(0))
result=m_pattern_0;
}
if(!m_reverse)
if(DiffCloseMA(idx)<0.0)
{
//--- the close price is below the indicator (the indicator has no objections to buying)
if(IS_PATTERN_USAGE(0))
result=m_pattern_0;
}
//--- return the result
return(result);
}
Vladimir, es gibt ein neues Problem. Ihr Expert Advisor wurde kompiliert, aber wenn ich versuche, ihn auf das Diagramm zu ziehen und die Einstellungen zu übernehmen. Ich sehe ein Symbol in der rechten Ecke, das anzeigt, dass der Expert Advisor gestartet wurde. Dann verschwindet er sofort wieder. Was könnte der Grund dafür sein? Diese Umkehrung ist eine gute Sache. Wie kann es in anderen EAs angewendet werden?
Vladimir, es gibt ein neues Problem. Ihr EA wurde kompiliert, aber wenn ich versuche, ihn auf ein Diagramm zu ziehen und die Einstellungen zu übernehmen. Ich sehe ein Symbol in der rechten Ecke, das anzeigt, dass der EA für eine Weile läuft. Dann verschwindet sie sofort wieder. Was könnte der Grund dafür sein? Diese Umkehrung ist eine gute Sache. Wie kann es auf andere EAs angewendet werden?
Suchen Sie nach Fehlermeldungen im Fenster "Toolbox" des Terminals in den Registerkarten "Experten" und "Journal"...
Ich verstehe, dass dies der Abschnitt ist, der für die Eröffnung einer Position verantwortlich ist, wenn "Preis wird steigen" in der Datei SignalMA.mqh ?
//| "Voting" that price will grow. |
//+------------------------------------------------------------------+
int CSignalMA::LongCondition(void)
{
int result=0;
int idx =StartIndex();
//--- analyze positional relationship of the close price and the indicator at the first analyzed bar
if(DiffCloseMA(idx)<0.0)
{
//--- the close price is below the indicator
if(IS_PATTERN_USAGE(1) && DiffOpenMA(idx)>0.0 && DiffMA(idx)>0.0)
{
//--- the open price is above the indicator (i.e. there was an intersection), but the indicator is directed upwards
result=m_pattern_1;
//--- consider that this is an unformed "piercing" and suggest to enter the market at the current price
m_base_price=0.0;
}
}
else
{
//--- the close price is above the indicator (the indicator has no objections to buying)
if(IS_PATTERN_USAGE(0))
result=m_pattern_0;
//--- if the indicator is directed upwards
if(DiffMA(idx)>0.0)
{
if(DiffOpenMA(idx)<0.0)
{
//--- if the model 2 is used
if(IS_PATTERN_USAGE(2))
{
//--- the open price is below the indicator (i.e. there was an intersection)
result=m_pattern_2;
//--- suggest to enter the market at the "roll back"
m_base_price=m_symbol.NormalizePrice(MA(idx));
}
}
else
{
//--- if the model 3 is used and the open price is above the indicator
if(IS_PATTERN_USAGE(3) && DiffLowMA(idx)<0.0)
{
//--- the low price is below the indicator
result=m_pattern_3;
//--- consider that this is a formed "piercing" and suggest to enter the market at the current price
m_base_price=0.0;
}
}
}
}
//--- return the result
return(result);
}
Wenn Sie diesen Code durch den Code Ihres Moduls ersetzen, wird er korrekt funktionieren. Die Sache ist die, dass der Inhalt etwas anders ist als bei Ihnen. Hier gibt es mehr Code... hmm.
Ich verstehe, dass dies der Abschnitt ist, der für die Eröffnung einer Position verantwortlich ist, wenn "Preis wird steigen" in der Datei SignalMA.mqh ?
//| "Voting" that price will grow. |
//+------------------------------------------------------------------+
int CSignalMA::LongCondition(void)
{
int result=0;
int idx =StartIndex();
//--- analyze positional relationship of the close price and the indicator at the first analyzed bar
if(DiffCloseMA(idx)<0.0)
{
//--- the close price is below the indicator
if(IS_PATTERN_USAGE(1) && DiffOpenMA(idx)>0.0 && DiffMA(idx)>0.0)
{
//--- the open price is above the indicator (i.e. there was an intersection), but the indicator is directed upwards
result=m_pattern_1;
//--- consider that this is an unformed "piercing" and suggest to enter the market at the current price
m_base_price=0.0;
}
}
else
{
//--- the close price is above the indicator (the indicator has no objections to buying)
if(IS_PATTERN_USAGE(0))
result=m_pattern_0;
//--- if the indicator is directed upwards
if(DiffMA(idx)>0.0)
{
if(DiffOpenMA(idx)<0.0)
{
//--- if the model 2 is used
if(IS_PATTERN_USAGE(2))
{
//--- the open price is below the indicator (i.e. there was an intersection)
result=m_pattern_2;
//--- suggest to enter the market at the "roll back"
m_base_price=m_symbol.NormalizePrice(MA(idx));
}
}
else
{
//--- if the model 3 is used and the open price is above the indicator
if(IS_PATTERN_USAGE(3) && DiffLowMA(idx)<0.0)
{
//--- the low price is below the indicator
result=m_pattern_3;
//--- consider that this is a formed "piercing" and suggest to enter the market at the current price
m_base_price=0.0;
}
}
}
}
//--- return the result
return(result);
}
Wenn Sie diesen Code durch den Code Ihres Moduls ersetzen, wird er korrekt funktionieren. Die Sache ist die, dass der Inhalt etwas anders ist als bei Ihnen. Hier gibt es mehr Code... hmm.
Wenn Sie einfach meinen Code nehmen und ihn hier einfügen, wird er nicht funktionieren.
Wenn Sie einfach meinen Code nehmen und ihn hier einfügen, wird er nicht funktionieren.
Wenn Sie einfach meinen Code nehmen und ihn hier einfügen, wird er nicht funktionieren.
Vladimir, wo müssen wir die Rückseite einfügen, damit es funktioniert?
Es ist klar, dass Sie eine Kopie der Datei erstellen und den Namen dieses Einspielers ändern müssen.
Wenn Sie die Signale im Standardsignalmodul umkehren möchten:
//+------------------------------------------------------------------+
//| Description of the class |
//| Title=*** |
//| Type=SignalAdvanced |
//| Name=Moving Average |
Wenn Sie die Signale im Standardsignalmodul umkehren möchten:
//+------------------------------------------------------------------+
//| Description of the class |
//| Title=*** |
//| Type=SignalAdvanced |
//| Name=Moving Average |
Vladimir, ich danke Ihnen, Sie waren sehr hilfreich. Nun stellt sich die Frage, wie man die Take-Profit- und Stop-Loss-Aufträge, die der EA erteilt, ausführt. Wie kann ich sie einschränken?