Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 57

 
FAQ:

Was ist mit Arrays?

Wir lesen die Liste der Aufträge in ein zweidimensionales Array ein, die erste Dimension ist eine Magie, die zweite ist ein Gewinn.

ArraySort() - die Aufträge werden von Magiern in der Reihenfolge sortiert, wir fangen an, sie zu summieren und anzuzeigen.

Das ist cool!

Was haben wir am Schnittpunkt der Dimensionen?

 

Wenn wir die Aufträge direkt aus der Liste lesen, werden die Zauberer verstreut sein, d.h. wir müssen zumindest die Zauberer kennen, oder eine Schleife innerhalb der Schleife machen, um einen Zauberer in der zweiten Liste zu finden und ihm einen Gewinn hinzuzufügen.

Nach ArraySort() sind die Zauberer der Reihe nach aufgereiht. Wir gehen einfach durch das Array und addieren die zweite Dimension (Gewinn), sobald sich ein Zauberer in der ersten Dimension geändert hat - wir geben eine Textvariable aus:

int premagic = arr[0][0];
string text = "";
for(i=0;i=ArrayRange(arr,0);i++){
   if(arr[i][0]==premagic){
       profit += arr[i][1];
   }else{
       text = text + "MagickNum :"+premagic+"  Profit :"+profit+"\n";
       profit   = arr[i][1];
       premagic = arr[i][0];
   }
}
Comment(text);
 
borilunad:
Schauen Sie sich die wöchentliche Geschichte von W1 genau an!

Danke, nur ich lade die Historie bei der Installation herunter und prüfe speziell auf den Zeitraum, in dem es definitiv keine Löcher gibt - die Candlesticks sind im Chart.
 
Hilfe für einen Neuling! Ein Problem kann ich nicht lösen.
Ein Expert Advisor öffnet bis zu 100 Orders, puts sl und thr. Bei Überschreiten eines bestimmten Signalpegels wird die Reihenfolge sl. und thr. geändert. Jeder Auftrag hat seinen eigenen individuellen Signalpegel, sl und thr. Sl und thr für weitere Änderungen wird zum Zeitpunkt der Eröffnung der Bestellung berechnet.
Ich kann mir keinen Algorithmus vorstellen. Bitte geben Sie mir einen Schubs!!!
 
Wie kann ich meinen EA dazu bringen, sich daran zu erinnern, dass nicht mehr als zwei Aufträge für eine bestimmte Kerze geöffnet werden können?
 
MauzerVII:
Wie kann man den EA daran erinnern, dass nicht mehr als zwei Orders auf einer bestimmten Kerze geöffnet werden können?


Wenn Sie vom Markt kommen, merken Sie sich den Zeitpunkt der Auftragseröffnung und setzen Sie die Anzahl der offenen Aufträge auf eins.

Wenn der nächste Auftrag eröffnet wird, prüfen Sie die Zeit, wenn sie nicht über den Balken hinausgeht, dann erhöhen Sie die Anzahl der offenen Aufträge.

Der Rest der Logik ist recht einfach zu erstellen.

 

eine andere Frage:

Wir schließen eine Reihe von Aufträgen ab, etwa 30 Aufträge pro Zyklus.

Wie kann man überprüfen, ob alle Aufträge geschlossen sind, oder eine Schleife bilden, die den Broker so lange pocht, bis er die Requotes stoppt?

Ich habe gerade das erste skizziert, was mir in den Sinn kam, ist das möglich?

void close (int m)
{
for( int f=OrdersTotal()-1; f>=0; f--)
if ( OrderSelect(f,SELECT_BY_POS)    )
if ( OrderSymbol()==Symbol()         )
if ( OrderMagicNumber()==m           )
if (OrderType()==0)
if (OrderClose(OrderTicket(),OrderLots(),Bid,Slip,Red)==true) continue;
else f++;
if (OrderType()==1)
if (OrderClose(OrderTicket(),OrderLots(),Ask,Slip,Red)==true) continue;
else f++;
}
 
nachalo = H;
finich = D;

if (DayOfWeek() == 1 && Hour()==H && Minute()<=00)
      {
      Opn_B = true;
      }
if(DayOfWeek() == 2 && Hour()==D && Minute()<=01)
      {                                           
      Cls_B=true;                 
      }

Beim Testen des EA nach Wochentagen und Stunden, schrieb den folgenden Code:

Die Variablen "H", "D" werden ausgegeben an:

extern int  H = 18;  
extern int  D =19;
In den EA-Eigenschaften habe ich die Startwerte der Variablen von 0 bis 23 festgelegt, Schritt 1.
Alle Ergebnisse werden als nicht signifikant zurückgewiesen. Andere EAs haben einen Testbereich festgelegt, aber dieser funktioniert nicht.
Bitte, sagen Sie mir, was los ist?
 
nachalo = H;
finich = D;

if (DayOfWeek() == 1 && Hour()==H && Minute()<=0)
      {
      Opn_B = true;
      }
if(DayOfWeek() == 2 && Hour()==D && Minute()<=1)
      {                                           
      Cls_B=true;                 
      }
 
VOLDEMAR:


Danke, ich habe drei Tage gebraucht, um es manuell zu berechnen.

Ärgerlich ist nur, dass der Prozentsatz der profitablen Trades in der Optimierung nicht sichtbar ist, oder gibt es eine Möglichkeit, ihn anzuzeigen?