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

 
Vladimir Karputov:

Egal, ob es sich um Handles oder Objekte der Klasse "Trend.mqh::CiMA" handelt, Sie müssen sie trotzdem alle erstellen.

Wie lässt sich das Problem in meinem Fall lösen?

Die vollständige Aufgabe besteht darin, 3 Zeitrahmen für 28 Symbole im OnTick-Body zu erhalten.
Ist es notwendig, Griffe = 28*3 zu haben?
Вопросы от начинающих MQL5 MT5 MetaTrader 5
Вопросы от начинающих MQL5 MT5 MetaTrader 5
  • 2017.09.15
  • www.mql5.com
Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000...
 
Vitaly Muzichenko:

Wie kann ich das Problem in meinem Fall lösen?

Komplettes Problem, 3 Zeitrahmen für 28 Zeichen im OnTick-Körper erhalten.
Ist es notwendig, = 28*3 zu behandeln?

Ja, natürlich.

 
Vladimir Karputov:

Ja, natürlich.

Schade, natürlich(

Vladimir, Sie haben an den Servicedesk geschrieben, denn so sollte es nicht sein, und es kann nicht sein, wir müssen etwas falsch machen, dass wir unter hundert Handles für einen einfachen Expert Advisor erstellen müssen.
 
Vitaly Muzichenko:

Essollte nicht so sein, und es kann nicht sein, wir müssen etwas falsch machen, dass wir hundert Handles für einen einfachen Expert Advisor erstellen müssen.

Wo liegt das Problem? Sie wissen, was ein Array ist, oder? Eine Struktur?

Natürlich, wenn Sie 100 Variablen erstellen, eine für jeden Griff... ... das wäre ein echter Flop.

 
Alexey Kozitsyn:

Wo liegt das Problem? Sie wissen, was ein Array ist, oder? Eine Struktur?

Natürlich, wenn Sie 100 Variablen erstellen, eine für jeden Griff... Das wäre ein echter Flop.

Hier, eine Struktur in der Tat, aber ich kann nicht herausfinden, wie man eine schnell zu machen, kann ich?

 
Vitaly Muzichenko:

Hier, wirklich eine Struktur, aber ich kann nicht herausfinden, wie ich sie schnell zusammensetzen kann, oder?

struct SHandle
   {
    string symbol;
    int handleM1;
    int handleM5;
    int handleM15;
   };
//---- или
struct SHandle
   {
    string symbol;
    int timeframes[3];   // Не знаю точно, можно ли так написать, если что, через ArrayResize();
   };
//--- 
SHandle _handles[28];    

Es geht ungefähr so...

 

Liebe Kolleginnen und Kollegen, es fällt mir schwer, das überhaupt zu verstehen.

Ich bekomme immer aus dem Array Array außerhalb des Bereichs geworfen. Ich habe so viele Codes untersucht und geschrieben, dass ich immer wieder die gleichen Fehler erhalte. Bitte teilen Sie mir mit, ob es einen Ort (eine Verzweigung, einen Artikel) gibt, an dem ich herausfinden kann, wie ich Schleifen korrekt erstellen kann, die mich nicht aus dem Array werfen. Ich verliere viel Zeit bei der Suche nach einem Fehler ... manchmal verstehe ich nicht, was ich repariert habe und warum es funktioniert.

Zum Beispiel der folgende Code:if (q1[i] > q1[i+1]) q2[i]=1;

auf q1[i+1]

in der eingeschalteten Einheit sind

SetIndexPuffer(2,q1,INDICATOR_CALCULATIONS);

ArraySetAsSeries(q1,true);

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
  int sum,i,a ,start ;
  if (prev_calculated ==0) { start =0 ; q1[0]=q1[1];}
  else  start = prev_calculated;
  CopyBuffer(pulse_clear_Handle,0,start,rates_total,q1);
  for (i = start ; i < rates_total;i++)
  {if (q1[i] > q1[i+1]) q2[i]=1 ;
  else
  if (q1[i] < q1[i+1]) q2[i]=-1;
  else continue ;
 
LookingFor:

Liebe Kolleginnen und Kollegen, es fällt mir schwer, das überhaupt zu verstehen.

Es fällt ständig außerhalb des Arrays aus dem Bereich. Ich habe so viele Codes untersucht und geschrieben, dass ich immer wieder die gleichen Fehler erhalte. Bitte teilen Sie mir mit, ob es einen Ort (eine Verzweigung, einen Artikel) gibt, an dem ich herausfinden kann, wie ich Schleifen korrekt erstellen kann, die mich nicht aus dem Array werfen. Ich verliere viel Zeit, wenn ich einen Fehler finde ... manchmal verstehe ich nicht, was ich repariert habe und warum es funktioniert.

Zum Beispiel der folgende Code:if (q1[i] > q1[i+1]) q2[i]=1;

auf q1[i+1]

in der eingeschalteten Einheit sind

SetIndexPuffer(2,q1,INDICATOR_CALCULATIONS);

ArraySetAsSeries(q1,true);

for (i = start ; i < rates_total-1;i++)
 

Nochmals herzlichen Dank!

 

Kollegen, MathSum-Funktion, Beschreibung hier

https://www.mql5.com/ru/docs/standardlibrary/mathematics/stat/mathsubfunctions/statmathsum

wird in Build 1643 nicht erkannt. Muss ich alles abreißen und aktualisieren?

Документация по MQL5: Стандартная библиотека / Математика / Статистика / Вспомогательные функции / MathSum
Документация по MQL5: Стандартная библиотека / Математика / Статистика / Вспомогательные функции / MathSum
  • www.mql5.com
Стандартная библиотека / Математика / Статистика / Вспомогательные функции / MathSum - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5