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

 
hoz:

Auf beiden Seiten gibt es einen Stapel ausstehender Aufträge. Wenn einer der schwebenden Aufträge ausgelöst wird, wird auf der anderen Seite der äußerste schwebende Auftrag gelöscht. Im Screenshot habe ich gezeigt, was passiert, wenn ein Kaufauftrag ausgelöst und der äußerste Short-Auftrag gelöscht wird.

Ich habe es getan, wenn eine Position ausgelöst hat. Was aber, wenn nicht nur einer, sondern gleich 3 auf einmal auslösen? D.h., ich sollte irgendwie die Anzahl der ausgelösten schwebenden Aufträge schätzen und die schwebenden Aufträge des entgegengesetzten Signals schließen.

Wie kann man das am besten tun? Vielleicht hat jemand diesen Punkt bereits umgesetzt? Ich habe mich nicht entschlossen, diese Frage in einem separaten Zweig zu stellen, denn vielleicht wird es für diejenigen, die diesen Punkt besser verstehen, sehr einfach sein.

Wenn wir nur die niedrigste Position löschen wollten, könnten wir eine Position finden, die zum niedrigsten Preis eröffnet wurde, und sie in der Schleife löschen. Aber was sollen wir tun, wenn es mehrere Positionen gibt? Ich würde mich freuen, die Meinung derjenigen zu hören, die bereits Erfahrungen mit Bestellrastern haben.

Victor, wenn der unterste Eintrag gelöscht wird, wird der nächste, der der unterste geworden ist, unter der gleichen Bedingung ebenfalls gelöscht. Schnell für Sie, und die Hauptsache für das Programm ist nicht auf der gleichen Zecke zu sein, aber das ist OK! Versuchen Sie es!
 

Hier ist eine Frage - hat jemand die Geschwindigkeit des MT-5-Testers auf verschiedenen Prozessoren getestet?

Wenn ja, geben Sie mir bitte einen Link. Oder sagen Sie mir wenigstens, welcher der Spitzenprozessoren von AMD und INTEL in Bezug auf die Geschwindigkeit besser ist?

Natürlich sprechen wir über Desktops, nicht über Laptops oder Supercomps. :-)

 
DruZhban:

Hier ist eine Frage - hat jemand Geschwindigkeitstests mit verschiedenen Prozessoren auf dem MT-5 Testgerät durchgeführt?

Wenn ja, geben Sie mir bitte einen Link. Oder sagen Sie mir wenigstens, welcher der Spitzenprozessoren von AMD und INTEL in Bezug auf die Geschwindigkeit besser ist?

Natürlich sprechen wir über Desktops, nicht über Laptops oder Supercomps. :-)


alles über fünf ist hier :https://www.mql5.com/ru/forum
 
borilunad:
Victor, wenn der unterste Eintrag gelöscht wird, wird der nächste Eintrag, der der unterste geworden ist, unter der gleichen Bedingung gelöscht. Die Schnelligkeit ist Ihnen überlassen; das Wichtigste für das Programm ist, dass es nicht gleich tickt, aber das ist in Ordnung! Versuchen Sie es!


Boris, das ist verständlich. Ich habe gerade über Folgendes nachgedacht. Ich denke, wir müssen eine Schleife von 0 bis zu einer Variablen erstellen, die den Wert der ausgelösten Aufträge speichert, und bei jedem Durchlauf der Schleife die Funktion zum Auffinden des gewünschten Auftrags ausführen und sie dann schließen. Ich bin mir nicht sicher, wie ich es beheben kann, dass dieser Vorgang zum jetzigen Zeitpunkt ausgeführt wird.

Es wäre übrigens besser, mit der Standardsuchfunktion nach den extremsten Aufträgen zu suchen und dann die Werte für den Zeitpunkt der Auftragseröffnung und den Preis an die Funktion zum Schließen der Aufträge zu übergeben, oder?

 
hoz:

Auf beiden Seiten gibt es einen Stapel ausstehender Aufträge. Wenn einer der schwebenden Aufträge ausgelöst wird, wird auf der anderen Seite der äußerste schwebende Auftrag gelöscht. Im Screenshot habe ich gezeigt, was passiert, wenn ein Kaufauftrag ausgelöst und der äußerste Short-Auftrag gelöscht wird.

