Erreurs, bugs, questions - page 726

 
sergeev:

Oui Renat, c'est mon code.

Cela fonctionnait dans les versions précédentes. Mais il a cessé de fonctionner dans l'actuelle 630/64.

Le bug que j'ai trouvé est assez étrange et, pour être franc, effrayant.

Désolé, je l'ai maintenant.

Oui, la version 630 présentait un bogue, mais nous l'avons déjà corrigé et nous en publions une nouvelle.

Désolé pour les bugs, c'est très frustrant.

 

Que signifie l'intitulé de la variable (élément du tableau de chaînes de caractères) ?

L'expression ne peut pas être évaluée?

Un tableau dans une classe. Le tableau est dynamique.

 
sergeev:

Que signifie l'intitulé de la variable (élément du tableau de chaînes de caractères) ?

L'expression ne peut pas être évaluée?

Un tableau dans une classe. Le tableau est dynamique.

L'expression ne peut pas être évaluée.

Donnez un morceau de code, s'il vous plaît.

 
Renat:

L'expression ne peut pas être analysée.

Donnez un morceau de code, s'il vous plaît.


#define CHART_LPROP     43
#define CHART_DPROP     6
#define CHART_SPROP     1

//------------------------------------------------------------------ class CTmpChart
class CTmpChart
{
public:
        // свойства
        long lprm[CHART_LPROP+3];
        double dprm[CHART_DPROP];
        string sprm[CHART_SPROP+1];

......
}

//------------------------------------------------------------------ Reset
void CTmpChart::Reset() // сброс всех значений
{
	// сбрасываем свойства
	string nul=NULL; 
	for (int i=0; i<CHART_LPROP+3; i++) lprm[i]=-1;
	for (int i=0; i<CHART_DPROP; i++) dprm[i]=-1;
	for (int i=0; i<CHART_SPROP+1; i++) sprm[i]=nul; // пришлось сделать так, иначе код слетает на присвоении sprm[i]=NULL 
}

//------------------------------------------------------------------ Copy
void CTmpChart::Copy(CTmpChart &a)
{
        for (int i=0; i<CHART_LPROP+3; i++) lprm[i]=a.lprm[i];
        for (int i=0; i<CHART_DPROP; i++)   // на этом цикле через раз (поймать стабильный глюк не получилось) терминал закрывается как процесс
          dprm[i]=a.dprm[i];
        for (int i=0; i<CHART_SPROP+1; i++) // на этом цикле бывает два варианта, 1) при подходе на эту строку цикла будет креш, 
          sprm[i]=a.sprm[i]; // 2) если цикл доживает к этой строке , то на ячейке sprm[i] (не из а.) - будет "Expression cannot be evaluated" и тоже креш
}

tous les tableaux sont pré-réglés.

J'ai essayé avec dynamic, le résultat est le même.

Ce bogue est uniquement sur 630/64

 

MQL5: Добавлен асинхронный метод посылки торговых запросов OrderSendAsync.

La nouvelle fonction viendra-t-elle compléter l'ancienne fonction OrderSend ou la remplacer complètement ?
 
Yedelkin:
La nouvelle fonction viendra-t-elle compléter l'ancienne fonction OrderSend ou la remplacer complètement ?

Supplément. Pour l'instant, il est défini comme suit


 
Rosh:

Supplément.

Super. Il n'y a pas encore d'information dans le manuel de manière temporaire.
 
Rosh:

Actuellement, il a la définition suivante

La description doit être corrigée immédiatement : "Lafonction OrderSend() est destinée à..." doit être remplacée par "La fonction OrderSendAsync() est destinée à...". Et plus loin dans la description du code.

 
Cette nouvelle fonctionnalité n'affectera pas les règles de la compétition.
 
Rosh:

Supplément. Pour l'instant, il a cette définition...

Je me souviens que Renat a donné un avertissement, et pourtant je prends ma question plus au sérieux :

Y aura-t-il à l'avenir un système plus simple pour déterminer quel ordre a déclenché OnTrade ?

la question est particulièrement pertinente à la lumière de l'introduction de la nouvelle fonction OrderSendAsync().