Erreurs, bugs, questions - page 1420

 

Après-midi

Pouvez-vous m'expliquer pourquoi les colonnes SL et TP de la section des ordres ne sont pas remplies dans le rapport du terminal MT5 ?

 
Alexey Klenov:

Après-midi

Pouvez-vous me dire pourquoi dans le rapport du terminal MT5 les colonnes SL et TP ne sont pas remplies dans la section des ordres ?

C'est faux. Les champs du rapport sont remplis :

Rapport sur l'historique des transactions
Nom :Barabashka
Compte de trading :1783501 (USD, 1:100, MetaQuotes-Demo, démo)
Courtier :MetaQuotes Software Corp.
Date :2015.10.27 08:26
Commandes
Heure d'ouvertureCommandezSymboleTypeVolumePrixS / LT / PTempsÉtatCommentaire
2015.10.27 08:22:5968437438USDCADvendre0.01 / 0.011.316531.317431.315632015.10.27 08:22:59rempli
2015.10.27 08:25:0368437478USDCADacheter0.01 / 0.011.316772015.10.27 08:25:03rempli
Affaires
TempsOffre spécialeSymboleTypeDirectionVolumePrixCommandezCommissionÉchangerProfitBalanceCommentaire
2015.10.27 08:22:5954110210USDCADvendresur0.011.31653684374380.000.000.0010 241.54
2015.10.27 08:25:0354110248USDCADacheterout0.011.31677684374780.000.00-0.1810 241.36
0.000.00-0.1810 241.36
Équilibre :10241.36Marge libre :10241.36
Facilités de crédit :0.00Marge :0.00
Profits et pertes flottants :0.00Niveau de marge :0.00%
Fonds :10241.36
Backtest
Bénéfice net :-0.18Bénéfice total :0.00Perte totale :-0.18
Rentabilité :0.00Attente de la victoire :-0.18
Facteur de récupération :-1.00Ratio de Sharpe :0.00
Tirage d'équilibre :
Réduction absolue du bilan :0.18Prélèvement maximal sur le solde : 0,18 (0,00%)0.18 (0.00%)Tirage relatif par bilan0.00% (0.18)
Total des échanges :1Transactions courtes (% des gagnants) :1 (0.00%)Trades longs (% de gains) :0 (0.00%)
Transactions rentables (% de toutes) :0 (0.00%)Transactions perdantes (% de toutes) :1 (100.00%)
Le commerce le plus rentable0.00La plus grosse transaction perdante :-0.18
Moyenne des transactions rentables :0.00Moyenne des transactions perdantes :-0.18
Nombre maximum de gains continus (profit) :0 (0.00)Nombre maximal de pertes continues (perte) :1 (-0.18)
Nombre maximum de bénéfices continus (nombre de gains) :0.00 (0)Perte continue maximale (nombre de pertes) :-0.18 (1)
Gains moyens continus :0Pertes moyennes en continu :1
 

Erreur dans le terminal MT5, build 1200 du 23.10.15 (alpari).

Dans la version précédente, tout fonctionnait correctement ( !).

