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

 
Artyom Trishkin:

Fügen Sie einfach ein weiteres CArrayObj-Array zum Array CArrayObj: Add() hinzu

Funktioniert so nicht. Parameterumwandlung nicht erlaubt

Übrigens, falls es wichtig ist. Mein Objekt, das dem Array hinzugefügt werden soll, ist eine von CArrayObj geerbte Klasse.

class CCustomClass : public CArrayObj
{
}




CCustomClass obj1;
CCustomClass obj2;
...

CArrayObj objects_array;
objects_array.Add(obj1); 
Nun, es flucht in der letzten Zeile - Parameterumwandlung nicht erlaubt.
 
objects_array.Add(GetPointer(obj1)); 
Es funktioniert, ich habe nicht gesehen, dass ich keinen Zeiger hatte.
 
TaywinLannister:

Liebe Forumsmitglieder, ich bitte um Hilfe!!!

Ich möchte einer Variablen einen Preisschritt zuweisen:

int V=SymbolInfoInteger(Symb,SYMBOL_POINT);

error: 'SymbolInfoInteger' - keine der Überladungen kann auf den Funktionsaufruf angewendet werden

Worin besteht mein Fehler noch einmal?


int V=(int)SymbolInfoInteger(Symb,SYMBOL_POINT);

Also versuchen Sie es.

 
foreXteller:

Liebe Mitglieder des Forums!

Bitte um Rat!!!

Das MetaTrader 5-Fenster zeigt die Bid& Ask-Werte an, die (soweit ich weiß) den Gewinn/Verlust bestimmen.

Wenn ich jedoch versuche, Minutenkurse der Historie zu verwenden, um meine Strategie zu testen, enthalten diese Kurse nicht die Bid- und Ask-Werte, sondern geben die Werte " OPEN", "HIGH" "LOW", "CLOSE", "TICKVOL","VOL","SPREAD" an. Es ist nicht ganz klar, wie man aus diesen Werten Bid und Ask ableitet und wie man den Spread berechnet.

Alles ist absolut klar. Beschreiben Sie genauer, was genau mit "wenn ich versuche, Anführungszeichen für den Minutenverlauf zu verwenden" gemeint ist? Was genau tun Sie oder wollen Sie tun?

 
TaywinLannister:

Liebe Forumsmitglieder, ich bitte um Hilfe!!!

Ich möchte einer Variablen einen Preisschritt zuweisen:

int V=SymbolInfoInteger(Symb,SYMBOL_POINT);

error: 'SymbolInfoInteger' - keine der Überladungen kann auf den Funktionsaufruf angewendet werden

Was ist noch mal mein Fehler?


SymbolInfoInteger Hilfe:

1. Gibt direkt den Wert der Eigenschaft zurück.

long  SymbolInfoInteger( 
   string                    name,      // символ 
   ENUM_SYMBOL_INFO_INTEGER  prop_id    // идентификатор свойства 
   );

2. Gibt je nach Erfolg der Funktion true oder false zurück. Bei Erfolg wird der Wert der Eigenschaft in der Zielvariablen abgelegt, die durch den letzten Parameter als Referenz übergeben wird.

bool  SymbolInfoInteger( 
   string                    name,      // символ 
   ENUM_SYMBOL_INFO_INTEGER  prop_id,   // идентификатор свойства 
   long&                     long_var   // сюда примем значение свойства 
   );


Das ist OR long OR bool.

 
TaywinLannister:

Liebe Forumsmitglieder, ich bitte um Hilfe!!!

Ich möchte einer Variablen einen Preisschritt zuweisen:

int V=SymbolInfoInteger(Symb,SYMBOL_POINT);

error: 'SymbolInfoInteger' - keine der Überladungen kann auf den Funktionsaufruf angewendet werden

Was ist noch mal mein Fehler?


double V=SymbolInfoDouble(Symb,SYMBOL_POINT);

Punkt ist ein Wert vom Typ double. Wenn sie als int empfangen wird, hat sie den Wert Null.

 
Vladimir Karputov:

SymbolInfoInteger Hilfe:

1. Gibt direkt den Wert der Eigenschaft zurück.

2. Gibt je nach Erfolg der Funktion true oder false zurück. Bei Erfolg wird der Wert der Eigenschaft in der Zielvariablen abgelegt, die durch den letzten Parameter als Referenz übergeben wird.