Ich habe es getan, wenn eine Position ausgelöst hat. Was aber, wenn nicht nur einer, sondern gleich 3 auf einmal auslösen? D.h., ich sollte irgendwie die Anzahl der ausgelösten schwebenden Aufträge schätzen und die schwebenden Aufträge des entgegengesetzten Signals schließen.

Wie kann man das am besten tun? Vielleicht hat jemand diesen Punkt bereits umgesetzt? Ich habe mich nicht entschlossen, diese Frage in einem separaten Zweig zu stellen, denn vielleicht wird es für diejenigen, die diesen Punkt besser verstehen, sehr einfach sein.

Wenn wir nur die niedrigste Position löschen wollten, könnten wir eine Position finden, die zum niedrigsten Preis eröffnet wurde, und sie in der Schleife löschen. Aber was sollen wir tun, wenn es mehrere Positionen gibt? Nun, ich würde mich freuen, die Meinung derjenigen zu hören, die Erfahrung im Umgang mit Auftragsrastern haben


Wenn ich mich nicht irre, versuche ich, mit Hilfe einiger Paare von Pending Orders einen guten Zug zu machen.

Löschungsalgorithmus :

1) Suchen Sie in der Liste der offenen Stellen und schreiben (merken) Sie sich die Stellen.

2) Suchen Sie in der Liste der eingestellten schwebenden Aufträge nach einem passenden "slow" aus der Liste der Posen, wenn sie übereinstimmen - löschen Sie den schwebenden Auftrag.

Und keine Schmerzen mehr.

Zum Beispiel, wenn Sie ein alter Programmierer sind, oder wenn Sie keine Ahnung vom Programmieren haben, oder wenn es zu modisch ist, alles anders zu machen? ??? а ?

 
Hier sind die Quell-Indikatoren, bitte helfen Sie mit der Ausgabe von Werten (zum Beispiel durch den Kommentar) (in Zahlen) gleich den Preis für jeden Indikator in Echtzeit (Ich weiß, icustom, aber ich kann nicht verstehen, welche Parameter Sie angeben müssen, um genaue Werte ausgegeben werden, dann Ausgabe 0, dann die Zahl größer als 2million)
Dateien:
zigzag.zip  4 kb
 
DruZhban:

Hier ist eine Frage - hat jemand die Geschwindigkeit des MT-5-Testers auf verschiedenen Prozessoren getestet?

Wenn ja, geben Sie mir bitte einen Link. Oder sagen Sie mir wenigstens, welcher der Spitzenprozessoren von AMD und INTEL in Bezug auf die Geschwindigkeit besser ist?

Natürlich sprechen wir über Desktops, nicht über Laptops oder Supercomps. :-)



Bei einem 5er nutzen Sie die Clouds zum Testen und vergessen Sie Ihren Prozessor, auch wenn er schnell ist und mehrere Kerne hat. Das beschleunigt das Ganze um ein Vielfaches. Aber Sie müssen einen Pfennig bezahlen. In der Tat gab es hier schon einmal eine Diskussion
 

Guten Tag an alle!

Meine Frage scheint einfach zu sein, aber ich habe alle Artikel durchforstet, konnte aber keine Antwort finden - wie funktioniert der Operator return(-1)? An wen wird die Kontrolle weitergegeben? Zum Beispiel in diesem Code:

