Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 109

 
Hesabınıza yatırmadıysanız, kazandığınız parayı nasıl çekebilirsiniz.
 
vik1991 :
Hesabınıza yatırmadıysanız, kazandığınız parayı nasıl çekebilirsiniz.
İlk para yatırmadan piyasadan nasıl para kazandığınızı merak ediyorum.
 

MQL5'te komutları paralelleştirmek mümkün müdür? Örneğin, bir komutun yürütülmesini başka bir çekirdeğe gönderin. Onlar. böylece program çalışmaya devam eder ve ana programa müdahale etmeden (zaman almadan) belirli bir fonksiyonun kendi bağlamında gitmesine izin verir. Teşekkür ederim.

Документация по MQL5: Основы языка / Функции
Документация по MQL5: Основы языка / Функции
  • www.mql5.com
Основы языка / Функции - Документация по MQL5
 
karlen :

MQL5'te komutları paralelleştirmek mümkün müdür? Örneğin, bir komutun yürütülmesini başka bir çekirdeğe gönderin. Onlar. böylece program çalışmaya devam eder ve ana programa müdahale etmeden (zaman almadan) belirli bir fonksiyonun kendi bağlamında gitmesine izin verir. Teşekkür ederim.

Numara. Ne yazık ki, çoklu kullanım MQL5 derleyicisi tarafından desteklenmiyor.

Böyle bir görevi uygulamak sadece dll kullanımı ile mümkündür.

 

Basit bir algılayıcı uygulamaya çalıştım.

En basit ağlar bir stupora girer. Sorun öğrenme algoritmasında ama bulamıyorum.

Lütfen bana söyle.

 //+------------------------------------------------------------------+
//|                                                   Perceptron.mqh |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                                           panker |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link       "panker"
//+------------------------------------------------------------------+
//+               Класс однослойного перцепторна                     |
//+------------------------------------------------------------------+
class CSNeuron
  {
public :
   double             out_err[]; //Ошибки для входов
   
   double             Out( double &_inp[]); // Основная функция вывода
   void               Education( double err); // Фун-ция обучения
                     CSNeuron();
   bool               Load( string name);
   bool               Save( string name);
   void               Init( int inp_count); //Фун-ция инициализации

private :
   bool               init;         //Синглтон инициализации
   int                arr_size; //Размер массива перцептрона
   double             inp[];   //Входы нейронов
   double             ans[];   //Ответы каждого нейрона
   double             weight[]; //Веса нейронов
   double             last_out; //Последний результат
   double             l_err;   //Последняя ошибка
   double             k_study; //Коэффициент обучения
   double             summ_akt; //Коэффициент приведения результата
   long               count_mid;
   struct             ToSave
     {
       bool               init;
       int                arr_size;
       double                     last_out,
                                                l_err,
                                                k_study;
     };

   double             Aktiv( double x); //Функция активации
   double             RND();           //Рандомная машина
   
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
CSNeuron::CSNeuron( void )
  {
   init= false ;
   k_study= 0.00001 ;
   count_mid= 0 ;
  };
//+------------------------------------------------------------------+
//|              Фун-ция инициализации                               |
//+------------------------------------------------------------------+
void CSNeuron::Init( int inp_count)
  {
   init= true ;
   max_akt=inp_count;
   min_akt=- 1 *inp_count;
   ArrayResize (inp,inp_count, 0 );
   ArrayResize (weight,inp_count, 0 );
   ArrayResize (out_err,inp_count, 0 );
   ArrayResize (ans,inp_count, 0 );

   ArrayInitialize (ans, 0 );
   ArrayInitialize (inp, 0 );
   ArrayInitialize (out_err, 0 );
   for ( int i= 0 ;i<inp_count;i++)
     {
      weight[i]=RND();
     }
   k_study= 1 /( double )inp_count;
}
//+------------------------------------------------------------------+
//|                      Рандомная машина                            |
//+------------------------------------------------------------------+
double CSNeuron::RND( void )
  {
   double rnd=( double ) rand ()/ 32727 ;
   if (rnd== 1 || rnd== 0 )RND();
   return (rnd);
  }
//+------------------------------------------------------------------+
//|                    Основная функция вывода                       |
//+------------------------------------------------------------------+
double CSNeuron::Out( double &_inp[])
  {
   arr_size= ArraySize (_inp);
   double l_out= 0 ;
   if (!init)Init(arr_size);

   ArrayCopy (inp,_inp, 0 , 0 ,arr_size);
   for ( int i= 0 ;i<arr_size;i++)
     {
      ans[i]=inp[i]*weight[i];
       double d;
      d=ans[i];
      l_out+=ans[i];
     }
   last_out=l_out;
   l_out=Aktiv(l_out);
   return (l_out);
  }
//+------------------------------------------------------------------+
//|                    Функция активации                             |
//+------------------------------------------------------------------+
double CSNeuron::Aktiv( double x)
  {
   
   double y= 0 ; double mid_plus_akt,mid_min_akt;
   summ_akt+= MathAbs (x);count_mid++;
   mid_plus_akt=summ_max_akt/( double )count_mid;
   mid_min_akt=- 1 *mid__plus_akt;
   
   if (mid_min_akt-mid_min_akt== 0 )mid_min_akt= 0.0001 ;
   y=((x-mid_min_akt)* 1.98 )/(mid_plus_akt-mid_min_akt)- 0.99 ;
   return (y);
  }
//+------------------------------------------------------------------+
//|                     Фун-ция обучения                             |
//+------------------------------------------------------------------+
void CSNeuron::Education( double err)
  {
   /*if(k_study<=10 && k_study>=0.00000001)
     {
      double x=k_study/0.1;
      double y=k_study*0.1;
      if(x>=10)if(MathAbs(l_err)<MathAbs(err))k_study*=0.1;
      if(y<=0.00000001)if(MathAbs(l_err)>=MathAbs(err))k_study/=0.1;
      if(MathAbs(l_err)<MathAbs(err))k_study/=0.1;
      if(MathAbs(l_err)>MathAbs(err))k_study*=0.1;
     }
   l_err=err;*/
   
   for ( int i= 0 ;i<arr_size;i++)
     {
      out_err[i]=err*weight[i];
      weight[i]=weight[i]+err*k_study*weight[i]*inp[i];
     }
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool CSNeuron::Save( string name)
  {
   string name_str=name+ "_str" ;
   string name_arr1=name+ "_ans" ;
   string name_arr2=name+ "_weight" ;
   int handle1= FileOpen (name_str, FILE_WRITE | FILE_BIN );
   int handle2= FileOpen (name_arr1, FILE_WRITE | FILE_BIN );
   int handle3= FileOpen (name_arr2, FILE_WRITE | FILE_BIN );
   if (handle1== INVALID_HANDLE )
     {
       int x= 0 ; while (x< 1 )
        {
         Print ( "Can not save file " ,name_str); Sleep ( 10000 );
        }
     }
   if (handle2== INVALID_HANDLE )
     {
       int x= 0 ; while (x< 1 )
        {
         Print ( "Can not save file " ,name_arr1); Sleep ( 10000 );
        }
     }
   if (handle3== INVALID_HANDLE )
     {
       int x= 0 ; while (x< 1 )
        {
         Print ( "Can not save file " ,name_arr2); Sleep ( 10000 );
        }
     }
   
   ToSave s_data;
   s_data.arr_size=arr_size;
   s_data.init=init;
   s_data.k_study=k_study;
   s_data.l_err=l_err;
   s_data.last_out=last_out;
   if ( FileWriteStruct (handle1,s_data,- 1 )<= 0 ){
       Print ( "Something is wrong! Dont save s_data!" ); return ( false );
      }
   if ( FileWriteArray (handle2,ans, 0 , WHOLE_ARRAY )<= 0 ){
       Print ( "Something is wrong! Dont save ans!" ); return ( false );
      }
   if ( FileWriteArray (handle3,weight, 0 , WHOLE_ARRAY )<= 0 ){
       Print ( "Something is wrong! Dont save weight!" ); return ( false );
      }
   FileClose (handle1);
   FileClose (handle2);
   FileClose (handle3);
   //Print(name," files was succesfully saved");
   return ( true );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool CSNeuron::Load( string name)
  {
   string name_str=name+ "_str" ;
   string name_arr1=name+ "_ans" ;
   string name_arr2=name+ "_weight" ;
   
   int handle1= FileOpen (name_str, FILE_READ | FILE_BIN );
   int handle2= FileOpen (name_arr1, FILE_READ | FILE_BIN );
   int handle3= FileOpen (name_arr2, FILE_READ | FILE_BIN );
   
   if (handle1== INVALID_HANDLE ||handle2== INVALID_HANDLE ||handle3== INVALID_HANDLE )
     {
       int x= 0 ; while (x< 1 )
        {
         Print ( "Can not load file " ,name); return ( false );
        }
     }

   ToSave l_data;

   if ( FileReadStruct (handle1,l_data,- 1 )<= 0 ) Print ( "Something is wrong! Dont load Data!" );
   if ( FileReadArray (handle2,ans, 0 , WHOLE_ARRAY )<= 0 ) Print ( "Something is wrong! Dont load Data!" );
   if ( FileReadArray (handle3,weight, 0 , WHOLE_ARRAY )<= 0 ) Print ( "Something is wrong! Dont load Data!" );

   arr_size=l_data.arr_size;
   init=l_data.init;
   k_study=l_data.k_study;
   l_err=l_data.l_err;
   last_out=l_data.last_out;
   Init(arr_size);
   
   FileClose (handle1);
   FileClose (handle2);
   FileClose (handle3);
   //Print(name," files was succesfully load");
   return ( true );
  }
 
felidae : İşlemci kaynaklarımı hesaplamalar için veriyorum.
İlk para yatırmadan piyasadan nasıl para kazandığınızı merak ediyorum.
 
Neden hizmetlerim çalışırken, işlemci hiç yüklenmiyor, %0 geçişler yavaş gidiyor, ancak iki günlük çalışmada yalnızca 0,01 kazanılıyor
 

lütfen bana MT4'te sinyalleri kaydettiğimi ve etkinleştirdiğimi söyleyin, nedense çalışmıyor! ve günlük bölümünde MT4'te "('3054391': Signal - 78.140.156.176:443'e proxy aracılığıyla bağlanılamadı)" gibi bir yazıt var ne olabilir???