MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 939

 
Nikita Chernyshov :

순전히 미학적 질문입니다.

여기에서 어떻게 나만의 그림을 만들 수 있습니까? MT4



 #property icon
 
Artyom Trishkin :

예, 이 속성을 알고 있습니다. 감사합니다. 그러나 그것은 사용자가 아이콘을 가지고 있어야 함을 의미합니다. 어떻게 든 그것을 우회 할 수 있는지 여부? 그래서 사람이 ex4만 다운로드하고 내 사진을 표시합니까?

 
Koldun Zloy :

각 유형에 대해 특정 배열 셀이 있는 경우 배열 대신 구조를 만드십시오.

그게 내가 하려고 생각한 일이지만 사람이 구조의 요소를 구조적 배열에 넣는 링크를 잃어 버렸습니다. 구조체를 선언한 다음 배열을 생성하고 각 숫자 아래 에 int string double 형식 이 저장되어 있지만 거기에는 셀에 하나의 다른 요소만 있는 배열이 있으므로 여기에서는 가능하다고 생각했지만 분명히 그렇지 않았습니다. .

 
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 차원의 동일한 상황에서는 그냥 제공하고 싶지 않습니다. 그런 다음 다시 차원별로 복제해야 하므로 일종의 과부하가 발생하지만 추가 인수 를 추가할 필요는 없습니다. 데이터를 그대로 돌려주려면 오버로드를 수행하기 위해 함수를 복제해야 합니다. 또한 C++ 측에서 색상과 날짜를 처리하는 방법에 대한 문제를 해결하지 못했습니다. C++에도 스탠드가 없습니다. -여기에 배열 및 기타 데이터에 대한 데이터를 반환하는 단독 함수는 고유한 함수를 작성해야 합니다. 아무데도 가서 작성할 수 없다는 것은 분명하지만 1년이 걸리고 라이브러리도 호출해야 할 때 보정을 복잡하게 만듭니다. 인쇄 기능을 사용하고 거기에 20개의 매개변수를 입력하고 수동으로 모든 날짜를 계산하면 라이브러리의 존재 자체가 내가 모르는 함정은 말할 것도 없고 파일의 정확성을 모니터링해야 합니다. 결국 이 모든 것을 고려할 때 mql의 모든 기능을 사용하여 문제를 해결하거나 불필요한 검사를 수행하는 것이 좋습니다. 그러나 코드는 간단합니다. 그래서 그만한 가치가 없다고 생각합니다. 제 자신의 언어를 작성하려고 생각했지만 다시 로봇의 15%를 작성하고 모든 것을 보정하고 가능한 한 보편적으로 만들고 빠른 성능과 3년 동안 계산. 나는 내 자신의 언어를 쓰기에 충분한 삶이 없습니다. 이 같은.