Fehler, Irrtümer, Fragen - Seite 112

 
sandex:

Wer hat die Funktion OrderCheck verwendet.

Dies ist ein Konstrukt:

           MqlTradeRequest request;
           request.action=TRADE_ACTION_DEAL;
           request.symbol=_Symbol;
           request.volume=volume_exe;
           request.price=SymbolInfoDouble(_Symbol, SYMBOL_ASK);
           request.sl=0;
           request.tp=0;
           request.deviation=SymbolInfoInteger(_Symbol, SYMBOL_SPREAD)*2;
           request.type=ORDER_TYPE_BUY;
           request.type_filling=ORDER_FILLING_CANCEL;
           MqlTradeResult result;
           OrderCheck(request, result);
           if(OrderSend(request, result)==false)

Beim Kompilieren erhalte ich eine Fehlermeldung: 'result' - parameter conversion is not allowed.

Wenn Sie OrderCheck entfernen, wird alles normal kompiliert und die Position im Testgerät geöffnet.

Schauen Sie sich die Beschreibung der Funktion an. Hier steht etwas über die Antwortstruktur von MqlTradeCheckResult.
 
Yedelkin:
Schauen Sie sich die Beschreibung der Funktion an. Hier steht etwas über die Antwortstruktur von MqlTradeCheckResult.

Ich danke Ihnen vielmals.

 
Dmitriy2:

Hier ist, was es ist...

Es sollte die Gewinne aus den Geschäften ab dem angegebenen Datum zählen. Das Ergebnis sieht völlig anders aus, als es tatsächlich ist. Ich habe zum Beispiel 611 statt des Ergebnisses von 2000 erhalten. Ich habe begonnen, jeden Tag zu prüfen (kommentierte Zeile). Es gibt(!!) Tage, an denen das Ergebnis das gleiche ist, aber normalerweise ist es nicht das, was es sein sollte...(ich konnte keine Regelmäßigkeit finden). Und der Debugger produziert den gleichen exakten Zyklus für die gesamte Anzahl der Trades. Allerdings kann ich nur diese Anzahl von Geschäften nachvollziehen, da für alle anderen Variablen außer den int-Variablen keine Werte angezeigt werden (Ausdruck konnte nicht ausgewertet werden).

Ist dieser Code korrekt, und verwende ich den Debugger richtig...?

Die Transaktionsschleife sollte sein

for(i=0;i<HistoryDealsTotal();i=i++)
Verwenden Sie im Debugger die Funktion "Step in" (F11). Wenn Sie dann eine Funktion eingeben, in der eine Variable oder ein Ausdruck definiert ist, wird deren Wert angezeigt.
 
Valmars:

Der Transaktionszyklus sollte sein

Verwenden Sie im Debugger 'Schritt mit Eingabe' (F11). Wenn Sie dann eine Funktion eingeben, in der eine Variable oder ein Ausdruck definiert ist, wird deren Wert angezeigt.

Nehmen wir an, dass der Zyklus bei Null beginnt... Wo steht allerdings geschrieben, dass die Zahlen des Handels bei Null beginnen? Nach der Tatsache zu urteilen, dass wir jetzt 10611 haben (vorher waren es 611, statt etwa 2000), d.h. plus die Größe der ursprünglichen Einlage, bin ich mir da nicht sicher ... selbst wenn es null oder sogar eins ist, verstehe ich immer noch nicht, woher 10.000 kommen

Debugger, ich verstehe, F11...

 
Dmitriy2:

Sagen wir, der Zyklus beginnt bei Null... Wo steht allerdings geschrieben, dass die Zahlen des Handels bei Null beginnen? Nach der Tatsache zu urteilen, dass Sie jetzt 10611 bekommen (vorher waren es 611, statt etwa 2000), d.h. plus die Größe der ursprünglichen Kaution, bin ich mir da nicht sicher ... selbst wenn es null oder sogar eins ist, verstehe ich immer noch nicht, woher 10.000 kommen

Debugger, ich verstehe, F11...

Das erste Geschäft ist in der Regel eine Anzahlung. Es scheint, dass die Geschäfte in der Historie von 0 an gezählt werden. Wenn ich mich also nicht irre, ist das 0-te Geschäft eine Einzahlung.

Kann ich die Formel erläutern, nach der der Gewinn aus dem Geschäft berechnet wird?

PS

Wenn ich mich recht erinnere, sollte das Ergebnis wie folgt berechnet werden: Gesamtgewinn = Gewinn + Tauschprovision;


 
Kos:
Warum gibt SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT), Null zurück?
0 bedeutet keine Einschränkungen.
 
Interesting:

Die erste Transaktion ist in der Regel eine Einzahlung. Es scheint, dass Transaktionen in der Historie von 0 an gezählt werden. Wenn ich mich also nicht irre, ist die 0.

Können Sie die Formel angeben, mit der der Gewinn aus dem Geschäft berechnet wurde?

PS

Wenn ich mich recht erinnere, sollte das Ergebnis wie folgt berechnet werden: TotalProfit = Profit+Swap-Commission;


auf der letzten Seite im vollständigen Code

nach diesem Kodex, sollte die Kaution in keinem Fall berücksichtigt werden

die Provision ist auch plus - sie ist minus.

 
Yedelkin:

Zuerst beschwerte sich der Compiler, dass "#import "lbS7N_Servis.ex5"" fehlte.

Nachdem ich diese Zeile gelöscht hatte, gab er den Geist auf:

2010.08.28 22:19:51 Servis[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=6617010000 M1=1016990000
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) A=101699 B=101699 C=661701
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !

Als ich die Kontonummer im Code durch meine Kontonummer ersetzte, erhielt ich diese:

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=1016990000 M1=1016990000

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) A=101699 B=101699 C=101699

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !

MQ-Server, Build 316.

Ich danke Ihnen. Bei Ihnen funktioniert alles so, wie es sein sollte. Ich habe es noch nicht herausgefunden.
 
sergey1294:

und mein M1 passte nicht dazu.

Es bedeutet, dass Sie auch einen Fehler haben, aber weniger als ich.

Vielleicht sollten Sie es in der Verbindung des Programms mit dem System suchen.

Was für ein System haben Sie?

Ich habe einen core2duo 1.3 Ghz 64 Win7 HB Lizenz, 4GB ddr 2 RAM, bauen. 316

 
simpleton:

Und es gibt sogar drei einzigartige Situationen. Dies sind die entdeckten Fälle. Und wie viele unentdeckt?

Und bei diesem Stand der Dinge wird MetaQuotes in einem Monat die Meisterschaft 2010 starten?

Oh, wie viele "Wunder" der MetaTrader 5 für uns bereithält...

Die Gewinner werden diejenigen sein, deren Programme so viele Fehler enthalten, dass sie in Kombination mit kleineren Pannen im Programm eine solche Wirkung haben, dass niemand sie jemals einholen wird.