Questions des débutants MQL5 MT5 MetaTrader 5 - page 525

 
-Aleks-:
On utilise la chaîne a="true" ;

alternativement par une fonction personnalisée

bool StrToBool(string text)
{
 if(text=="true")return(true);
 if(text=="false")return(false);
}

si vous lisez la chaîne depuis un fichier, vous pouvez

bool  FileReadBool( 
   int  file_handle      // handle файла 
   );
 
Sergey Gritsay:

alternativement par une fonction personnalisée

si vous lisez la chaîne depuis un fichier, vous pouvez

Merci, solution intéressante !

J'ai besoin de lire à partir d'un fichier - j'ai fait faire une classe personnalisée, je voulais faire une fonction pour les valeurs bools là aussi, mais je comprends que l'analogie avec FileReadBool ne fonctionnera pas ?

La classe renvoie une valeur par colonne et numéro de cellule. Extrait :

//+------------------------------------------------------------------+

//| GetDoubleValue                                                   |

//+------------------------------------------------------------------+

double CSVReader::GetDoubleValue(int row,int column)

  {

   if(CheckIndexes(row,column)==false) return(0.0);

//---

   int index=m_total_columns*row+column;

   if((index>=0) && (index<ArraySize(m_cells)))

     {

      return(StringToDouble(m_cells[index]));

     }

   return(0.0);

  }

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| GetBoolValue                                                   |

//+------------------------------------------------------------------+

double CSVReader::GetBoolValue(int row,int column)

  {

   if(CheckIndexes(row,column)==false) return(0.0);

//---

   int index=m_total_columns*row+column;

   if((index>=0) && (index<ArraySize(m_cells)))

     {

      return(FileReadBool(m_cells[index]));

     }

   return(0.0);

  }

//+------------------------------------------------------------------+

 

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Bugs, bugs, questions

Nickolay72, 2016.02.29 13:56

Bonjour messieurs, peut-être que quelqu'un a été confronté à un tel problème, conseillez-nous.J'ai écrit un conseiller sur mon ordinateur Win7x32 fonctionne sans aucun problème, mais je l'ai mis sur un autre ordinateur, Win8x64, et il ne fonctionne pas. Non seulement que tout maladroitement installé, trois fois réinstaller, jusqu'à ce que j'ai été convaincu que le MT4 est installé sur le huitième, le conseiller que par la base de données peut être jeté en place à partir d'un lecteur flash, et il fonctionne refuse.

 
-Aleks-:

Merci, solution intéressante !

J'ai besoin de lire à partir d'un fichier - j'ai fait faire une classe sur commande, je voulais y faire une fonction pour les valeurs bool, mais je comprends que FileReadBool ne fonctionnera pas par analogie ?

La classe renvoie une valeur par colonne et numéro de cellule. Extrait :

//+------------------------------------------------------------------+

//| GetDoubleValue                                                   |

//+------------------------------------------------------------------+

double CSVReader::GetDoubleValue(int row,int column)

  {

   if(CheckIndexes(row,column)==false) return(0.0);

//---

   int index=m_total_columns*row+column;

   if((index>=0) && (index<ArraySize(m_cells)))

     {

      return(StringToDouble(m_cells[index]));

     }

   return(0.0);

  }

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| GetBoolValue                                                   |

//+------------------------------------------------------------------+

double CSVReader::GetBoolValue(int row,int column)

  {

   if(CheckIndexes(row,column)==false) return(0.0);

//---

   int index=m_total_columns*row+column;

   if((index>=0) && (index<ArraySize(m_cells)))

     {

      return(FileReadBool(m_cells[index]));

     }

   return(0.0);

  }

//+------------------------------------------------------------------+

return(FileReadBool(m_cells[index]));
Si vous l'écrivez de cette façon, vous obtiendrez bien sûr une erreur de compilation car vous devez lui passer le gestionnaire de fichier.
 

Nickolay72, 2016.02.29 13:56

Добрый день господа.Может кто сталкивался с такой проблемой,подскажите.J'ai écrit un EA, sur mon ordinateur Win7x32 fonctionne sans aucun problème. Je l'ai mis sur un autre ordinateur, Win8x64, et il ne fonctionne pas. Non seulement c'est un gâchis, je l'ai réinstallé trois fois, jusqu'à ce que je sois convaincu que MT4 est installé sur 8, EA seulement à travers la base de données peut être mis en place à partir du lecteur flash, mais il ne fonctionne pas. Tout dans le test, les ordres sont mis. Dans le travail bâtard souriant, mais refuse de travailler. Comment faire pour qu'il fonctionne ?
?

Le lecteur flash doit être formaté en NTFS.
 
Sergey Gritsay:
Bien sûr, vous obtiendrez une erreur de compilation si vous l'écrivez de cette façon, car vous devez lui passer le handle du fichier.

Il n'est pas clair pourquoi ils n'ont pas fait une traduction standard de chaîne en valeur pour bool.

Je vais écrire 0 et 1 dans le fichier et faire une vérification.

if ( StringToDouble(m_cells[index])==1 ) return (true);

else return (false);

Est-ce que ça va marcher ?

 
-Aleks-:

Il n'est pas clair pourquoi ils n'ont pas fait une traduction standard de chaîne en valeur pour bool.

Je vais écrire 0 et 1 dans le fichier et faire une vérification.

if ( StringToDouble(m_cells[index])==1 ) return (true);

else return (false);

Est-ce que ça va marcher ?

devrait remplacer cette ligne ici

double CSVReader::GetBoolValue(int row,int column)

changez-le également en

bool CSVReader::GetBoolValue(int row,int column)
 
Sergey Gritsay:

devrait, cette ligne ici.

remplacez également cette ligne par

Merci ! Je vais essayer.
 
Karputov Vladimir:

Nickolay72, 2016.02.29 13:56

Le lecteur flash doit être formaté en NTFS.
Le lecteur flash est formaté, le terminal est configuré pour le trading automatique, l'EA est activé - il ne trade pas.
Raison: