Errori, bug, domande - pagina 2687

 
Andrey Dik:

qui.

E anche la modalità mat computing.

C'è un limite di 100 milioni anche lì?

 
Andrey Khatimlianskii:

C'è un limite di 100 milioni anche lì?

anche

 
Andrey Kaunov:

In generale, il broker ha ostinatamente cancellato la mia domanda dal forum. Dopo la terza volta, hanno risposto a delle sciocchezze nel mio messaggio personale:

Non ho ricevuto una risposta dal broker, ma non so come rispondere.


P.S. Hanno lasciato il mio post in un thread, ma nessuna risposta o saluto.

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

Faccio trading con lo stesso broker. Sto affrontando lo stesso problema. La differenza tra le valute e l'oro (così come gli indici) è nella proprietà SYMBOL_TRADE_MODE.

Per le valute SYMBOL_TRADE_MODE = SYMBOL_CALC_MODE_FOREX e per i metalli e gli indici SYMBOL_TRADE_MODE = SYMBOL_CALC_MODE_CFDLEVERAGE.

Sembra che questo broker o la piattaforma per la modalità SYMBOL_CALC_MODE_CFDLEVERAGE non calcoli correttamente le proprietà SYMBOL_TRADE_TICK_VALUE_PROFIT e SYMBOL_TRADE_TICK_VALUE_LOSS

Quindi devi fare un po' di squat extra per calcolare i simboli in modalità SYMBOL_CALC_MODE_CFDLEVERAGE. Uso la formula della documentazione

Profitto: (close_price - open_price) * Contract_Size*Lots

.

Ecco un esempio della funzione, che in questo broker calcola il volume della posizione secondo il prezzo di apertura, il prezzo di stop-loss e la perdita massima nella valuta del conto. Funziona correttamente con Alpari, non ho ancora controllato con altri broker.

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:

I profitti/perdite nel tooltip per gli ordini buy stop limit e per gli ordini sell stop limit sono calcolati in modo errato.

Signori, MQ, il difetto descritto è stato risolto? Ci aspettiamo che venga corretto nella prossima release?

Link al post originale sul difetto.

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

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

anche

Allora guai.

 
Ho trovato questo nel diario di bordo.
2020.03.29 20:58:28.061 SymbolClone (EURUSD,M1) Unknown runtime error in 'SymbolClone.mq5' (1,1)

Per giocare, iniziate in Debug e raggiungete il breakpoint. Poi in Terminale (non ME) cambia profilo - SHIFT+F5.

 
Alexey Rassvetnyy:

Trading con lo stesso broker. Affrontato lo stesso problema. La differenza tra le valute e l'oro (così come gli indici) è nella proprietà SYMBOL_TRADE_MODE.

Per le valute SYMBOL_TRADE_MODE = SYMBOL_CALC_MODE_FOREX e per i metalli e gli indici SYMBOL_TRADE_MODE = SYMBOL_CALC_MODE_CFDLEVERAGE.

Sembra che questo broker o la piattaforma per la modalità SYMBOL_CALC_MODE_CFDLEVERAGE non calcoli correttamente le proprietà SYMBOL_TRADE_TICK_VALUE_PROFIT e SYMBOL_TRADE_TICK_VALUE_LOSS

Quindi bisogna accovacciarsi un po' di più per calcolare i simboli in modalità SYMBOL_CALC_MODE_CFDLEVERAGE. Uso la formula della documentazione

Profitto: (close_price - open_price) * Contract_Size*Lots

.

Ecco un esempio della funzione, che in questo broker, calcola il volume della posizione secondo il prezzo di apertura, il prezzo di stop-loss e la perdita massima nella valuta del conto. Su Alpari funziona correttamente, su altri broker non ho ancora controllato.


È fantastico, naturalmente. Ma perché devo fare la strada difficile se posso e devo usare la funzione standard TICK VALUE?

Forse gli sviluppatori faranno ancora attenzione a questo errore.

Alexey Rassvetnyy:

Signori, rappresentanti della società MQ, questo difetto è stato risolto? Vi aspettate una correzione nella prossima release?

Link al post originale sul difetto.

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

Mi unisco alla domanda.

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

Allora guai.

Per i compiti al millisecondo non ha senso ottimizzare sugli agenti, è meglio fare tutto manualmente e non su mql. quindi la limitazione è abbastanza sensata in ogni caso, è solo brutto che sia implicita

 
Andrei Trukhanovich:

per i compiti al millisecondo non ha senso ottimizzare sugli agenti, è meglio fare tutto manualmente e non su mql. quindi la limitazione è abbastanza sensata in ogni caso, è solo brutto che sia implicita

Anche se si collega claud e dà 100-500-1000K pacchetti per agente?

Forse, sì, i costi di rete rovinerebbero l'intero guadagno.

 
fxsaber:

mq5 - normale. mq4 - rotto. Potete prendere TypeToBytes_ExampleScript.mq4 da qui. Compila solo se l'estensione è cambiata in mq5.

2372 - l'errore è stato corretto, grazie.