int start()
{
    //---- Запоминаем значения индикатора для дальнейшего анализа
    //---- Обратите внимание - используем 1-й и 2-й бары. Это даёт задержку в 1 бар 
    //---- (т.е. сигнал появится позже), но защищает от многочисленных открытий и закрытий
    //---- позиций в течении бара
    double MACD_1 = iMACD( Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1 );
    double MACD_2 = iMACD( Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 2 );
 
    int _GetLastError = 0, _OrdersTotal = OrdersTotal();
    //---- перебираем все открытые позиции
    for ( int z = _OrdersTotal - 1; z >= 0; z -- )
    {
        //---- если при выборе позиции возникла ошибка, переходим к следующей
        if ( !OrderSelect( z, SELECT_BY_POS ) )
        {
            _GetLastError = GetLastError();
            Print( "OrderSelect( ", z, ", SELECT_BY_POS ) - Error #", _GetLastError );
            continue;
        }
 
        //---- если позиция открыта не по текущему инструменту, пропускаем её
        if ( OrderSymbol() != Symbol() ) continue;
 
        //---- если MagicNumber не равен _MagicNumber, пропускаем эту позицию
        if ( OrderMagicNumber() != _MagicNumber ) continue;
 
        //---- если открыта БАЙ-позиция,
        if ( OrderType() == OP_BUY )
        {
            //---- если МАКД пересёк 0-ю линию вниз,
            if ( NormalizeDouble( MACD_1, Digits + 1 ) <  0.0 && 
                  NormalizeDouble( MACD_2, Digits + 1 ) >= 0.0    )
            {
                //---- закрываем позицию
                if ( !OrderClose( OrderTicket(), OrderLots(), Bid, 5, Green ) )
                {
                    _GetLastError = GetLastError();
                    Alert( "Ошибка OrderClose № ", _GetLastError );
                    return(-1);
                }
            }
            //---- если сигнал не изменился, выходим - пока рано открывать новую позицию 

sonst return(0);

Mit Null in Klammern und ohne Klammern scheint alles klar zu sein. Aber was ist mit (-1)?

Ich danke Ihnen für Ihre Antwort. :)

 
hoz:


Boris, das macht Sinn. Ich habe gerade über Folgendes nachgedacht. Ich denke, wir sollten eine Schleife von 0 bis zu einer Variablen bilden, die den Wert der ausgelösten Aufträge speichert, und die Funktion ausführen, die nach dem gewünschten Auftrag sucht und ihn dann bei jeder Iteration der Schleife abschließt. Ich bin mir aber nicht ganz sicher, wie ich es anstellen soll, dass dieses Verfahren derzeit ausgeführt wird.

Übrigens ist es besser, mit der Standardsuchfunktion nach den extremsten Aufträgen zu suchen, und dann den offenen Zeitwert und den Preis an die Funktion zum Schließen der Aufträge zu übergeben, oder?

Victor, ich meine, wenn der schwebende Auftrag gelöscht wird, ist er bereits in der Historie, und wenn eine andere Position eröffnet wird, wird ein anderer schwebender Auftrag ebenfalls unter der gleichen Bedingung gelöscht, weil wir die Positionen, die wir haben, überprüfen! Und wie es funktioniert, sehen Sie sich die Protokolle an! Dann wirst du sehen, ob es richtig oder falsch ist!
 
Hallo zusammen. Dies ist eine ernste und dringende Angelegenheit, und ich habe überall im Internet nachgeschaut, wie man so sagt... Ich habe beschlossen, MT4 für eine lange Zeit zu verwenden, ich habe es für 3 Tage verwendet. Ich habe eine Weile versucht, ihn zu benutzen, und es schien mir, als wäre es das erste Mal, und ich kam mit den Einstellungen durcheinander und der Browser vergaß die von mir besuchten Websites. Ich dachte, es ist nichts Ernstes, aber auf einmal gehe ich zu MT und ich sehe 4 H4 Charts mit einem neuen System und ich sehe den falschen Preis, ich vergleiche es mit dem StartFX 2, ich öffne Zeitrahmen H1 und D1 und ich warte... Ich warte schon seit einer Stunde und es wird Jahr für Jahr aktualisiert, aber das tut es nicht. "Nun, installieren Sie es neu und das war's", sagen Sie, und ich sage Ihnen: "Scheiß drauf". "Laden Sie also einen Indikator für ein Software-Update von wer weiß was für einer Website herunter" - Sie fragen, und ich sage Ihnen: "Scheiß drauf, zweimal". Ich will wirklich weiter Geld verdienen und die Computerhilfe mit 1 erwürgen und dann werden wir sehen :-)
Grund der Beschwerde: