[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 982

 
Aleksander:

eine Variable deklarieren

zu Beginn - wenn ein Signal empfangen wird, erhöhen Sie es um 1, wenn N Signale empfangen werden, eröffnen Sie einen Handel,

Zähler zurücksetzen...

Ich habe so viel geschrieben, wie ich kann, aber es ist nicht klar, wie ich die Signaladdition gestalten soll...
extern double     PropuskSignala             =  0;  //сколько сигналов инлдикатора пропускать
//-------------------
double PropuskSignalaB,PropuskSignalaS;

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
//получаем сигнал: (SignalBuy==true;)
PropuskSignalaB++;  //вот здесь как записать? Чтобы прибавлялись
//получаем сигнал: (SignalSell==true;)
PropuskSignalaS++;  //вот здесь как записать? Чтобы прибавлялись

if(SignalBuyif(PropuskSignalaB>=PropuskSignala || PropuskSignalaS>=PropuskSignala){
//открываем ордер Buy
}
if(SignalSellif(PropuskSignalaS>=PropuskSignala || PropuskSignalaB>=PropuskSignala){
//открываем ордер Sell
}
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
 

Guten Tag!

Bitte helfen Sie mir bei dieser Frage. Ich habe einen Expert Advisor erstellt. Ich möchte wissen, ob ich mit der Renditekurve arbeiten kann, die sie erzeugt. Die Frage ist, welche Kurve als Mindestkurve" angesehen werden kann :). Ich habe meine Kurve gegeben. 1999 -2010.

P.S. Die Frage ist nicht müßig. Wenn ich es auf ein reales Konto lege, geht die Kurve vorübergehend nach unten.

 
001:

Guten Tag!

Bitte helfen Sie mir bei dieser Frage. Ich habe einen Expert Advisor erstellt. Ich möchte wissen, ob ich mit der Renditekurve arbeiten kann, die sie erzeugt. Die Frage ist, welche Kurve als Mindestkurve" angesehen werden kann :). Ich habe meine Kurve gegeben. 1999 -2010.

P.S. Die Frage ist nicht müßig. Wenn ich es auf ein reales Konto lege, geht die Kurve vorübergehend nach unten.

Es hängt alles vom Code des EA selbst ab. Vielleicht ist es auch ganz leer - nur ein Spielzeug für den Tester. Was für eine Prüfung Sie hier ablegen. Verfügt der EA über eine explizite Steuerung der Balkenöffnung?
 
artmedia70:
Es hängt alles vom Code des EA selbst ab. Vielleicht ist es auch ganz leer - nur ein Spielzeug für den Tester. Und was ist mit der Zulassungsprüfung? Hat der EA eine explizite Kontrolle über die Bar-Eröffnung?


Ja, natürlich tut sie das.

static int PrevTime=0;
int start()
{

if (Time[0]<=PrevTime) return(0);
{
PrevTime=Time[0];

}

Erklären Sie bitte die ersten beiden Sätze.

 

Ich verstehe das Lehrbuch nicht,

Stoppt "break" die gesamte Schleife und der Expert Advisor wartet auf einen neuen Tick?

und kann es in "if-else" verwendet werden, sagen wir, wenn es "break" ist?

 
gheka:

Ich verstehe das Lehrbuch nicht,

Stoppt "break" die gesamte Schleife und der Expert Advisor wartet auf einen neuen Tick?

und kann es in "if-else" verwendet werden, sagen wir, wenn es "break" ist?

break bricht die gesamte Schleife ab und setzt die Ausführung Ihres Codes ab der nächsten Zeile nach der schließenden Klammer des Schleifenanweisungsblocks fort.

in if-else können Sie es verwenden. Wie würden Sie sonst die Kriterien für den Abbruch einer Schleife überprüfen?

 
Die Funktion OrderModify() erstellt einen separaten Eintrag in der Handelshistorie. Ich verwende es, wenn ich einen EA schreibe, um Trailing Stop zu implementieren. D.h., wenn die Bedingung für den Trailing Stop erfüllt ist und der StopLoss sich bewegt, was jeden Tag passieren kann, dann wird die gleiche Anzahl von Zeilen in der Historie erscheinen. Gibt es eine Möglichkeit, dies zu vermeiden? Der in MetaTrader integrierte Trailing Stop funktioniert normal.
 
dzam:
Die Funktion OrderModify() erstellt einen separaten Datensatz in der Handelshistorie. Ich verwende es beim Schreiben eines Expert Advisors für die Implementierung des Trailing Stop. D.h., wenn die Bedingung für den Trailing Stop erfüllt ist und der StopLoss sich bewegt, was jeden Tag passieren kann, dann wird die gleiche Anzahl von Zeilen in der Historie erscheinen. Gibt es eine Möglichkeit, dies zu vermeiden? Der in MetaTrader integrierte Trailing Stop funktioniert normal.

Ist es nicht einfacher, ein Schleppnetz mit Hilfe von Preis, Stoppwert, Stoppabstand vom Preis und Schleppnetzschritt zu implementieren?

Oder ist es interessanter, von der Bank über Simbabwe zum Eingang zu gehen?

 
artmedia70:

Wäre es nicht einfacher, den Preis, den Stoppwert, den Abstand des Stopps vom Preis und den Schleppnetzschritt zu verwenden, um das Schleppnetz zu implementieren?

Oder ist es interessanter, von der Bank aus durch Simbabwe zum Eingang zu gehen?

OK, wir gehen durch den Vordereingang rein. Achtung, eine weitere Frage:

Hier ist ein Codeausschnitt aus dem Beispiel der TrailingStop-Implementierung

/---- проверяем, не надо ли передвинуть Стоп Лосс:
        //---- если размер трейлингстопа не слишком маленький,
        if ( TrailingStop > MarketInfo( Symbol(), MODE_STOPLEVEL ) )
        {
            //---- если прибыль позиции больше TrailingStop пунктов,
            if ( NormalizeDouble( Bid - _BuyOpenPrice, Digits ) > 
                  NormalizeDouble( TrailingStop*Point, Digits ) )
            {
                //---- если новый уровень стоплосса выше, чем сейчас у позиции
                //---- (или если у позиции нет Стоп Лосса),
                if ( NormalizeDouble( Bid - TrailingStop*Point, 
                    Digits ) > _BuyStopLoss
                      || _BuyStopLoss <= 0.0 )
                {
                    //---- модифицируем ордер
                    if ( !OrderModify( _BuyTicket, _BuyOpenPrice, 
                          NormalizeDouble( Bid - TrailingStop*Point, 
                                           Digits ), 
                          _BuyTakeProfit, 0 ) )
                    {
                        Alert( "OrderModify Error #", 
                              GetLastError() );
                        return(-1);
                    }
                }                     

}

Dieser Code verwendet OrderModify(), um eine Order gemäß den TrailingStop-Bedingungen zu ändern. Die Funktion OrderModify() erstellt einen separaten Datensatz in der Handelshistorie. Das heißt, wenn die Trailing-Stop-Bedingungen erfüllt sind und sich der Stop-Loss bewegt, was jede Sekunde passieren kann, wird die gleiche Anzahl von Linien in der Historie angezeigt. Gibt es eine Möglichkeit, dies zu vermeiden? Der in MetaTrader integrierte Trailing Stop funktioniert normal.

 
dzam:

Okay, gehen wir durch die Vordertür rein. Achtung, eine weitere Frage:

Hier ein Codeschnipsel aus dem Beispiel der TrailingStop-Implementierung

}

Dieser Code verwendet OrderModify(), um eine Order gemäß den TrailingStop-Bedingungen zu ändern. Die Funktion OrderModify() erstellt einen separaten Datensatz in der Handelshistorie. Das heißt, wenn die Trailing-Stop-Bedingungen erfüllt sind und sich der Stop-Loss bewegt, was jede Sekunde passieren kann, wird die gleiche Anzahl von Linien in der Historie angezeigt. Gibt es eine Möglichkeit, dies zu vermeiden? Der in MetaTrader integrierte Trailing Stop funktioniert ordnungsgemäß.


Es gibt keine Möglichkeit, dies zu vermeiden. Jeder Handel, wie auch jede Positionsänderung, erzeugt einen eigenen Protokolleintrag
Grund der Beschwerde: