Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 769

 
Vitaly Muzichenko:

Danke für die Antwort, aber ich habe keine Ahnung, wie ich es zum Laufen bringe.

Ich werde ein letztes Mal versuchen, die Hand auszustrecken... Ich habe kein Konto mit solchen Tools in das Problem angegeben, aber hier ist ein Skript arbeiten auf Forex. Das Ergebnis stimmt mit den Werten überein, die in diesem Bildschirmfoto als Hinweise erscheinen

Forum für Handel, automatisierte Handelssysteme und Strategietests

FAQ von Anfängern MQL5 MT5 MetaTrader 5

Vitaly Muzichenko, 2017.07.26 23:56

Ich habe eine Kaufpartie offen, und wenn ich den Take-Profit einstelle, rechnet das Terminal ihn in Dollar um, weil mein Konto auf Dollar lautet,

Aber wenn ich ihn mit der Formel (close_price-open_price)*Lots*TickPrice/TickSize berechne, dann wird mein Take-Profit-Betrag in Rubel berechnet.

Auf dem SchaubildSBRF-9.17

Wenn wir den Rubel durch den Dollarkurs 174,99/USDRUR = $2,93 teilen, erhalten wir den Gewinn in Dollar.

Wie kann man es programmatisch schreiben und selbst berechnen lassen?

/********************Script program start function*******************/
void OnStart()
{
 for(int i = 0; i < PositionsTotal(); i++)
  {
   ulong positionTicket = PositionGetTicket(i);
   string positionSymbol = PositionGetString(POSITION_SYMBOL);
   ENUM_POSITION_TYPE positionType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
   double positionTP = PositionGetDouble(POSITION_TP);
   double positionOpen = PositionGetDouble(POSITION_PRICE_OPEN);
   double point = SymbolInfoDouble(positionSymbol, SYMBOL_POINT);
   int profitPoint = int(fabs(positionOpen-positionTP)/point);
   double positionProfit = PositionGetDouble(POSITION_PROFIT);
   string symbolCurrencyProfit = SymbolInfoString(positionSymbol, SYMBOL_CURRENCY_PROFIT);
   int currentProfit = positionType == POSITION_TYPE_SELL
    ? int((positionOpen-PositionGetDouble(POSITION_PRICE_CURRENT))/point)
    : int((PositionGetDouble(POSITION_PRICE_CURRENT)-positionOpen)/point);
   Print("PositionSymbol ", positionSymbol);
   Print("SymbolCurrencyProfit ", symbolCurrencyProfit);
   Print("PositionTP ", DoubleToString(positionTP, (int)SymbolInfoInteger(positionSymbol, SYMBOL_DIGITS)));
   Print("PositionOpen ", DoubleToString(positionOpen, (int)SymbolInfoInteger(positionSymbol, SYMBOL_DIGITS)));
   Print("PositionProfit ", DoubleToString(positionProfit, 2));
   Print("ProfitPoint ", profitPoint);
   Print("CurrentProfit ", currentProfit);
   Print("ИТОГО ", positionProfit/currentProfit*profitPoint);
  }
   
}/*******************************************************************/

Ich habe 2 Stellen zu besetzen. Hier ist das Ergebnis des Skripts

2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionSymbol EURGBP
2017.07.27 13:30:48.517 posi (EURUSD,M15)       SymbolCurrencyProfit GBP
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionTP 0.88697
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionOpen 0.89197
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionProfit 14.47
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ProfitPoint 500
2017.07.27 13:30:48.517 posi (EURUSD,M15)       CurrentProfit 109
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ИТОГО 66.37614678899082
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionSymbol EURJPY
2017.07.27 13:30:48.517 posi (EURUSD,M15)       SymbolCurrencyProfit JPY
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionTP 130.940
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionOpen 130.440
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionProfit -0.90
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ProfitPoint 500
2017.07.27 13:30:48.517 posi (EURUSD,M15)       CurrentProfit -9
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ИТОГО 50.0


ABER!!! Wenn die Position geschlossen wird, kann leider niemand erraten, wie der Kurs der Gewinnwährung gegenüber der Einzahlungswährung sein wird. In dieser Hinsicht ist es unmöglich, einen absolut genauen Wert zu ermitteln. Nun, es gibt keine Möglichkeit, in die Zukunft zu schauen.

 
Vitaly Muzichenko:

