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

 
Nikita Chernyshov:

La question est purement d'ordre esthétique.

Comment faire pour qu'il y ait une image propre ici ? MT4



#property icon
 
Artyom Trishkin:

Oui, je connais cette propriété, merci. Mais cela implique que l'icône doit se trouver chez l'utilisateur. Y a-t-il un moyen de contourner ce problème ? Pour que la personne n'ait téléchargé que ex4 et que mon image lui soit affichée ?

 
Koldun Zloy:

Si vous avez des cellules de tableau spécifiques allouées à chaque type, alors faites une structure au lieu d'un tableau.

J'ai pensé à faire ça, mais j'ai perdu le lien où la personne mettait les éléments de la structure dans le tableau structuré. Il a déclaré une structure et a ensuite créé un tableau et sous chaque nombre était stocké le type int string double, mais là il avait un tableau avec seulement un élément différent dans chaque cellule, donc je pensais que c'était possible ici aussi, mais apparemment non.

 
Igor Makanu:

Qu'est-ce qui a été coupé, exactement ?

#include "stdafx.h"
#include <conio.h>
#include <iostream>

using std::cout;
using std::endl;
using std::cin;

template<typename T> void Fun(T a[],size_t m=2,size_t n=2, T r=0)
{
        for ( size_t i = 0; i < m; i++ )
    {
        for ( size_t j = 0; j < n; j++ ) 
                        {
                    (a[i * n + j ])=(a[i * n + j ])*5;
                        cout <<(a[i * n + j ])<<" "<<endl;
                    }
        }cout<<endl; 
}

int _tmain(int argc, _TCHAR* argv[])
{
        int     mas[6]={1,2,3,4,5,6};
        double mas1[2][2]={{1.4,4.2},{2.8,6.7}};//int //{{},{}};
        int mas2[2][2][2];

        Fun(*mas1);//Для 2умерного массива передача по ссылке, но в mql4 все массивы передаются по ссылке 
        Fun((mas),6,1);
        for(int i=0;i<2;i++)
        {for(int t=0;t<2;t++)
        {cout<<mas1[i][t]<<" "<<endl;}}
        _getch();
        return 0;
}

Dans cet exemple, j'ai passé un tableau à 2 dimensions et un tableau à 1 dimension dans la fonction, et d'ailleurs c'est mon code.

Voici un autre exemple de ce que mql4 ne peut pas faire.

#include <iostream>
#include <variant>
 
using double_bool_int = std::variant<double, bool, int>;
 
int main()
{
    const size_t len = 15 u;
    double_bool_int* arr = new double_bool_int[len];
 
    {
        size_t idx = 0 u;
        for (; idx < 5 u; ++idx)
            arr[idx] = static_cast<double>(0.5 * idx);
        for (; idx < 10 u; ++idx)
            arr[idx] = static_cast<bool>(idx & 1 u);
        for (; idx < 15 u; ++idx)
            arr[idx] = static_cast<int>(2 * idx);
    }
    for (auto it = arr; it != arr + len; ++it)
    {
        if (const auto i = std::get_if<int>(it); i)
            std::cout << "int " << *i << "\n";
        else if (const auto d = std::get_if<double>(it); d)
            std::cout << "double " << *d << "\n";
        else if (const auto b = std::get_if<bool>(it); b)
            std::cout << "bool " << std::boolalpha << *b << "\n";
    }
    
    delete[] arr;
    return 0;
}

Lequel de ces éléments peut mql4 ou voici un exemple

double f(double n, ...)    //--заголовок с переменным числом параметров
{   double *p = &n;        //--установились на начало списка параметров
    double sum = 0, count = 0;    
    while (*p)         //--пока аргумент не равен нулю
    { sum+=(*p);         //--суммируем аргумент
      p++;             //--«перемещаемся на следующий аргумент
      count++;         //--считаем  количество аргументов
    }
    return ((sum)?sum/count:0);    //--вычисляем среднее
}
 
Nikita Chernyshov:

Oui, je connais cette propriété, merci. Mais cela implique que l'icône doit se trouver chez l'utilisateur. Y a-t-il un moyen de contourner ce problème ? Pour que la personne n'ait téléchargé que ex4 et que mon image lui soit affichée ?

Attachez l'image avec une ressource.
 
Nikita Chernyshov:

Oui, je connais cette propriété, merci. Mais cela implique que l'icône doit se trouver chez l'utilisateur. Y a-t-il un moyen de contourner ce problème ? Pour que la personne n'ait téléchargé que ex4 et que mon image lui soit affichée ?

Ce n'est pas le cas.

 
Alexey Viktorov:
Joignez une photo avec une ressource.

Pour une icône, ça ne marchera pas.

#La propriété "icon" contient déjà l'icône en ex.

 
Seric29:

et d'ailleurs, c'est mon code.

Si c'est votre code, compilez-le dans un fichier .dll et connectez-le à MQL. Deux clics de travail, trois mois de discussion incompréhensible.
 
Artyom Trishkin:

Ça ne veut rien dire.

Merci, j'ai compris, ça m'a ouvert les yeux.

 
Igor Makanu:
Si c'est votre code, compilez-le dans une .dll et connectez-le à MQL, le travail en "deux clics", discussion incompréhensible depuis trois mois

Le problème est que j'applique des templates à toutes les fonctions qui prennent des tableaux, et l'exportation et l'importation de fonctions template n'est pas possible il faudra dupliquer les fonctions pour chaque type, la même situation avec la dimensionnalité mql ne veut pas les donner juste comme ça et encore une fois je dois les dupliquer par dimensionnalité s'avère une sorte de surcharge mais ajouter des arguments supplémentaires n'est pas nécessaire néanmoins c'est aussi du code excessif, comme pour l'augmentation des arguments de la fonction mql ne donnera pas non plus juste les données je dois dupliquer les fonctions faire surcharge. Je ne pense pas que cela en vaille la peine. J'ai pensé écrire mon propre langage, mais j'ai écrit 15% de mon robot et j'ai passé plus d'un an à tout calibrer, à le rendre aussi universel que possible et à fournir des performances rapides, et 3 ans pour les calculs. Je n'ai pas assez de vie pour écrire ma propre langue. Alors voilà.