Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1431

 
Vitaly Muzichenko:

---

Mais il doit être mis en tableau à partir de la chaîne dans OnInit()

Merci beaucoup ! j'ai envisagé cette option, mais à cause de mon analphabétisme en tant que codeur, quelque chose a mal tourné)), mais maintenant si vous me permettez une autre question.
Tout fonctionne, mais il y a un avertissement : conversion implicite de 'string' en 'number' , comment le supprimer ? Est-ce possible ?

 
Александр:
Merci beaucoup ! j'ai envisagé cette option, mais à cause de mon analphabétisme en tant que codeur, quelque chose a mal tourné)), mais maintenant si vous me permettez une autre question.
Tout fonctionne, mais je reçois un message d'avertissement : conversion implicite de 'string' en 'number' , comment puis-je m'en débarrasser ?

J'ai ré-affiché le code

 
Génial, super. Plein succès à vous dans vos entreprises. Merci de nous aider.
 
Maxim Kuznetsov:

C'est comme ça que ça se passe ici... un bon code devrait suffire.

Nous en avons d'autres pour cela...))
 

Après-midi

J'essaie de créer 2 fichiers pour le copieur MT4-MT5 :

string path, path1;
    int hend; 
    path=CopierNumber+"MasterOrdersV.csv";   
    hend=FileOpen(path,FILE_CSV|FILE_WRITE,',');
    if(hend>0)
    {
        FileWrite(hend,"Symbol","Ticket","Lot size","Direction","Price","StopLoss","Takeprofit","Open time");
        FileClose(hend);
    }
    path1=CopierNumber+"MasterOrders.csv";    
    hend=FileOpen(path1,FILE_CSV|FILE_COMMON|FILE_WRITE|FILE_SHARE_READ,',');
    if(hend>0)
    {
        FileWrite(hend,"Symbol","Ticket","Lot size","Direction","Price","StopLoss","Takeprofit","Open time");
        FileClose(hend);
    } 
En essayant de lire :

Le même code dans MT5 écrit tout correctement :


Est-ce que c'est moi qui ai un problème ou est-ce que quelque chose s'est planté dans MT4 ?

 
Je pense que j'ai trouvé - le problème est dans l'Open Office, merci.
 

Collègues, aidez avec l'algorithme et les fonctions mathématiques, vous pouvez juste utiliser les fonctions mathématiques, la tâche est de fermer une position de marché par 5 portions.

C'est-à-dire que, par exemple, une position de marché de 10,24 lots ou de 5,12 lots doit être couverte avec des parts approximativement égales de 5 parts. Nous pouvons rendre l'une des positions restantes plus grande que les autres pour couvrir le volume restant après la fermeture des quatre premières positions.

Ce sujet à partir de l'aide des fonctions de compagnon n'est pas tout à fait adapté, à mon avis, il a besoin de quelque chose pour compléter..... COMMENT compter de manière optimale les lots de chacune des 5 actions (parts) pour clôturer une position commune.

Возвращает вещественный остаток от деления двух чисел.



double  MathMod( 
   double  value,      // делимое 
   double  value2      // делитель 
   );
 

Параметры

value

[in]  Значение делимого.

value2

[in]  Значение делителя.

Возвращаемое значение

Функция MathMod рассчитывает вещественный остаток f от val / y таким образом, что val = i * y + f , где i является целым числом, f имеет тот же знак, что и val, и абсолютное значение f меньше, чем абсолютное значение y.

Примечание

Вместо функции MathMod() можно использовать функцию fmod().
 
Roman Shiredchenko:

Collègues, aidez avec l'algorithme et les fonctions mathématiques, vous pouvez juste utiliser les fonctions mathématiques, la tâche est de fermer une position de marché par 5 portions.

C'est-à-dire que par exemple une position de marché de 10,24 lots ou de 5,12 lots doit être couverte avec des parts approximativement égales au total de 5 parts. Nous pouvons rendre l'une des positions restantes plus grande que les autres pour couvrir le volume restant après la fermeture des quatre premières positions.

Ce sujet à partir de l'aide des fonctions de compagnon n'est pas tout à fait adapté, à mon avis, il a besoin de quelque chose pour compléter..... COMMENT compter de manière optimale les lots de chacune des 5 parties (pièces) pour fermer une position commune.

Une division par 5 est une division par 5 :-)

lots_1to4=NormalizeLots(lots/5); // лоты для 1,2,3,4 ; округление лота сами добавите

lots5 = NormalizeLots(lots - lots_1to4*5); // для 5 - оставшиеся лоты

 
Maxim Kuznetsov:

une division par 5 est une division par 5 :-)

lots_1to4=NormalizeLots(lots/5); // лоты для 1,2,3,4 ; округление лота сами добавите

lots5 = NormalizeLots(lots - lots_1to4*5); // для 5 - оставшиеся лоты

О ! Spc. Exactement - par la différence d'arrondi vers le bas et le total de départ ! !! L'arrondi est le même ?

Возвращает ближайшее снизу целое числовое значение.



double  MathFloor( 
   double  val     // число 
   );
 

Параметры

val

[in]  Числовое значение.

Возвращаемое значение

Числовое значение, представляющее наибольшее целое число, которое меньше или равно val.

Примечание

Вместо функции MathFloor() можно использовать функцию floor().
 
Aide à la création d'une alerte pour un indicateur, je ne trouve pas d'indicateur avec un signal.
Dossiers :