Das ist OR long OR bool.

Verstanden, danke)

 
#property copyright "Copyright 2018, Sergey S Morozov"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

//#property indicator_separate_window    // Индик. рисуется в новом окне
#property indicator_chart_window    // Индик. рисуется в основном окне

#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Red     // Цвет первой линии

extern int History  =50;            // Колич.баров в расчётной истории
extern int Aver_Bars=5;             // Количество баров для расчёта

double ArrayBuff[];

//----------------------------------------------------------------------------------------------------

int OnInit()
{
   SetIndexBuffer(0,ArrayBuff);
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1);
   return(INIT_SUCCEEDED);
}

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[])

  {

      int i,                           // Индекс бара
      n,                               // Формальный параметр
      Counted_bars;                    // Количество просчитанных баров 
      double
      Sum_H,                           // Сумма значений High за переиод
      Sum_L;                           // Сумма значений Low  за переиод
   //--------------------------------------------------------------------
      Counted_bars=IndicatorCounted(); // Количество просчитанных баров
      i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
      if (i>History-1)                 // Если много баров то ..
         i=History-1;                  // ..рассчитывать заданное колич.
      while(i>=0)                      // Цикл по непосчитанным барам
        {
         Sum_H=0;                      // Обнуление в начале цикла
         Sum_L=0;                      // Обнуление в начале цикла
         for(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений
           {
            Sum_H=Sum_H + High[n];     // Накопление суммы макс.значений
            Sum_L=Sum_L + Low[n];      // Накопление суммы мин. значений
           }
         ArrayBuff[i]=(Sum_H-Sum_L)/Aver_Bars;  // Знач. 0 буфера на i-ом баре
         i--;                                   // Расчёт индекса следующего бара
        }

   return(rates_total);

  }
//+------------------------------------------------------------------+

Ich habe gerade erst angefangen, ich weiß noch nicht, wie man in dieser Sprache schreibt. Das Problem ist jedoch, dass die Grafik in einem neuen Fenster erscheint. Aber ich kann sie nicht in der aktuellen Version anzeigen... Was ist mein Fehler? Da ich selbst nicht in der Lage war, sie zu schreiben, und ich hier keine Beispiele finden kann. Und schon gar nicht durch eine Funktion wie SetChartData(point1,point2); es geschieht einfach von selbst...

Und die Variable scheint gesetzt zu sein(indicator_chart_window), aber trotzdem funktioniert es nicht....

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Как прописать расписание торговли робота? Здравствуйте...
 
Vladimir Karputov:

Es ist absolut alles vorhanden. Beschreiben Sie genauer, was genau mit "wenn ich versuche, Anführungszeichen für den Minutenverlauf zu verwenden" gemeint ist? Was genau tun Sie oder wollen Sie tun?

Um die historischen Kurse herunterzuladen, laden Sie MetaTrader 5, klicken Sie auf das Symbol mit dem Dollar-Symbol: "Symbol List Display" (oder Sie können Strg U drücken). Das Fenster "Symbole" wird angezeigt. Auf der Registerkarte "SPEZIFIKATION" finden Sie das gewünschte Währungspaar, z.B. GBPCHF. In der Registerkarte "BARs" stellen Sie die Minutennotierungen (M1) und das Datum des Beginns und des Endes des gewünschten Zeitraums ein. Nach einem Klick auf die Schaltfläche "ANFORDERN" wird eine csv-Datei heruntergeladen, die Sie zum Testen von Strategien mit dem Metatrader oder mit Ihren eigenen Programmen verwenden können.

Mit EXCEL können Sie den Inhalt dieser Datei anzeigen, wobei die erste Zeile die Informationen in der Datei enthält, d. h. "Datum, Uhrzeit" und dann" OPEN", "HIGH" "LOW", "CLOSE", "TICKVOL", "VOL", "SPREAD".

Ich weiß genau, was diese Daten bedeuten, aber wie kann ich BIT und ASK aus diesen Daten machen, die MetaTrader 5 verwendet?

 
Bitte teilen Sie mir mit, wo in mt5 Sie Informationen über ein Symbol überprüfen können? Ich erinnere mich, dass man das in mt 4 im Strategietester überprüfen konnte, aber im mt5-Tester habe ich diese Funktion nicht gefunden.