MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 939

 
Nikita Chernyshov :

Tamamen estetik bir soru.

Burada kendi resmimi nasıl yapabilirim? MT4



 #property icon
 
Artyom Trishkin :

Evet, bu özelliği biliyorum, teşekkürler. Ancak kullanıcının simgeye sahip olması gerektiği anlamına gelir. Bir şekilde atlamak mümkün mü? Böylece bir kişi yalnızca ex4'ü indirir ve resmimi görüntüler?

 
Koldun Zloy :

Her tür için belirli dizi hücreleriniz varsa, dizi yerine bir yapı yapın.

Bunu yapmayı düşündüm, ancak kişinin yapıdan öğeleri yapısal diziye koyduğu bağlantıyı kaybettim. Yapıyı bildirdi ve ardından bir dizi yarattı ve int string double türü her sayının altında saklandı, ancak orada hücrede yalnızca bir farklı öğenin olduğu bir dizi vardı, bu yüzden burada da mümkün olduğunu düşündüm, ama görünüşe göre olumsuzluk.

 
Igor Makanu :

özellikle ne kesildi?

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

Bu örnekte, fonksiyona 2 boyutlu ve 1 boyutlu bir dizi geçtim ve bu arada bu benim kodum.

İşte mql4'ün neler yapamayacağına dair başka bir örnek

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

Bunlardan hangisi mql4 olabilir veya burada bir örnek

 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 :

Evet, bu özelliği biliyorum, teşekkürler. Ancak kullanıcının simgeye sahip olması gerektiği anlamına gelir. Bir şekilde atlamak mümkün mü? Böylece bir kişi yalnızca ex4'ü indirir ve resmimi görüntüler?

Resmi kaynak olarak ekleyin .
 
Nikita Chernyshov :

Evet, bu özelliği biliyorum, teşekkürler. Ancak kullanıcının simgeye sahip olması gerektiği anlamına gelir. Bir şekilde atlamak mümkün mü? Böylece bir kişi yalnızca ex4'ü indirir ve resmimi görüntüler?

anlamına gelmez.

 
Alexey Viktorov :
Bir kaynağa bir resim ekleyin .

Simge çalışmayacak çünkü.

#property simgesi ve bu nedenle simgeyi eski olarak paketler

 
Seric29 :

ve bu arada bu benim kodum

Peki, bu sizin kodunuzsa, o zaman .dll'ye derleyin ve MQL'ye bağlanın, "2 tıklama için" çalışın, üç ay boyunca anlaşılmaz bir tartışma
 
Artyom Trishkin :

anlamına gelmez.

Teşekkürler, anladım, gözlerimi açtım.

 
Igor Makanu :
Peki, bu sizin kodunuzsa, o zaman .dll'ye derleyin ve MQL'ye bağlanın, "2 tıklama için" çalışın, üç ay boyunca anlaşılmaz bir tartışma

Sorun şu ki, şablonları dizileri kabul eden tüm işlevlere uyguluyorum ve şablon işlevlerinin dışa ve içe aktarılması mümkün değil, bu her tür için işlevleri çoğaltmak zorunda kalacak, mql boyutuyla aynı durum onları vermek istemiyor sadece böyle ve yine onları boyuta göre çoğaltmanız gerekiyor, bu bir tür aşırı yükleme oluyor, ancak ek argümanlar eklemenize gerek yok; yine de, bu aynı zamanda ekstra bir koddur, fonksiyon argümanlarını arttırmak için mql de kazanır' Verileri aynen bu şekilde geri verin, aşırı yükleme yapmak için fonksiyonları çoğaltmanız gerekiyor, ayrıca c++ tarafından renklerin ve tarihlerin nasıl işlendiği ile ilgili sorunu çözmedim, ayrıca c++ da stand yok -yalnızca diziler ve diğer veriler hakkında veri döndüren işlevler burada kendi işlevlerinizi yazmanız gerekir, hiçbir yere ulaşamayacağınız ve bunları yazamayacağınız açık, ancak bir yıl sürecek, kütüphaneler aramanız gerektiğinde kalibrasyonu da zorlaştıracak yazdırma işlevi ve oraya 20 parametre girin ve günler boyunca her şeyi manuel olarak sayın ve kitaplıkların varlığı Dosyaların doğruluğunu izlemek zorundayım, bilmediğim tuzaklardan bahsetmiyorum bile, sonunda, tüm bunları göz önünde bulundurarak, ya mql'nin tüm özelliklerini kullanarak sorunu çözmeye ya da daha sonra gereksiz kontroller yapmaya değer. kaydeder, ancak kod basit olacaktır. Bu yüzden buna değmediğini düşünüyorum, kendi dilimi yazmayı düşündüm ama sonra yine robotumun %15'ini yazdım ve her şeyi kalibre etmek ve mümkün olduğunca evrensel hale getirmek ve hızlı performans sağlamak için bir yıldan fazla zaman harcadım ve 3 yıl boyunca hesaplamalar. Sadece kendi dilimi yazacak kadar ömrüm yok. Bunun gibi bir şey.