[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 55

 
Lians:

Ich habe bereits das Forum über das Schreiben und Lesen von Arrays in eine Datei angesprochen, und jetzt habe ich ein Problem wieder konfrontiert: ein Array in eine Datei geschrieben haben, kann ich nicht dann das Array-Element von Wert zu finden, hier ist das Skript:

Das Ergebnis der Ausführung dieses Skripts bei mir ist der Protokolleintrag "Das Wort xyz ist nicht in der geschriebenen Datei, aber das Wort xyz ist"

Könnten Sie mir bitte sagen, was der Fehler ist und wie ich ihn beheben kann?

Sie verwenden eine 2-dimensionale Array-Zeichenkette y[][], während Sie in einem 1-dimensionalen Array suchen. Versuchen Sie diese Funktion:

bool ArraySearchString (string m[][], string e1)
{
    for (int i1 = 0; i1 < ArrayRange (m, 0); i1++)
    {
        for (int i2 = 0; i2 < ArrayRange (m, 1); i2++)
        if (m[i1][i2] == e1) return (true);
    }
    return (false);
}

und ändern Sie die Prüfbedingung in

if (ArraySearchString (y,"xyz"))
 

TarasBY, herzlichen Dank! Es funktioniert!

Und noch eine Frage: Ist jemand auf das Phänomen gestoßen, dass dasselbe Skript, das eine ganze Zahl mathematisch berechnet, in verschiedenen Builds des Terminals unterschiedliche Werte liefert? In der Version 399 werden beispielsweise 488143839 erzeugt, in der Version 416 dagegen 348186686.

Ich habe es bereits mehrfach überprüft - das Skript läuft mit denselben Parametern in verschiedenen Builds gleich.

 
Lians:

TarasBY, herzlichen Dank! Es funktioniert!

Und noch eine Frage: Ist jemand auf das Phänomen gestoßen, dass dasselbe Skript, das eine ganze Zahl mathematisch berechnet, in verschiedenen Builds des Terminals unterschiedliche Werte liefert? In der Version 399 werden beispielsweise 488143839 erzeugt, in der Version 416 dagegen 348186686.

Ich habe es bereits mehrfach überprüft - das Skript läuft mit denselben Parametern in verschiedenen Builds gleich.



Ihre Zahlen sind groß, vielleicht ist die Ursache ein Überlauf einer Integer-Variablen.
 
Hallo, können Sie mir helfen, einen Stop-Loss hinzuzufügen? Ich habe es selbst ausprobiert, der Stop-Loss erscheint nicht.
Dateien:
q163hud4n85.mq4  33 kb
 
moskitman:
Nein, Vadim, der Schreibtisch! Eine 512mb GForce 9600 Grafikkarte selbst.
32-Bit-Client-Betriebssysteme können nicht mehr als 3,5 GB Arbeitsspeicher verwenden (einige 3,25, dies hängt von der Art des Motherboard-Bios ab)
Dies liegt an der 32-Bit-Architektur und der Tatsache, dass 3,5 bis 4 GB Speicherplatz für die Adressierung von PCI-Geräten verwendet werden. Wenn Sie viele PCI-Geräte installiert haben, werden Sie weniger RAM "sehen" als Sie haben.
.
 
Zhunko:
Das hat man mir gesagt, aber trotzdem danke, Vadim.
 
sand:

Ihre Zahlen sind groß, vielleicht ist der Grund ein Überlauf einer Integer-Variablen.
Wissen Sie, wie man das vermeiden kann? Verwenden Sie keine Funktionen wie MathFloor(), MathSqrt() ...? Oder gibt es nichts, was man dagegen tun könnte? Ich möchte, dass es überall gleich zählt.
 
yosuf:
Oft fällt das Internet aus. Kann man den Neustart mit einer Software automatisieren? Oder was ist über sie bekannt? Gibt es eine Möglichkeit, zwei oder mehr ISPs gleichzeitig, also parallel, mit Strom zu versorgen? Vielen Dank im Voraus.

XmaksasX:

Erstellen Sie ein einfaches Textdokument und tragen Sie diesen Text ein

:LOOP
ping 8.8.8.8 | find "100%" && (rasdial /disconnect & rasdial "NAME IHRER VERBINDUNG" login pass)
ping -w 1000 -n 30 127.0.0.1

goto LOOP

save it and change the extension from *.txt to *.bat, roll it up and enjoy))

XmaksasX, vielen Dank für Ihren sehr klugen Rat, die Internetverbindung ist seit zwei Tagen nicht mehr ausgefallen, oder vielleicht habe ich es nicht bemerkt, da das obige Prinzip funktioniert. Früher hatte ich alle 10 Minuten, stündlich oder nachts Blackouts, noch trauriger bei der Arbeit, d.h. ohne jedes System. Jetzt ist es ein Segen, dass man auch mal richtig ausschlafen kann.

Eine andere Frage: Ist es möglich, ein echtes Konto gleichzeitig von zwei Computern aus zu verwalten, einem zu Hause und einem am Arbeitsplatz?

 

Hier ist ein Teil des Codes aus dem EA. Ich wollte die Idee zu implementieren, dass, wenn es eine Abweichung von der offenen Preis von sigma, dann schließen. in der Theorie, wenn Sie setzen sigma = 1*Point. Dann sollte der Expert Advisor immer mit Gewinn abschließen, weil die Abweichung immer bei 1*Punkt liegt. Eine andere Sache ist, dass es im realen Handel einen Spread gibt, so dass er Gewinn verliert, und im Strategietester gibt es keinen Spread, so dass er die ganze Zeit Gewinn machen sollte.

Ich glaube, hier liegt ein Fehler vor.

if (OrdersTotal()!=0)
    {
     OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
     
     if (OrderType()==OP_BUY)
     {
      if ((Bid-Open[0])>=SigmaHigh*Point) OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Red);
     }
      
     if (OrderType()==OP_SELL) 
     {
       if ((Open[0]-Ask)>=SigmaLow*Point) OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Green);
     }
    }
 
orb:

und es gibt keine Streuung im Tester


Es gibt eine Streuung im Tester. Genau das gleiche wie auf dem Diagramm, als der Test durchgeführt wurde.