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

 

Kann jemand vorschlagen, installieren Sie das Plugin GetTickerHistory in MT-4, läuft, aber der Download nicht gehen, auf Windows 7 x64, ist es möglich, die externen Indizes auf andere Weise herunterladen.

Vielen Dank im Voraus.

 
001:
Es gibt eine Funktion zum Schließen einer Position nach Zeit.

Position wird geschlossen, aber OrderClose-Fehler 138 für jede Position ausgegeben

11:44:49 2000.01.10 07:00 Time+iLowest_old EURUSD,H1: open #1 sell 0.10 EURUSD at 1.02940 ok
11:44:49 2000.01.10 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138
11:44:49 2000.01.10 14:00 Time+iLowest_old EURUSD,H1: close #1 sell 0.10 EURUSD at 1.02940 at price 1.02230
11:44:49 2000.01.11 07:00 Time+iLowest_old EURUSD,H1: open #2 sell 0.10 EURUSD bei 1.02660 ok
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1: close #2 sell 0.10 EURUSD bei 1.02660 zum Preis 1.02890
11:44:49 2000.01.13 07:00 Time+iLowest_old EURUSD,H1: open #3 sell 0.10 EURUSD at 1.02860 ok

11:44:49 2000.01.13 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138 ,

Was kann das sein? Das Interessanteste ist, dass alles in einem anderen EA funktioniert.

Sie haben keine Verarbeitung der Returncodes des Handelsservers. Mit anderen Worten: Sie bearbeiten keine neuen Notierungen, und es fehlen nur 3 Punkte für den Schlupf:

int f=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,Red);

Oh, und die kleinen Dinge:

In einer umgekehrten Schleife schließen (sonst geht es daneben):

for(int i=OrdersTotal()-1; i>=0; i--)

Die Prüfung sollte für den Auftragstyp erfolgen, da sonst versucht wird, auch die schwebenden Aufträge zu schließen:

if(OrderType()>1) continue;
 
pu6ka:

Es gibt eine Funktion namens SetIndexDrawBegin(). Aber sie hat eine Besonderheit: Sie zählt von links nach rechts. Wie auch immer, setzen Sie sich in Init die Zeile SetIndexDrawBegin(0, Bars-p), und sehen Sie, ob dies das ist, was Sie brauchen.
Der Indikator liest die letzte Anzahl von Balken ab, er hat keine Probleme. Ich muss ein Fenster mit der Anzahl der Balken erstellen, in dem diese Bewegungen gezählt werden, und mit jedem Balken würde sich das Fenster verschieben, wobei der letzte Balken der letzten Berechnung ausgeschlossen und ein neuer hinzugefügt wird. Etwas wie "iMAOnArray" Glättung, aber Glättung ist nicht geeignet, weil es den Durchschnitt ausgibt, und ich brauche die Summe.
 
artmedia70:

Sie haben keine Möglichkeit, die Rückgabecodes des Handelsservers zu verarbeiten. D.h. Sie bearbeiten die Rückmeldung nicht, und die Abweichung von nur 3 Punkten fehlt:

Oh, und die kleinen Dinge:

In einer umgekehrten Schleife schließen (sonst geht es daneben):

Die Prüfung sollte nach Auftragsart erfolgen, da sonst versucht wird, auch die schwebenden Aufträge zu schließen:



Herzlichen Dank! Ich werde es jetzt versuchen. Eine weitere Frage. Ist die Rückfrage im Testgerät relevant? In meinem Testgerät schließt sie sich nicht.
 
001:

Herzlichen Dank! Ich werde es jetzt ausprobieren. Eine weitere Frage. Ist die Requota im Testgerät relevant? In meinem Testgerät schließt sie nicht.
Achten Sie dann auf den Preis im Handelsauftrag. Es wird zum Geldkurs geschlossen und zum Briefkurs verkauft. Sie haben dort keine Prüfung der Auftragsart und daher keine Preisauswahl - entweder Ask oder Bid
 

