Fehler, Irrtümer, Fragen - Seite 2687

 
Andrey Dik:

hier.

Und auch der matte Berechnungsmodus.

Gibt es auch dort eine 100-Mio-Grenze?

 
Andrey Khatimlianskii:

Gibt es auch dort eine 100-Mio-Grenze?

auch

 
Andrey Kaunov:

Im Allgemeinen hat der Makler meine Frage hartnäckig aus dem Forum gelöscht. Nach dem dritten Mal antworteten sie mit irgendeinem Unsinn in meiner persönlichen Nachricht:

Ich habe keine Antwort vom Makler erhalten, aber ich bin mir nicht sicher, wie ich antworten soll.


P.S. Sie haben meinen Beitrag in einem Thread hinterlassen, aber keine Antwort oder Verabschiedung.

https://forum.alpari.com/index.php?/topic/

Ich handle mit demselben Broker. Ich stehe vor dem gleichen Problem. Der Unterschied zwischen Währungen und Gold (wie auch Indizes) liegt in der Eigenschaft SYMBOL_TRADE_MODE.

Für Währungen SYMBOL_TRADE_MODE = SYMBOL_CALC_MODE_FOREX und für Metalle und Indizes SYMBOL_TRADE_MODE = SYMBOL_CALC_MODE_CFDLEVERAGE.

Es scheint, dass dieser Broker oder die Plattform für den SYMBOL_CALC_MODE_CFDLEVERAGE-Modus die Eigenschaften SYMBOL_TRADE_TICK_VALUE_PROFIT und SYMBOL_TRADE_TICK_VALUE_LOSS nicht korrekt berechnet

Sie müssen also ein wenig mehr in die Hocke gehen, um die Symbole im Modus SYMBOL_CALC_MODE_CFDLEVERAGE zu berechnen. Ich verwende die Formel aus der Dokumentation

Gewinn: (Schlusskurs - Eröffnungskurs) * Kontraktgröße*Lots

.

Hier ein Beispiel für die Funktion, die bei diesem Broker das Positionsvolumen nach dem Eröffnungskurs, dem Stop-Loss-Kurs und dem maximalen Verlust in der Kontowährung berechnet. Bei Alpari funktioniert es einwandfrei, bei anderen Brokern habe ich es noch nicht überprüft.

double calcVolume(double sl, double price, double maxLoss){
   ENUM_SYMBOL_CALC_MODE cm = si.TradeCalcMode();       // si - внешняя переменная CSymbolInfo из стандартной библиотеки
   double priceDiff = MathAbs(price - sl); 
   double ticks = priceDiff/si.Point();         
   double lots;
   string convertSymbol;
   string accountCurrency = AccountInfoString(ACCOUNT_CURRENCY);
   Print("SL ticks: ", ticks);
   switch(cm) {
      case SYMBOL_CALC_MODE_FOREX:      
         // это для валютных пар
         lots = maxLoss / ticks / si.TickValueLoss();
         break;
      case SYMBOL_CALC_MODE_CFDLEVERAGE: 
         // а эти танцы с бубном для металлов и индексов
         lots = maxLoss / priceDiff / si.ContractSize();
         if (si.CurrencyProfit() != accountCurrency) {
            // валюту прибыли конвертируем в валюту депозита
            convertSymbol = si.CurrencyProfit() + accountCurrency + SymbolSuffix;
            double convert = SymbolInfoDouble(convertSymbol, SYMBOL_BID);
            if (convert != 0) {
               Print("Convert currency1 to ", convertSymbol, " convert bid: ", convert);            
               lots = lots / convert;
            }
            else {
               convertSymbol = accountCurrency + si.CurrencyProfit() + SymbolSuffix;
               convert = SymbolInfoDouble(convertSymbol, SYMBOL_ASK);
               Print("Convert currency2 to ", convertSymbol, " convert ask: ", convert);            
               lots = lots * convert;
            }
         }
         break;
      default:
         Print("ERROR need support calc for: ", EnumToString(cm));
         lots = 0;
         break;
   }
   double floorLots = MathFloor(lots / si.LotsStep()) * si.LotsStep();
   Print("raw lots: ", lots, ", floorLots: ", floorLots, " diff: ", NormalizeDouble(100*floorLots/lots, 2), "%");
   return floorLots;
}
 
Alexey Rassvetnyy:

Die Gewinne/Verluste im Tooltip für Buy-Stop-Limit-Orders und für Sell-Stop-Limit-Orders werden falsch berechnet.

