[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 70

 

Hilfe bei der Lösung des Problems. Ich habe vielleicht schon alle hier verärgert, aber bitte helfen Sie mir. Wenn die Flagge auf dem vorherigen Balken 1 ist, darf der Pfeil nach unten gezogen werden. Nachdem es gezeichnet wurde, setzen wir eine neue Flagge gleich -1. Auf der anderen Seite im Gegenteil. Aber was ich falsch mache. Keine Pfeile ohne Kommentare. Alle Pfeile mit Kommentaren.

flag[i] = flag[i+1];             
  if (// flag[i] == 1 && 
//в вниз           
       ma13_0 > ma55_0 && macd[0] >= macd[1] && macd[1] >= macd[2] && macd[2] >= macd[3] && cci15_0 > 50 && cci170_0 > 0)
  {
       S[i] = High[i]+point*Point;                
       flag[i] = -1 ; // флаг показывает нормально пока закоментировано        
  }        
  if (// flag[i] == -1 && 
//в верх          
       ma13_0 < ma55_0 && macd[0] <= macd[1] && macd[1] <= macd[2] && macd[2] <= macd[3] && cci15_0 < 50 && cci170_0 < 0)
  {
       B[i] = Low[i]-point*Point;                
       flag[i] = 1 ;//флаг показывает нормально пока закоментировано         
   }
 
granit77:
Ich weiß es nicht. Sergejew weiß es, er sagt, es scheint richtig zu sein. Ich würde auch gerne sehen, wie man es richtig schreibt.
Ich habe es nur ein wenig korrigiert, damit es etwas aussagt.
- Ich habe den Indikator in ein separates Fenster gestellt, dann kann man ihn wieder zurückstellen

- macd[]-Array hing in der Luft, machte es zu einem Indikator, erhöhte die Genauigkeit
- schloss Ihre komplexe Bedingung für die Öffnung, legte eine einfache für die Anpassung
- die Bedingung für die Flagge geändert, zumindest funktioniert es.

Dann können Sie nach und nach Bedingungen einführen, Sie werden sofort sehen, wo der Fehler liegt.

Ich danke Ihnen. Ich werde es mir ansehen. Während ich den vorigen Beitrag schrieb, haben Sie Ihren gepostet.
 
100yan:

HILFE! Bitte sagen Sie mir, wenn ich einen Teil einer Position schließe (z.B. Auftrag für 1 Lot, und 0,5 Lot schließe), sollte sich das OrderClose Ticket ändern? Mein Tester sagt, dass es das tut... Wie kann man sie vermeiden? Nachfolgend finden Sie einen Teil des Abschlusscodes...

Es gibt keine Möglichkeit, dies zu vermeiden. Es ist die DC, die das Ticket wechselt. Sie öffnen im Grunde genommen mit einem anderen Band neu, daher das neue Ticket. Führen Sie daher Ihr eigenes Orderbuch und erinnern Sie sich nach der teilweisen Schließung einer Position an deren neues Ticket für die weitere Arbeit. Sie können auch eine Art Identifikation von teilweise geschlossenen Positionen für eine korrekte weitere Überwachung durch den Expert Advisor vorsehen.
 
artmedia70:
Es gibt keine Möglichkeit, dies zu vermeiden. Dies ist die DC, die das Ticket ändert. Sie eröffnen im Grunde eine Position mit einem anderen Volumen neu, daher das neue Ticket. Führen Sie daher Ihr eigenes Orderbuch und merken Sie sich nach teilweiser Schließung einer Position deren neues Ticket für die weitere Arbeit. Sie können auch eine Identifizierung teilweise geschlossener Positionen für eine korrekte weitere Überwachung durch den Expert Advisor vorsehen.

Ich danke Ihnen! Ändert sich die MagicNumber?
 
gince:
Ich habe eine temporäre Zeichnung des flag[]-Puffers erstellt - er ist leer, warum? Wo liegt mein Fehler?

Ihr Fehler ist, dass flag[i+1] nicht initialisiert ist.

Der Vergleich flag[i]==1 und flag[i]==-1 wird also nie ausgeführt!

 
100yan:

Ich danke Ihnen! Ändert sich die MagicNumber?
keine
 
100yan:

Ich danke Ihnen! Ändert sich die MagicNumber?
Die MagicNumber ändert sich in diesem Fall nicht, es sei denn, der EA-Code sieht dies vor.
 
DhP:
Die MagicNumber ändert sich in diesem Fall nicht, es sei denn, dies ist im EA-Code vorgesehen.
ist es möglich, dies zu tun ???? bitte zeigen Sie mir, wie es gemacht werden kann
 
sergeev:
ja??? und dies kann ins Auge gefasst werden ???? bitte zeigen Sie, wie es gemacht werden kann
Wenn eine Position teilweise geschlossen ist, können Sie die Magie ändern. Ich bin sicher, dass Sie das leicht schreiben können.
 
sergeev:

Ihr Fehler ist, dass flag[i+1] nicht initialisiert ist.

Der Vergleich flag[i]==1 und flag[i]==-1 wird also nie ausgeführt!

Ich verstehe, dass ich die Einstellung flag[i+1] nicht initialisiert habe. Wenn ja, wo und wie kann man es tun?

Wenn ich 1 einstelle, wird der Indikator beim Starten auf die Änderung warten.

flag[i+1]= 1;//начальная установка

for(int i=limit-1;i>=0;i--){ 
   flag[i] == flag[i+1];   
   if ( flag[i] == 1  &&   
        условие продажи){              
       Продажа[i] = High[i]+point*Point; 
       flag[i] == -1 ;
    }                     
    if (flag[i] == - 1  &&     условие покупки){          
              Покупка[i] = Low[i]-point*Point; 
              flag[i] == 1 ;}
    }
}    
Grund der Beschwerde: