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

 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Wanzen, Wanzen, Fragen

comp, 2016.03.23 09:49

Wie erkenne ich die Diagrammperiode nach ChartID?ChartGetInteger erlaubt dies nicht in einer Aktion.

Bislang habe ich eine Krückenlösung gefunden, indem ich eine Vorlage gespeichert und den Punkt darin analysiert habe.

Wie findet man das normalerweise heraus?

ChartPeriod verwenden

ChartPeriod

Gibt denPeriodenwert des angegebenen Diagramms zurück.

ENUM_TIMEFRAMESChartPeriod(
longchart_id=0// Diagramm-ID
);

Parameter

chart_id=0

[ID der Karte. 0 bedeutet die aktuelle Karte.

Zurückgegebener Wert

Wert vom TypENUM_TIMEFRAMES. Ist kein Diagramm vorhanden, wird 0 zurückgegeben.

 
Karputov Vladimir:

ChartPeriod verwenden

Ich danke Ihnen.
 

Guten Tag!

Wie kann der Status des One-Click-Trading-Panels bestimmt werden (ein- oder ausgeklappt)?

 
Sagen Sie mir, wie ich in diesem Anfänger-Thread nach Fragen zum richtigen Thema suchen kann. Der Thread ist zu einer riesigen Schicht von Fragen und Antworten angewachsen, so dass es nicht mehr möglich ist, manuell zu suchen. Wenn Sie schon gezögert haben, eine Frage zu stellen, wurde sie vielleicht schon vor langer Zeit hier beantwortet, aber die Suche erfolgt auf der gesamten Website und nicht in diesem speziellen Abschnitt "für Anfänger" ?
 
Alexander:
Sagen Sie mir, wie ich in diesem Anfänger-Thread nach Fragen zum richtigen Thema suchen kann. Der Thread ist zu einer riesigen Schicht von Fragen und Antworten angewachsen, so dass eine manuelle Suche nicht mehr möglich ist. Eine Frage zu stellen, zögert bereits, vielleicht wurde sie hier schon vor langer Zeit beantwortet, und die Suche erfolgt auf der gesamten Website und nicht in diesem speziellen Abschnitt "für Anfänger" ?

Geben Sie in eine Google-Suche ein: search site:https://www.mql5.com/ru/forum/6343

"Durchsuchbar" ist das, wonach Sie suchen.

 
Frage zur µl4-Sprache - Warum funktioniert die Funktion"Objekt erstellen" nicht während der Optimierung, wenn ein Objekt zum Speichern von Daten mehrerer Variablen verwendet wird, es stellt sich heraus, dass es 20 Mal schneller ist als bei der Verwendung der Funktion openfail->failride->failclose, die die Optimierung und das Testen sehr verlangsamt?
 

Guten Tag!

Ich kann nicht herausfinden, wie ich die Balken für zwei Stunden, z. B. von 15.00 bis 17.00 Uhr Serverzeit, für die letzten 250 Handelssitzungen verarbeiten kann.

Könnten Sie mir bitte einen konzeptionellen Vorschlag machen?

mql5

 
Stairway_2_7:

Guten Tag!

Ich kann nicht herausfinden, wie ich die Balken für zwei Stunden, z. B. von 15.00 bis 17.00 Uhr Serverzeit, für die letzten 250 Handelssitzungen verarbeiten kann.

Könnten Sie mir bitte einen konzeptionellen Vorschlag machen?

mql5

Verwenden Sie die Funktionen mit Zeitabfrage

int  CopyOpen( 
   string           symbol_name,     // имя символа 
   ENUM_TIMEFRAMES  timeframe,       // период 
   datetime         start_time,      // с какой даты 
   datetime         stop_time,       // по какую дату 
   double           open_array[]     // массив для копирования цен открытия 
   );
 

Sergej,

Danke für die Antwort!

Für meine Aufgabe ist es günstiger, wenn ich

void OnStart()

{

datetime start =StringToTime("2016.03.25 15:00");

datetime stop =StringToTime("2016.03.25 15:55");

MqlRates rates[];

ArraySetAsSeries(rates,true);

int copied=CopyRates(_Symbol,PERIOD_M5,start,stop,rates);

if(kopiert>0)

{

Print("Kopierte Takte: "+kopiert);

string format="open = %G, high = %G, low = %G, close = %G, volume = %d";

String aus;

int size=fmin(kopiert,10);

for(int i=0;i<size;i++)

{

out=i+": "+TimeToString(rates[i].time);

out=out+"+StringFormat(format,

rates[i].open,

rates[i].high,

rates[i].low,

rates[i].close,

rates[i].tick_volume);

Print(out);

}

}

else Print("Historische Daten zum Symbol konnten nicht abgerufen werden ",Symbol());

}

Wie kann ich Samstage und Sonntage entfernen?

Genauer gesagt, führen Sie einen ähnlichen Vorgang für die letzten, sagen wir, 250 Handelstage durch?

 
Stairway_2_7:

Sergej,

Danke für die Antwort!

Für meine Aufgabe ist es günstiger, wenn ich

void OnStart()

{

datetime start =StringToTime("2016.03.25 15:00");

datetime stop =StringToTime("2016.03.25 15:55");

MqlRates rates[];

ArraySetAsSeries(rates,true);

int copied=CopyRates(_Symbol,PERIOD_M5,start,stop,rates);

if(kopiert>0)

{

Print("Kopierte Takte: "+kopiert);

string format="open = %G, high = %G, low = %G, close = %G, volume = %d";

String aus;

int size=fmin(kopiert,10);

for(int i=0;i<size;i++)

{

out=i+": "+TimeToString(rates[i].time);

out=out+"+StringFormat(format,

rates[i].open,

rates[i].high,

rates[i].low,

rates[i].close,

rates[i].tick_volume);

Print(out);

}

}

else Print("Historische Daten zum Symbol konnten nicht abgerufen werden ",Symbol());

}

Wie kann ich Samstage und Sonntage entfernen?

Genauer gesagt, wie kann man eine ähnliche Operation für die letzten, sagen wir 250 Handelstage durchführen?

Versuchen Sie, mit dieser Struktur zu arbeiten

struct MqlDateTime 
  { 
   int year;           // год 
   int mon;            // месяц 
   int day;            // день 
   int hour;           // час 
   int min;            // минуты 
   int sec;            // секунды 
   int day_of_week;    // день недели (0-воскресенье, 1-понедельник, ... ,6-суббота) 
   int day_of_year;    // порядковый номер в году (1 января имеет номер 0) 
  };