Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 521

 
Frohe Ostern an alle! Wie kann man das Problem lösen, dass in mql4 double type bei der Preisberechnung nicht -9315605757223320000.00, -9232595408891630000.00 anzeigt und mql5 diese von irgendwoher ausgräbt? Vielleicht ein Fehler in den Zitaten? Wie kann diese Situation umgangen werden? Danke.
 
mwwm:
Frohe Ostern an alle! Wie kann man das Problem lösen, dass in mql4 double type bei der Preisberechnung nicht -9315605757223320000.00, -9232595408891630000.00 anzeigt und mql5 diese von irgendwoher ausgräbt? Vielleicht ein Fehler in den Zitaten? Wie kann diese Situation umgangen werden? Ich danke Ihnen.
Wo ist der Code?
 
Artyom Trishkin:
Wo ist der Code?

Hier ist ein grober Entwurf:

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot OC
#property indicator_label1  ""
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
#property strict 
//--- indicator buffers
double Op[],Hi[],Lo[],Cl[],Ti[];
double q1[100],q2[100];

///---------
double Lim1[10],Lim2[10];
double Max1[10],Min1[10];
double Max2[10],Min2[10];
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

//+------------------------------------------------------------------+ 
//| Custom indicator initialization function                         | 
//+------------------------------------------------------------------+ 
int OnInit()
  {
//--- откроем файл 
   ResetLastError();
//--- привязка массива к индикаторному буферу с индексом 0 
   SetIndexBuffer(0,Ti,INDICATOR_DATA); SetIndexBuffer(1,Op,INDICATOR_DATA);SetIndexBuffer(2,Hi,INDICATOR_DATA);
   SetIndexBuffer(3,Lo,INDICATOR_DATA); SetIndexBuffer(4,Cl,INDICATOR_DATA);
//---- установка значений индикатора, которые не будут видимы на графике 
//--- 
   ArraySetAsSeries(Ti,true);
   ArraySetAsSeries(Op,true);
   ArraySetAsSeries(Hi,true);
   ArraySetAsSeries(Lo,true);
   ArraySetAsSeries(Cl,true);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+ 
//| Custom indicator iteration function                              | 
//+------------------------------------------------------------------+ 
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   ArraySetAsSeries(time,true); 
   ArraySetAsSeries(open,true); 
   ArraySetAsSeries(high,true); 
   ArraySetAsSeries(low,true); 
   ArraySetAsSeries(close,true); 
   ArrayInitialize(Lim1,1);ArrayInitialize(Lim2,1);
  
   int f=1;
/////////      
//--- Проверка на минимальное колиество баров для расчёта
   if(rates_total<1) return 0;
//--- Проверка и расчёт количества просчитываемых баров
   int limit=rates_total-prev_calculated;
   if(limit>1) // если это первый запуск, или изменение истории, или открытие нового бара
     {
      limit=rates_total-1;                   // установим начало цикла на начало исторических данных
      ArrayInitialize(Ti,EMPTY_VALUE);       // инициализируем массив
      ArrayInitialize(Op,EMPTY_VALUE);
      ArrayInitialize(Hi,EMPTY_VALUE);
      ArrayInitialize(Lo,EMPTY_VALUE);
      ArrayInitialize(Cl,EMPTY_VALUE); 
     }
 int p=0;
    
//--- Расчёт индикатора
   for(int i=limit-1; i>=0 && !IsStopped(); i--)
     {
      Op[i]=open[i];Hi[i]=high[i];Lo[i]=low[i];Cl[i]=close[i];

            q1[1]=((Hi[i+f+0]+Lo[i+f+0])/2+Hi[i+f+0])/2;
            Lim1[1]=q1[1]-Hi[i+f+1];  
            Max1[1]=MathMax(Max1[1], Lim1[1]);
            Min1[1]=MathMin(Min1[1], Lim1[1]);

double n=100000000;
if(MathAbs(Lim1[1])>n){p++;Print(Lim1[1]," = ",p,"  = ",i);}
 } 
//--- return value of prev_calculated for next call 
   return(rates_total);
  }
 
Hallo! Ich möchte vps von mql installieren. Ich habe 2 Konten mit verschiedenen Brokern und ich möchte Signale auf jedes Konto von 2 verschiedenen Signalanbietern kopieren. Muss ich einen separaten vps für jedes Konto für 10$/Monat anschließen oder kann ich einen anschließen?
 
Bitte senden Sie mir einen direkten Link zu mt4. Ich versuche, mt4 herunterzuladen, aber stattdessen wird mt5 installiert. Vielen Dank im Voraus.
 
Aleksei Poliakov:
Bitte senden Sie mir einen direkten Link zu mt4. Ich versuche, mt4 herunterzuladen, aber stattdessen wird mt5 installiert. Ich danke Ihnen im Voraus.
Laden Sie es einfach von Ihrem Broker herunter. Oder eine andere.
 
Artyom Trishkin:


Alexey Viktorov:


Vielen Dank, ich verstehe. Wie behalte ich den Überblick, wenn ich einen Teil eines Auftrags zwei- oder dreimal abschließen muss? Ich habe z.B. ein 0,1 Lot geschlossen, dann 0,5, dann wieder 0,25. Die letzte geschlossene Position entspricht dem Ticket für die offene Position, aber wie soll ich einen Gewinn für eine zuvor geschlossene Position ermitteln?

 
PolarSeaman:

Vielen Dank, ich verstehe. Wie behalte ich den Überblick, wenn ich einen Teil eines Auftrags zwei- oder dreimal abschließe? Ich habe z.B. ein 0,1 Lot geschlossen, dann 0,5 und dann noch einmal 0,25. Die letzte geschlossene Position entspricht dem Ticket für die offene Position und dem Gewinn der vorhergehenden geschlossenen Position, wie soll ich danach suchen?

P1 ist die einzige. Führen Sie Ihre eigenen Aufzeichnungen und Unterlagen.

Eine weitere Möglichkeit ist die Verwendung der Auftragshistorie des Terminals, die jedoch einige Tücken aufweist.

 
Maxim Kuznetsov:

p1 und der einzige. führen sie ihre eigenen aufzeichnungen und geschichten.

Was für eine Wendung!))

 

Ich habe hier im Forum eine Funktion gefunden, mit der man die Gewinne ab einem bestimmten Datum berechnen kann: "function returns total profits in the currency of the positions closed since a certain date".

Ich gehe davon aus, dass dies bei mir funktionieren wird. Nur wie kann ich herausfinden, an welchem Datum die Position, die ich teilweise schließe, eröffnet wurde?