[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 65

 
sergey_r:

Hallo zusammen. Leute, ich habe eine Bedingung, um ein Maximum zu finden: aber innerhalb eines Korridors.

for (int max=1; max<1000; max++)
if (Hoch[max+1] < Hoch[max] && Hoch[max] > Hoch[max-1] && Tief[max+1] < Tief[max] && Tief[max] > Tief[max-1] &&
High[max] > low_level_s && High[max] < high_level_s) break;

es funktioniert nicht.
Wenn ich den Korridor entferne, ist alles in Ordnung:

for (int max=1; max<1000; max++)
if (High[max+1] < High[max] && High[max] > High[max-1] && Low[max+1] < Low[max] && Low[max] > Low[max-1] ) break;

Was könnte das Problem sein...?

Ich empfehle das Skript "max_sergey_r".
Das Skript befindet sich im Ordner "Scripts" des Terminals (z. B. C:\Programme\ FX Trader\experts\scripts).
Das Skript kann auf dem Chart eines beliebigen Instruments und eines beliebigen Zeitrahmens platziert werden.
Dateien:
 
Roger:
Öffnen Sie den Indikator in zwei Fenstern und setzen Sie die unerwünschte Linie auf die Hintergrundfarbe.
Wenn die Zeilenwerte eine andere Reihenfolge haben, ist die Hälfte des Unterfensters bei dieser Darstellung ein leerer Fleck. Im Moment muss ich jeden Wert des Hauptindikators über einen zusätzlichen Indikator mit eigenem Unterfenster anzeigen. Daher wird für JEDES geöffnete Unterfenster des zusätzlichen Indikators das Hauptfenster im Hintergrund geladen, was zu einer zusätzlichen Belastung des Prozessors führt. Es ist nicht kritisch, aber ich wollte "Perfektion" :)
 

5. Forum // bin ich der Einzige, der eine Fehlermeldung erhält?

 
abolk:

5. Forum // bin ich der Einzige, der eine Fehlermeldung erhält?


Wahrscheinlich ja.
 

Leute, helft mir, herauszufinden, was zum Teufel das ist! Mein Expert Advisor ist so konzipiert, dass er einen Oplot ausgibt, und wenn der Kurs ihn nicht erreicht, sondern auf das Niveau seines Stopps zurückfällt, sollte der Oplot gelöscht werden. Aber auf dem Testgerät wird manchmal ein Oplot ausgegeben und sofort gelöscht, bevor er überhaupt den Stopp erreicht. Was ist das Problem? Hier ist ein Screenshot und ein Löschcode.

Hier ist der Code:

     if (Bid>SL)                                                              // Если Bid>уровня стопа
      {
      for (k = OrdersTotal()-1; k >= 0; k--)
         {
         OrderSelect(k,SELECT_BY_POS, MODE_TRADES);
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
            {
            if (OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP)
               {
               if(OrderDelete(OrderTicket())==true)
                  {
                  Iterration--;
                  Alert ("Ордер SellStop удален.");
                  }
                }
             }
          }
       }

Wo liegt hier der Fehler?

 
vovan-gogan:

Und hier ist der Code:

Wo liegt hier der Fehler?

Es liegt kein Fehler im Code vor, sondern nur eine Logik. Bid>SL wird geprüft und alle ausstehenden Aufträge werden gelöscht (woher SL genommen wird, geht aus dem Code nicht hervor). Wenn etwas anderes erforderlich ist, wird das Ziel Schritt für Schritt in verständlicher Sprache angegeben.
 

Ich möchte einen Expert Advisor für verschiedene Zeitrahmen erstellen.

Ich möchte einen EA für verschiedene Zeitrahmen bauen, schicken Sie mir einen "Fisch".

mit freundlichen Grüßen

 
splxgf:
Keine Fehler im Code, nur Logikfehler. Bid>SL wird geprüft und alle ausstehenden Aufträge werden gelöscht (woher SL genommen wird, geht aus dem Code nicht hervor). Wenn etwas anderes erforderlich ist, wird das Ziel Schritt für Schritt in verständlicher Sprache angegeben.

SL wird auf dem Niveau von MA20 mit 3 Kerzen rückwärts gesetzt.
 
vovan-gogan:

Leute, helft mir, herauszufinden, was zum Teufel das ist! Mein Expert Advisor ist so konzipiert, dass er einen Oplot ausgibt, und wenn der Kurs ihn nicht erreicht, sondern auf das Niveau seines Stopps zurückfällt, sollte der Oplot gelöscht werden. Aber auf dem Testgerät wird manchmal ein Oplot ausgegeben und sofort gelöscht, bevor er überhaupt den Stopp erreicht. Was ist das Problem? Hier ist ein Screenshot und ein Löschcode.

Hier ist der Code:

Wo liegt hier der Fehler?


ersetzen.

if (Bid>SL)
{

unter

if (Bid>SL)
{
   Print("Bid=",Bid," SL=",SL);

und sehen Sie, was das Protokoll sagt.

 
PapaYozh:


ersetzen.

zu

und sehen Sie, was im Logbuch steht.


Was soll das bringen? Der SL-Wert ist korrekt. Wenn ich die SL-Variable auf MA20 mit einer Verschiebung von 3 einstelle, gebe ich den SL-Pegel über Alert aus und er ist immer auf dem richtigen Niveau. Ich weiß nicht, warum der Auftrag gelöscht wird, bevor er die SL-Ebene erreicht.