Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 109

 
Wie Sie verdientes Geld abheben können, wenn Sie es nicht eingezahlt haben.
 
vik1991:
Wie können Sie Ihr verdientes Geld abheben, wenn Sie es nicht eingezahlt haben?
Ich frage mich, wie Sie auf dem Markt ohne eine erste Einzahlung Geld verdient haben
 

Ist es möglich, Befehle in MQL5 zu parallelisieren? Zum Beispiel, um die Ausführung eines Befehls an einen anderen Kern zu senden. Mit anderen Worten: Das Programm wird weiter ausgeführt, und eine bestimmte Funktion wird in ihrem eigenen Kontext ausgeführt, ohne das Hauptprogramm zu stören (Zeit zu beanspruchen). Ich danke Ihnen.

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

Können Sie Befehle in MQL5 parallelisieren? Zum Beispiel, um die Ausführung eines Befehls an einen anderen Kernel zu senden. Mit anderen Worten: Das Programm wird weiter ausgeführt, und eine bestimmte Funktion wird in ihrem eigenen Kontext ausgeführt, ohne das Hauptprogramm zu stören (Zeit zu beanspruchen). Ich danke Ihnen.

Nein. Multithreading wird vom MQL5-Compiler leider nicht unterstützt.

Eine solche Aufgabe kann nur mit Hilfe einer DLL realisiert werden.

 

Versucht, ein einfaches Perceptron zu implementieren.

Die einfachsten Netzwerke verfallen in einen Stupor. Das Problem liegt im Lernalgorithmus, aber ich kann es nicht finden.

Können Sie mir bitte einen Tipp geben?

//+------------------------------------------------------------------+
//|                                                   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: Ich verwende meine Prozessorressourcen für die Berechnungen.
Ich frage mich, wie Sie ohne eine erste Einzahlung Geld auf dem Markt verdient haben.
 
Warum ist es so, dass wenn ich Dienste laufen habe der Prozessor überhaupt nicht belastet wird 0% Last geht aber langsam in zwei Tagen Arbeit nur 0,01 verdient haben
 

Bitte sagen Sie mir bitte, ich habe registriert und aktiviert ein Signal auf MT4 aus irgendeinem Grund funktioniert es nicht! aber auf MT4 im Abschnitt Magazin verlässt die folgende Inschrift "('3054391': Signal - Verbindung zu 78.140.156.176:443 durch Proxy fehlgeschlagen)" was kann es sein?

 
Der Link ist nicht mehr aktuell.
Grund der Beschwerde: