[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 462

 
rosomah:

Die EZV hat die Sperrfrist einseitig von 1-2% auf 15% erhöht. Ich habe sie zufällig entdeckt. Ich gehe davon aus, dass es auch noch andere Probleme geben kann, wie z. B. eine Erhöhung der Streuung, Einfrieren oder andere Änderungen. Hat jemand einen EA gesehen, der nach einer Änderung der Parameter Alert signalisiert? Ich werde eine schreiben müssen.

Meine Herren, welche anderen Daten als die, die ich in das Skript eingefügt habe, können von Maklerfirmen angefordert werden?

Vielleicht ist das ein normales Phänomen an Freitagen vor dem Wochenende... Sie haben immer noch einen von Gott gegebenen Anteil.

Alles sollte im Handelsabkommen stehen...

Ich habe mir Ihr Skript nicht angesehen, aber Alpari zum Beispiel erweitert den Spread bei den Nachrichten (vor dem Wochenende).

 
Roman.:

Freitags vor dem Wochenende mag das normal sein... Sie haben immer noch einen von Gott genehmigten Prozentsatz.

Alles sollte in Ihrem Handelsvertrag festgehalten werden...

Ich habe mir Ihr Skript nicht angesehen, aber Alpari zum Beispiel erweitert den Spread bei den Nachrichten (vor dem Wochenende).



Ich werde also einen EA mit allen möglichen Daten über meine Brokerfirma und mein Konto schreiben. Bei jeder Bewegung wird sofort Alarm ausgelöst.

Und ich kann die Höchstzahl an Aufträgen, die ich in meinem Maklerunternehmen platzieren darf, nicht finden. Warum sollte ich einfach 1000 schwebende Aufträge platzieren und sie dann automatisch löschen, sobald das Limit gefunden ist?

 
rosomah:


1. ich werde einen Berater schreiben, in den ich alle möglichen Daten über die Maklerfirma und das Konto eingeben werde. Bei jeder Bewegung wird sofort Alarm ausgelöst.

Ich kann die Höchstzahl der Aufträge, die ich in meinem Maklerunternehmen erteilen kann, nicht finden. Warum sollte ich einfach 1000 ausstehende Aufträge berechnen und sie dann automatisch löschen, wenn die Höchstzahl erreicht ist?

1) Ein Alert wird nicht helfen. Sie müssen diese Umgebungsparameter in den Codeabschnitt eingeben, der für die Ausführung der Handelskriterien zuständig ist, und wenn einer dieser Parameter seinen maximal zulässigen Wert überschreitet (den Sie festgelegt haben), müssen Sie eine entsprechende Entscheidung treffen (z. B. ein Geschäft ablehnen... - eine Handelsoperation durchführen).

2. Nein. Das können Sie nicht tun, IMHO - lesen Sie die Regeln und Handelsbedingungen. Wenn nicht, dann rufen Sie den technischen Support an und rufen Sie die Chefs vor Ort für ALLE diese Fragen zu Ihrer Art von Handelskonto an.

 

Hallo.

Ich habe den ganzen Tag an diesem Code gearbeitet - er gibt den Fehler 131 aus. Der Code sollte alle Marktaufträge durchgehen und bei jeder Umdrehung desselben Zyklus das Volumen der offenen Aufträge für das Symbol des ausgewählten Auftrags erneut auslesen. Wenn die Volumina der Kauf- und Verkaufspositionen für ein Symbol unterschiedlich sind, wird ein Sperrauftrag für das verbleibende Volumen eröffnet.

     int i;
     int ii;
     string SMB="";
     double Price=0;
     double PriceAsk=0;
     double PriceBid=0;
     double SchBuyLotsSMB=0;
     double SchSellLotsSMB=0;
     double MarketLotSMB=0;
     for (i=OrdersTotal()-1;i>=0;i--)
      {
       if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
         Alert ("Ошибка ",GetLastError()," выбора ордера!");
         Print ("Ошибка ",GetLastError()," выбора ордера!");
        }
       else
        {
         SMB=OrderSymbol();
         PriceAsk=MarketInfo(SMB,MODE_ASK);
         PriceBid=MarketInfo(SMB,MODE_BID);
         for (ii=OrdersTotal()-1;ii>=0;ii--)
          {
           if (!OrderSelect(ii, SELECT_BY_POS, MODE_TRADES))
            {
             Alert ("Ошибка ",GetLastError()," выбора ордера!");
             Print ("Ошибка ",GetLastError()," выбора ордера!");
            }
           else
            {
             if(OrderSymbol()==SMB)
              {
               if(OrderType()==OP_BUY)
                {
                 SchBuyLotsSMB=SchBuyLotsSMB+OrderLots();
                }
               if(OrderType()==OP_SELL)
                {
                 SchSellLotsSMB=SchSellLotsSMB+OrderLots();
                }
              }
            }
          }
         MarketLotSMB=SchBuyLotsSMB-SchSellLotsSMB;
         if (MarketLotSMB<0)
          {
           MarketLotSMB=MathAbs(MarketLotSMB);
           Price=PriceAsk;
           OPENORDER ("Buy",SMB,MarketLotSMB,Price);
          }
         else
          {
           if (MarketLotSMB>0)
           Price=PriceBid;
           OPENORDER ("Sell",SMB,MarketLotSMB,Price);
          }            
        }
       SMB="";
       Price=0;
       PriceAsk=0;
       PriceBid=0;
       SchBuyLotsSMB=0;
       SchSellLotsSMB=0;
       MarketLotSMB=0;        
      }

Bitte helfen Sie mir, den Grund zu finden. 131 - Ich habe gelesen, dass es mit einem Fehler bei der Volumenfindung zu tun hat. Aber ich kann es nicht sehen.

Vielen Dank im Voraus für die Antwort.

 
TarasBY:
Sie verwenden eine merkwürdige Schleife in der Auftragsschleife, ABER das ist das Recht des Autors, dann löschen Sie die Gesamtlose (SchBuyLotsSMB und SchSellLotsSMB) vor der zweiten Schleife.
Ich setze sie also auf Null.
 
nemo811:

Hallo.

Ich habe den ganzen Tag an diesem Code gearbeitet - er gibt den Fehler 131 aus. Der Code sollte alle Marktaufträge durchgehen und bei jeder Umdrehung desselben Zyklus das Volumen der offenen Aufträge für das Symbol des ausgewählten Auftrags erneut auslesen. Wenn die Volumina der Kauf- und Verkaufspositionen für ein Symbol unterschiedlich sind, wird ein Sperrauftrag für das verbleibende Volumen eröffnet.

Bitte helfen Sie mir, den Grund zu finden. 131 - Ich habe gelesen, dass es mit einem Fehler bei der Volumenfindung zu tun hat. Aber ich kann es nicht sehen.

Ich danke Ihnen im Voraus für Ihre Antwort.


Wo haben Sie den Schlupf? Vielleicht ist das der Grund dafür!
 
Übrigens funktioniert der Code korrekt, wenn die Aufträge für ein Symbol geöffnet werden und der EA selbst auf diesem Symbol ausgeführt wird. Wenn Aufträge für 2 oder mehr Paare offen sind, oder wenn der EA auf einem Symbol läuft, für das es keine Aufträge gibt, tritt ein Fehler auf.
 
borilunad:

Wo haben Sie den Schlupf? Vielleicht ist das der Grund dafür!

Was bedeutet das?

Sleep (1000);

?

Ich habe es ausprobiert - es funktioniert nicht.

 
nemo811:
So habe ich sie zurückgesetzt.
Ich habe es nicht sofort bemerkt. Als Option (ich würde es obligatorisch machen), machen Sie die Normalisierung der Partie Wert an die Token-Funktion übergeben.
 
TarasBY:
Ich habe es nicht sofort bemerkt. Als Option (ich würde es unbedingt tun), machen Sie die Normalisierung der Partie Wert an die Token-Funktion übergeben.
Es gab einen solchen Gedanken. Ich werde es jetzt versuchen. Ich danke Ihnen.