Meine Herren, MQ, ist der beschriebene Defekt behoben worden? Erwarten wir, dass dies in der nächsten Version behoben wird?

Link zum Originalbeitrag über den Defekt.

https://www.mql5.com/ru/forum/1111/page2670#comment_15391563

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2020.03.11
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
Andrey Dik:

auch

Dann Ärger.

 
Das steht im Logbuch.
2020.03.29 20:58:28.061 SymbolClone (EURUSD,M1) Unknown runtime error in 'SymbolClone.mq5' (1,1)

Um zu spielen, starten Sie im Debug-Modus und erreichen Sie einen Haltepunkt. Dann in Terminal (nicht ME) Profil ändern - SHIFT+F5.

 
Alexey Rassvetnyy:

Handel mit demselben Broker. Ich stand vor dem gleichen Problem. Der Unterschied zwischen Währungen und Gold (wie auch Indizes) liegt in der Eigenschaft SYMBOL_TRADE_MODE.

Für Währungen SYMBOL_TRADE_MODE = SYMBOL_CALC_MODE_FOREX und für Metalle und Indizes SYMBOL_TRADE_MODE = SYMBOL_CALC_MODE_CFDLEVERAGE.

Es scheint, dass dieser Broker oder die Plattform für den SYMBOL_CALC_MODE_CFDLEVERAGE-Modus die Eigenschaften SYMBOL_TRADE_TICK_VALUE_PROFIT und SYMBOL_TRADE_TICK_VALUE_LOSS nicht korrekt berechnet

Sie müssen also einige zusätzliche Berechnungen durchführen, um die Symbole im Modus SYMBOL_CALC_MODE_CFDLEVERAGE zu berechnen. Ich verwende die Formel aus der Dokumentation

Gewinn: (Schlusskurs - Eröffnungskurs) * Kontraktgröße*Lots

.

Hier ein Beispiel für die Funktion, die bei diesem Broker das Positionsvolumen nach dem Eröffnungskurs, dem Stop-Loss-Kurs und dem maximalen Verlust in der Kontowährung berechnet. Bei Alpari funktioniert es korrekt, bei anderen Brokern habe ich es noch nicht überprüft.


Das ist natürlich großartig. Aber warum muss ich den schweren Weg gehen, wenn ich die Standardfunktion TICK VALUE verwenden kann und sollte?

Vielleicht werden die Entwickler diesem Fehler noch Aufmerksamkeit schenken.

Alexey Rassvetnyy:

Meine Herren, Vertreter der Firma MQ, ist dieser Fehler behoben worden? Erwarten Sie eine Korrektur in der nächsten Version?

Link zum Originalbeitrag über den Defekt.

https://www.mql5.com/ru/forum/1111/page2670#comment_15391563

Ich schließe mich der Frage an.

Hier ist mein ursprünglicher Beitraghttps://www.mql5.com/ru/forum/351/page4#comment_15429966
Расчет TickValue и прибыли
Расчет TickValue и прибыли
  • 2010.09.26
  • www.mql5.com
На межбанке Equity постоянно меняется, если вы открыли и закрыли позицию с валютой прибыли не равной валюте счета (например, на USD-счете совершили сделку на USDJPY).
 
Andrey Khatimlianskii:

Dann Ärger.

Für Millisekunden-Aufgaben macht es keinen Sinn, auf Agenten zu optimieren, es ist besser, alles manuell und nicht auf mql zu machen. Die Einschränkung ist also auf jeden Fall sinnvoll, es ist nur schlecht, dass sie implizit ist

 
Andrei Trukhanovich:

Für Millisekunden-Aufgaben macht es keinen Sinn, auf Agenten zu optimieren, es ist besser, alles manuell und nicht auf mql zu tun. Die Einschränkung ist also auf jeden Fall sinnvoll, es ist nur schlecht, dass sie implizit ist.

Selbst wenn Sie Claud einschalten und 100-500-1000K Packs pro Agent geben?

Vielleicht, ja, die Netzkosten würden den ganzen Gewinn zunichte machen.

 
fxsaber:

mq5 - normal. mq4 - gebrochen. Sie können TypeToBytes_ExampleScript.mq4 von hier übernehmen. Kompiliert nur, wenn die Erweiterung auf mq5 geändert wird.

2372 - der Fehler wurde korrigiert, vielen Dank.

Grund der Beschwerde: