Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 939

 
Nikita Chernyshov:

La questione è puramente estetica.

Come faccio a fare in modo che ci sia un'immagine propria qui? MT4



#property icon
 
Artyom Trishkin:

Sì, conosco quella proprietà, grazie. Ma implica che l'icona deve essere presso l'utente. C'è un modo per aggirare questo problema? Così che la persona ha scaricato solo ex4 e la mia immagine gli viene mostrata?

 
Koldun Zloy:

Se avete celle specifiche di array assegnate a ciascun tipo, allora fate una struttura invece di un array.

Ho pensato di farlo, ma ho perso il link dove la persona ha messo gli elementi della struttura nell'array strutturato. Ha dichiarato una struttura e poi ha creato un array e sotto ogni numero è stato memorizzato il tipo int string double, ma lì aveva un array con solo un elemento diverso in ogni cella, così ho pensato che fosse possibile anche qui, ma apparentemente no.

 
Igor Makanu:

Cosa è stato tagliato, esattamente?

#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;
}

In questo esempio ho passato un array bidimensionale e uno monodimensionale nella funzione, e comunque questo è il mio codice.

Ecco un altro esempio di ciò che mql4 non può fare.

#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;
}

Quale di questi può mql4 o ecco un esempio

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:

Sì, conosco quella proprietà, grazie. Ma implica che l'icona deve essere presso l'utente. C'è un modo per aggirare questo problema? Così che la persona ha scaricato solo ex4 e la mia immagine gli viene mostrata?

Allega l'immagine con una risorsa.
 
Nikita Chernyshov:

Sì, conosco quella proprietà, grazie. Ma implica che l'icona deve essere presso l'utente. C'è un modo per aggirare questo problema? Così che la persona ha scaricato solo ex4 e la mia immagine gli viene mostrata?

Non è così.

 
Alexey Viktorov:
Allega una foto con una risorsa.

Per un'icona, non funzionerà.

#proprietà icona già impacchetta l'icona in ex

 
Seric29:

e questo è il mio codice, a proposito.

Beh, se è il tuo codice, allora compilalo in una .dll e collegalo a MQL, due click di lavoro, tre mesi di discussioni incomprensibili
 
Artyom Trishkin:

Non implica.

Grazie, l'ho capito, mi ha aperto gli occhi.

 
Igor Makanu:
Se questo è il vostro codice, compilatelo in una .dll e collegatelo a MQL, i "due click" funzionano, discussione incomprensibile per tre mesi

Il problema è che applico dei modelli a tutte le funzioni che prendono degli array, e l'esportazione e l'importazione di funzioni modello non è possibile si dovranno duplicare le funzioni per ogni tipo, la stessa situazione con la dimensionalità mql non vuole darli proprio così e di nuovo devo duplicarli per dimensionalità risulta una specie di sovraccarico ma aggiungere argomenti aggiuntivi non è necessario tuttavia questo è anche un codice eccessivo, come per l'aumento degli argomenti delle funzioni anche mql non darà solo i dati devo duplicare le funzioni fare un sovraccarico Quindi non credo che ne valga la pena, ho pensato di scrivere il mio linguaggio ma poi di nuovo ho scritto il 15% del mio robot e ho speso più di un anno per calibrare tutto e renderlo il più universale possibile e fornire prestazioni veloci e 3 anni per i calcoli. Non ho abbastanza vita per scrivere la mia lingua. Quindi ci siamo.

Motivazione: