Wie schließe ich alle Aufträge mit Gesamtgewinn in Pips? - Seite 2

 
khasan kayumov:

Wie berechnen Sie den Gewinn in Punkten?

Bevor Sie löschen

                    for(pos = 0; pos < 100500; pos++) 
                    {
                        if(OrderSelect(pos, SELECT_BY_POS))
                        if(OrderType() == OP_BUY)
                        {
                            buy_profit_USD = buy_profit_USD + OrderProfit() + OrderSwap() + OrderCommission();

                            buy_profit_Point = buy_profit_Point+ ((Bid - OrderOpenPrice()) / Point);

                                
                        }
                    }

 
Evgeny Belyaev:

Ach, ja?

Ich gebe eine Bestellung auf, die vom Server abgelehnt wird. Ich erhalte die Fehlermeldung 130.

Was soll ich tun, und es gibt keine Position, es gibt nichts zu schließen. Ich kann nur löschen. Was sollte ich tun, oder mache ich etwas falsch?

Wollen Sie wirklich, dass ich Ihnen antworte?
 
Dmitry Fedoseev:
Wollen Sie wirklich, dass ich Ihnen antworte?

Nein, ich möchte nicht, dass sich das Thema in einen Aufruhr verwandelt.

 
Evgeny Belyaev:

Nein, ich möchte nicht, dass sich das Thema zu einem Flubbing entwickelt.


Dann sollten Sie es nicht aufplustern.

 
Evgeny Belyaev:

Ich handle auf dem Markt, nicht auf MT, MT ist nur eine Anwendung, die den Namen der Funktionen nicht korrekt definiert. Position - kaufen, setzen, Verteidiger, Stürmer...

Bestellung - Bestellung aufgeben, kaufen, verkaufen, Verteidiger, Stürmer, Mittelfeldspieler...

Deal...


Wir sind jetzt auf dem Forum von MT4. Und die Frage bezieht sich speziell auf MQL4. Hier ist es also durchaus angebracht, die in MT4 und MQL4 eingeführte Terminologie zu verwenden. Schließlich beginnen auch Funktionen der Buchhaltung, die als Trades (konstituierende Positionen) bezeichnet werden, mit dem Wort "Order": OrderSend(), OrderClose(), OrderModify().

 
Ihor Herasko:

Schließlich beginnen auch die Funktionen, die an der Börse die so genannten Trades (Positionsbestandteile) abrechnen, mit dem Wort "Order": OrderSend(), OrderClose(), OrderModify().

Die Funktionen werden zweifellos als solche bezeichnet, in MT4 ist die Bezeichnung der Funktionen nicht korrekt. Das Terminal ist veraltet, daher sind die Namen nicht korrekt.

Wie können wir uns gegenseitig verstehen?

Wir sprechen über dieselbe Sache. Wenn Sie es einen Kaufauftrag nennen, werde ich es eine Position nennen.

Wie können wir uns gegenseitig verstehen?

 
Evgeny Belyaev:

Die Funktionen heißen zweifellos so, in MT4 sind die Namen der Funktionen nicht ganz korrekt. Das Terminal ist veraltet, deshalb sind die Namen nicht korrekt.

Wie können wir uns gegenseitig verstehen?

Wir sprechen über dieselbe Sache. Wenn Sie es einen Kaufauftrag nennen, werde ich es eine Position nennen.

Wie können wir uns gegenseitig verstehen?


Ich bin es gewohnt, die Terminologie des Terminals zu verwenden. Das mag falsch sein, aber es hilft mir beim Lesen der Dokumentation. Im MT4: Market Orders und Pending Orders. Im MT5: Trades, Positionen und Aufträge. Auf anderen Plattformen: Trades, Positionen, Trades, Aufträge.

 
Mikhail Sergeev:

                    for(pos = 0; pos < 100500; pos++) 
                    {
                        if(OrderSelect(pos, SELECT_BY_POS))
                        if(OrderType() == OP_BUY)
                        {
                            buy_profit_USD = buy_profit_USD + OrderProfit() + OrderSwap() + OrderCommission();

                            buy_profit_Point = buy_profit_Point+ ((Bid - OrderOpenPrice()) / Point);

                                
                        }
                    }

Was ist die Zahl 100500? Warum ist das so und nicht OrdersTotal()?

 
khasan kayumov:

Wie berechnen Sie den Gewinn in Pips?

Bevor Sie löschen

//+------------------------------------------------------------------+
void OnStart()
  {
  double p;
   int i,pr=0;

   for(i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
        p=MarketInfo(OrderSymbol(), MODE_POINT);
         if(OrderType()==OP_BUY)
           {
            pr+=int((MarketInfo(OrderSymbol(), MODE_BID)-OrderOpenPrice())/p);
           }
         if(OrderType()==OP_SELL)
           {
            pr+=int((OrderOpenPrice()-MarketInfo(OrderSymbol(), MODE_ASK))/p);
           }
        }
     }   
   Alert( "суммарный профит открытых позиций в пунктах = ",pr); 
  }
//+------------------------------------------------------------------+

Das geht so.

 
Ihor Herasko:

Ich bin es gewohnt, die Terminologie des Terminals zu verwenden. Es mag falsch sein, aber es ist sehr hilfreich beim Lesen der Dokumentation. Im MT4: Market Orders und Pending Orders. Im MT5: Trades, Positionen, Aufträge. Auf anderen Plattformen: Trades, Positionen, Trades, Aufträge.


Was wäre, wenn ich keinen Hinweis auf das Terminal gegeben hätte? Die Terminologie sollte plattformübergreifend sein. Es wird keine Probleme geben, die Informationen zu verstehen.

Ich verstehe Ihren Standpunkt, ich bin tolerant, er ist durch die Bezeichnung der Funktionen gerechtfertigt.

Wenn Sie sich mit 5 Händlern treffen, verwendet einer Quickquick, ein anderer MT4, der dritte 5-Rouble, der vierte Ninja und der letzte ein Webterminal.

Wie kommen wir auf einen gemeinsamen Nenner und wie bestimmen wir, was eine Position und was ein Auftrag ist?