Hallo! Ich habe mehrere fast identische Multi-Timeframe-RSI-Indikatoren heruntergeladen. Sie haben alle das gleiche Problem. Ich setze den Indikator auf ein Diagramm mit einem niedrigeren Zeitrahmen und dem Wert eines älteren Zeitrahmens. Im Strategy Tester wird es bei bereits geladenen Daten gut dargestellt, aber wenn ich mit dem Testen beginne, hört es auf zu zeichnen. Darüber hinaus wird das Signal auf dem realen Chart gezeichnet, aber auf jedem Balken des realen Charts sind die Werte der Indikatorlinie unterschiedlich. D.h. das Rendering der bereits geladenen Daten ist treppenförmig, aber das Rendering ist für die geladenen Daten im Echtzeitmodus anders. Bitte teilen Sie mir mit, welche Änderungen vorgenommen werden müssen, damit der Indikator sowohl auf dem realen Chart im Echtzeitmodus als auch im Tester die gleiche Treppe zeichnet.

Der Code des Indikators befindet sich in der beigefügten Datei.

Ich habe einen sehr guten Expert Advisor für diesen Indikator und ich möchte Ihnen dafür danken.

Dateien:
mtf_rsi.mq4  3 kb
 
Hallo, der EA gibt beim Ändern den Fehler 1 "Kein Fehler, aber kein Ergebnis bekannt" aus.Fehler 1
void ControlBuylimit(){
  for(int i=OrdersTotal(); i>=0; i--){
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
      if(OrderMagicNumber()==Magic){
        if(OrderSymbol()==Symbol()){
          if(OrderType()==OP_BUYLIMIT){
            if(OrderComment()=="MA_1"){
              if(OrderOpenPrice()!=ma1){
                int cnt=0;
                bool res;
                while(cnt<=5){
                  res=OrderModify(OrderTicket(),NormalizeDouble(ma1,Digits),NormalizeDouble(ma1,Digits)-StopLoss*Point,NormalizeDouble(ma1,Digits)+TakeProfit*Point,0,clrNONE);
                  if(!res){
                    int answ=0;
                    answ=ERRORS(GetLastError(),OrderTicket());
                    if(answ==1){continue; cnt++;}
                    if(answ==2)break;
                  }
                  if(res)break;
                }
              }
            }
            if(OrderComment()=="MA_2"){
              if(OrderOpenPrice()!=ma2){
                int cnt=0;
                bool res;
                while(cnt<=5){
                  res=OrderModify(OrderTicket(),NormalizeDouble(ma2,Digits),NormalizeDouble(ma2,Digits)-StopLoss*Point,NormalizeDouble(ma2,Digits)+TakeProfit*Point,0,clrNONE);
                  if(!res){
                    int answ=0;
                    answ=ERRORS(GetLastError(),OrderTicket());
                    if(answ==1){continue; cnt++;}
                    if(answ==2)break;
                  }
                  if(res)break;
                }
              }
            }
          }
        }
      }
      
    }
  }
}
 
Forexman77:
Es ist kein Problem, den Indikator dazu zu bringen, die letzte Anzahl von Balken zu lesen. Ich muss ein Fenster mit der Anzahl der Balken erstellen, in dem diese Bewegungen gezählt werden, und mit jedem Balken würde sich das Fenster verschieben, wobei der letzte Balken der letzten Berechnung ausgeschlossen und ein neuer hinzugefügt wird. So etwas wie "iMAOnArray" Glättung, aber Glättung ist nicht geeignet, weil es den Durchschnitt ausgibt, und ich brauche die Summe.

Setzen Sie diesen Indikator auf M1, wenn neue Balken erscheinen, werden die Alligatorlinien auf der linken Seite "weggewischt". Brauchen Sie es?

Dateien:
 
Example2:
Hallo, der EA gibt beim Ändern den Fehler 1 "Kein Fehler, aber kein Ergebnis bekannt" aus.

Höchstwahrscheinlich ändern Sie mit dem alten Preis, der bereits in der Bestellung vorgeschrieben ist.
 
pu6ka:

Höchstwahrscheinlich wird der alte Preis, der bereits im Optionsschein vorgeschrieben ist, geändert.


Es gibt jedoch eine Prüfungif(OrderOpenPrice()!=ma2)