MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 939

 
Nikita Chernyshov:

純粋に美意識の問題です。

ここに独自の画像があるようにするにはどうしたらいいのでしょうか?エムティーフォー



#property icon
 
Artyom Trishkin:

はい、その物件は知っています、ありがとうございます。しかし、それはアイコンがユーザーのところになければならないことを意味しています。これを回避する方法はあるのでしょうか?その人はex4だけダウンロードして、私の画像はその人に表示されるようにするのですか?

 
Koldun Zloy:

もし、型ごとに特定の配列セルを割り当てるのであれば、配列ではなく構造体を作ってください。

そうしようと思ったのですが、その人が構造体から構造体配列に要素を入れるところのリンクを失くしてしまいました。構造体を宣言してから配列を作り、各数値の下にint string doubleという型を 格納していたのですが、そこでは各セルに1つだけ異なる要素を持つ配列になっていたので、ここでも可能かと思ったのですが、どうもそうではないようです。

 
Igor Makanu:

具体的には何が削られたのでしょうか?

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

この例では、2次元と1次元の配列を関数に渡しましたが、ちなみにこれは私のコードです。

ここで、mql4ができないことのもう一つの例を挙げます。

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

どれがmql4できるのか、ここに例があります。

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:

はい、その物件は知っています、ありがとうございます。しかし、それはアイコンがユーザーのところになければならないことを意味しています。これを回避する方法はあるのでしょうか?その人はex4だけダウンロードして、私の画像はその人に表示されるようにするのですか?

資料で写真を添付 する。
 
Nikita Chernyshov:

はい、その物件は知っています、ありがとうございます。しかし、それはアイコンがユーザーのところになければならないことを意味しています。これを回避する方法はあるのでしょうか?その人はex4だけダウンロードして、私の画像はその人に表示されるようにするのですか?

そんなことはない。

 
Alexey Viktorov:
資料となる写真を添付 する。

アイコンの場合は、うまくいきません。

#property icon は、ex.のアイコンを既にパックしています。

 
Seric29:

というもので、ちなみにこれは私のコードです。

自分のコードなら、.dllにコンパイルしてMQLにつなげば、2クリックの作業で、3ヶ月間のわけのわからない議論ができる
 
Artyom Trishkin:

意味するものではありません。

ありがとうございます、わかりました、目からウロコです。

 
Igor Makanu:
これがあなたのコードなら、.dllにコンパイルしてMQLに接続すれば、「2クリック」作業、3ヶ月間理解不能な議論

問題は、私は配列を取るすべての関数にテンプレートを適用し、テンプレート関数のエクスポートとインポートは、それが各タイプの関数を複製しなければならないでしょう、次元と同じ状況mqlはちょうどそのようにそれらを与えたくない、再び私は次元によってそれらを複製する必要がありますオーバーロードの種類が判明したが、追加の引数は必要ではありませんが、これはまた不要なコードであるとして関数の引数の 増加のためにmqlもちょうどそのようにデータがオーバーロード関数を複製する必要があります与えることはありません。自分で言語を書くことも考えましたが、ロボットの15%を書き、すべてをキャリブレーションし、できるだけ普遍的で高速なパフォーマンスを提供するために1年以上、計算には3年費やしました。ただ、自分の言葉を書くには、人生が足りないんです。それでは、どうぞ。