La fonction CopyRates() a commencé à indiquer les dates de manière incorrecte (probablement, d'autres données de barres aussi).

Voici un exemple d'un court programme de test (Expert Advisor) :

==================================================

datetime c_DStart=D'01.01.2015';
datetime c_DEnd=D'26.10.2015' ;

int i ;
int MaxBars ;

MqlRates a_RatesAll[] ;

//----------------------------------

//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'expert|
//+------------------------------------------------------------------+
int OnInit()
{
//---
ArraySetAsSeries(a_RatesAll,true) ;

//---
return(INIT_SUCCEEDED) ;
}
//+------------------------------------------------------------------+
//| Fonction ChartEvent|
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
//---
//sortie
if(id==CHARTEVENT_KEYDOWN && lparam==45) // sortie "Insertion".
{
ExpertRemove() ;
}
else if(id==CHARTEVENT_KEYDOWN && lparam==48) // "0"
{
DateTimeRates(c_DStart,c_DEnd) ;
}
}
//+------------------------------------------------------------------+
//| Mes fonctions|
//+------------------------------------------------------------------+
//====================================================================
void DateTimeRates(datetime DStart, datetime DEnd)
{
si ((DStart>0) && (DEnd>0))
{
MaxBars=CopyRates(Symbol(),0,DStart,DEnd,a_RatesAll) ;
if(MaxBars<=0) Print("Erreur de copie des données de prix ",GetLastError()) ;
sinon
{
Print(" ") ;
Print(EnumToString(ChartPeriod(0)) ;
Print("Copié ",ArraySize(a_RatesAll)," bars) ;
}
}
pour (i=MaxBars-1;i>=0;i--)
{
Print(a_RatesAll[i].time) ;
}
}
//====================================================================
==================================================

Si je spécifie une date de début de la série chronologique postérieure au 14.10.15, toutes les dates des barres sont réinitialisées :

HS 0 09:49:42.561 DateTimeCopyRates (EURUSD,M5)
PM 0 09:49:42.561 DateTimeCopyRates (EURUSD,M5) PERIOD_M5
LE 0 09:49:42.561 DateTimeCopyRates (EURUSD,M5) 2406 barres copiées
IM 0 09:49:42.561 DateTimeCopyRates (EURUSD,M5) 1970.01.01 00:00:00
CD 0 09:49:42.561 DateTimeCopyRates (EURUSD,M5) 1970.01.01 00:00:00
MK 0 09:49:42.561 DateTimeCopyRates (EURUSD,M5) 1970.01.01 00:00:00
GS 0 09:49:42.561 DateTimeCopyRates (EURUSD,M5) 1970.01.01 00:00:00

...

etc.


Si je spécifie une date de début égale ou inférieure au 14.10.15, les séries chronologiques commencent avec un retard de quelques semaines à quelques mois.

Voici un exemple avec une date de départ du 14.10.15, la série chronologique commence le 26.10.15 :

CS 0 09:53:02.383 DateTimeCopyRates (EURUSD,M5)
KM 0 09:53:02.383 DateTimeCopyRates (EURUSD,M5) PERIOD_M5
GE 0 09:53:02.383 DateTimeCopyRates (EURUSD,M5) 2695 barres copiées
QM 0 09:53:02.383 DateTimeCopyRates (EURUSD,M5) 2015.10.26 15:50:00
PD 0 09:53:02.383 DateTimeCopyRates (EURUSD,M5) 2015.10.26 15:55:00
GK 0 09:53:02.383 DateTimeCopyRates (EURUSD,M5) 2015.10.26 16:00:00
RS 0 09:53:02.383 DateTimeCopyRates (EURUSD,M5) 2015.10.26 16:05:00
DJ 0 09:53:02.383 DateTimeCopyRates (EURUSD,M5) 2015.10.26 16:10:00
...


Voici un exemple avec une date de départ du 01.01.15, la série commence le 12.05.15 :

PS 0 09:54:47.726 DateTimeCopyRates (EURUSD,M5)
HM 0 09:54:47.726 DateTimeCopyRates (EURUSD,M5) PERIOD_M5
FF 0 09:54:47.726 DateTimeCopyRates (EURUSD,M5) 60958 barres copiées
OL 0 09:54:47.726 DateTimeCopyRates (EURUSD,M5) 2015.05.12 21:55:00
HD 0 09:54:47.726 DateTimeCopyRates (EURUSD,M5) 2015.05.12 22:00:00
QK 0 09:54:47.726 DateTimeCopyRates (EURUSD,M5) 2015.05.12 22:05:00
CS 0 09:54:47.726 DateTimeCopyRates (EURUSD,M5) 2015.05.12 22:10:00
FJ 0 09:54:47.726 DateTimeCopyRates (EURUSD,M5) 2015.05.12 22:15:00
RQ 0 09:54:47.726 DateTimeCopyRates (EURUSD,M5) 2015.05.12 22:20:00
...


Veuillez demander aux développeurs de corriger cette erreur.

Dossiers :
MT5.png  18 kb
 
retired:

Erreur dans le terminal MT5, build 1200 du 23.10.15 (alpari).

Dans la version précédente, tout fonctionnait correctement ( !).

Lafonction CopyRates() a commencé à indiquer les dates de manière incorrecte (peut-être aussi d'autres données de barres).

Ajoutez une autre demande au Service Desk pour que le problème soit réparé plus rapidement !
 

Impossible de récupérer les données SeriesInfoInteger() de l'INDICATOR ! MT4

Veuillez regarder la demande#1337152

 
Karputov Vladimir:

C'est faux. Dans le rapport, les champs sont remplis :

Oui, je suis désolé, au début l'ordre part avec zéro TP et SL.

mais ensuite je modifie la position (SL et TP)

et ces données ne sont pas incluses dans le rapport.

 
Alexey Kozitsyn:

Impossible de récupérer les données SeriesInfoInteger() de l'INDICATOR ! MT4

Veuillez regarder la demande#1337152

Les fonctions de MT5 doivent-elles fonctionner dans MT4 ?
 
Alexey Klenov:

Oui, je suis désolé, au début l'ordre part avec zéro TP et SL.

mais ensuite je modifie la position (SL et TP)

et ces données ne seront pas incluses dans le rapport.

Qu'est-ce qui n'apparaît pas dans le rapport (et s'agit-il de l'ordre en attente ou de la position ?)

  1. après que le SL et le TP ont été modifiés, les champs SL et TP sont-ils vides dans le rapport ?
  2. ou voulez-vous voir un journal de toutes vos modifications dans le rapport ?

 
Ilya Malev:
Les fonctions de MT5 sont-elles censées fonctionner dans MT4 ?
Celui-ci le fait, voir la documentation. De plus, je n'ai pas tout décrit ici. Cela fonctionne, mais pas toujours. Et c'est une erreur, c'est sûr.
 

A100:

class A { public:
template<typename T>
        A( T ) { Print( typename( T )); }
};
class B { public:
template<typename T>
        void f( T t ) { A a( t ); } //вызываем A::A(...)
};
void OnStart()
{
        B b;
        int i = 0;
        b.f( i ); } 
Résultat : int

Ha. Et voici un code source légèrement modifié :

class A { public:
template<typename T>
        A( T ) { Print( typename( T )); }
};
class B { public:
template<typename T>
        void f( T t )
        {
          delete new A( t ); // должны получить новый класс A<string>, а используется A<int>
        }
};
void OnStart()
{
        B b;
        int i = 0;
        A *a = new A(1); // здесь хотим тип int
        b.f( "" ); // а тут передаем строку
        delete a;
}

produit deux fois int au lieu de int et string.

La première sortie (dans l'ordre d'exécution de l'algorithme) du type constructeur affecte la deuxième instance créée de la classe modèle.

Le service d'assistance est silencieux pour le moment (numéro de ticket#1336035).