Nein, zur Berechnung von Gewinn/Verlust vor der Eröffnung einer Position, aber in der Währung der Einlage, nicht des Instruments

Warum müssen Sie den Gewinn/Verlust in Ihrem Fall kennen, nicht um Risiken zu kontrollieren? - Ich war nur neugierig - die Währung der Kaution ist klar, obwohl nicht klar ist, unter welchen realen Bedingungen sie verwendet werden würde.
 
Alexey Viktorov:

Ich werde versuchen, ein letztes Mal die Hand auszustrecken... Ich habe kein Konto bei den im Problem genannten Tools, aber hier ist ein Skript, das in Forex funktioniert. Das Ergebnis stimmt mit den Werten überein, die als Hinweis angezeigt werden, wie in diesem Bildschirmfoto


Ich habe 2 Stellen zu besetzen. Hier ist das Ergebnis der Skriptarbeit


ABER!!! Wenn die Position geschlossen wird, kann leider niemand erraten, wie der Kurs der Gewinnwährung gegenüber der Einzahlungswährung sein wird. In dieser Hinsicht ist es unmöglich, einen absolut genauen Wert zu ermitteln. Nun, es gibt keine Möglichkeit, in die Zukunft zu schauen.

Das Skript zeigt Folgendes an:

2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionSymbol SBRF-9.17
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        SymbolCurrencyProfit RUR
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionTP 16777
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionOpen 16677
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionProfit 1.07
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        ProfitPoint 100
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        CurrentProfit 64
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        ИТОГО 1.671875
 
Vitaly Muzichenko:

Das Skript zeigte dies an:

Vitaly, du kannst es selbst herausfinden... Das Prinzip ist einfacher als 3 Rubel...

PositionGetDouble(POSITION_PROFIT);

Gibt den Gewinn der Position in der Währung der Einlage zurück. Wenn wir diesen Wert durch die Anzahl der Punkte zwischen dem Eröffnungs- und dem aktuellen Kurs teilen, erhalten wir den Punktwert in der Einzahlungswährung... Es bleibt nur noch, den Wert mit der Anzahl der Pips von der Eröffnung bis zum Tp zu multiplizieren und das war's... Aber da ich dazu nicht in der Lage und zu faul bin, ein neues Konto zu eröffnen, müssen Sie es selbst herausfinden. Aber Sie wissen einfach nicht, was Sie bekommen sollen, wie können Sie wissen, ob das Ergebnis richtig ist oder nicht? Möglicherweise müssen Sie einige zusätzliche Werte ausdrucken, um sie zu verstehen. Was gilt als Klausel? Ich weiß nicht, vielleicht muss das irgendwie berücksichtigt werden. Oder wird der Umfang des Standardvertrags in irgendeiner Weise berücksichtigt... Ich weiß es nicht.

 

Wie man die graue Grafik versteht


im normalen Bildmodus


 

In MT4 zeigt man mit der Maus auf den Chart und man kann sehen, welcher Punkt es ist - aber hier ist das Bild statisch - hässlich.

 
Wie kann ich die Optimierung anhand eines bestimmten Indikators (Gewinn/Verlust/fv) darstellen?
 
Hallo zusammen. Ich habe ein Problem: Ich habe Geld auf mein MQL5-Konto hochgeladen und die MetaTrader 5-Anwendung heruntergeladen, aber ich kann das Geld nicht darauf übertragen, um mit dem Handel zu beginnen. Ich brauche Hilfe.
 
Minora125:
Guten Tag an alle. Ich habe ein Problem: Ich habe Geld auf mein MQL5-Konto hochgeladen und auch die MetaTrader 5-Anwendung heruntergeladen, aber ich kann das Geld nicht darauf übertragen, um mit dem Handel zu beginnen. Ich brauche Hilfe.

MQL5 ist kein Maklerunternehmen, es erlaubt Ihnen nicht, auf einem echten Konto zu handeln. Für überwiesenes Geld können Sie Dienste nutzen: Freelance, Market, Cloud.

Senden Sie Ihre Anfrage an den Service Desk (ein Link befindet sich in Ihrem Profil) und bitten Sie um eine Rückerstattung des zu Unrecht überwiesenen Geldes.

 

Nach einem Durchlauf im Tester öffnet sich ein Diagramm mit Trades, wie kann ich das ausschalten?