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

 
Maxim Kuznetsov:

Du musst keinen Mist aus der Referenz ziehen, schreibe den offensichtlichen Zyklus... du wirst später damit leben müssen :-)

   for(long chartId=ChartNext(0);chartId>0 &&!IsStopped();chartId=ChartNext(chartId)) {

      if (ChartSymbol(chartId)=="") continue;

      DoChart(chartId);

   }

Ich muss das auch erst mal verdauen...
 
Maxim Kuznetsov:

   for(long chartId=ChartNext(0);chartId>0 &&!IsStopped();chartId=ChartNext(chartId)) {

      if (ChartSymbol(chartId)=="") continue;

      DoChart(chartId);

   }

Maxim, ich kann nicht herausfinden, wie ich das auf mein Problem anwenden kann(

 
MakarFX:

Bitte helfen Sie mit, eine Funktion zu finden oder zu schreiben, die nach Objekten in geöffneten Diagrammen sucht.

Fünf offene Charts, EA ist auf dem ersten. MT4

sollte dieser Code funktionieren:

#property strict
#include <Arrays\ArrayLong.mqh>
CArrayLong ChartsID;
//+------------------------------------------------------------------+
int OnInit()
{
   FindChartsBySymbol(_Symbol, ChartsID);
   for(int i = ChartsID.Total() - 1; i >= 0; i--)
   {
      long chart_id = ChartsID.At(i);
      Print("ChertID = ", chart_id, " , symbol = ", ChartSymbol(chart_id));
   }
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void FindChartsBySymbol(string symbol, CArrayLong &charts)
{
   for(long currChart = ChartFirst(); currChart >= 0; currChart = ChartNext(currChart))
   {
      if(ChartSymbol(currChart) == symbol) charts.Add(currChart);
   }
}
//+------------------------------------------------------------------+

Kryptowährungen überprüfen, sie arbeiten an Wochenenden

Das Einzige, was Sie tun müssen, ist, das Öffnen (und Schließen?) neuer Diagramme zu überwachen und dann die Liste zu aktualisieren.
 
Igor Makanu:

sollte dieser Code funktionieren:

Kryptowährungen überprüfen, sie arbeiten an Wochenenden

Danke)))

 
MakarFX:

Ist es akzeptabel, den Indikator mit minimalem Code in jedem Diagramm auszuführen? Ist es möglich, dies mit einer Standardvorlage zu tun.

 
Aleksei Stepanenko:

Ist es akzeptabel, einen Indikator oder EA mit minimalem Code auf jedem Chart laufen zu lassen? Ist es möglich, dies mit einer Standardvorlage zu tun.

EA auf dem ersten Chart führt die DLL
aus.

es gibt also nur einen

C# DLL MQ4 построение формы общения
C# DLL MQ4 построение формы общения
  • 2021.04.02
  • www.mql5.com
Еще неделю назад я не знал что такое C#...теперь я знаю что это читается "си шарп"))) Прочитав статьи https://www.mql5...
 

Wenn ein solcher Indikator auf jedem gewünschten Chart platziert wird, dann wird jede Änderung von Objekten im überwachten Bereich (Chart) ein Ereignis an den Chart mit dem Experten senden.

//идентификатор графика с советником
long ID=1;

int OnInit() 
   {
   //установка флага получения событий создания объектов графика 
   ChartSetInteger(ChartID(),CHART_EVENT_OBJECT_CREATE,true); 
   //установка флага получения событий удаления объектов графика 
   ChartSetInteger(ChartID(),CHART_EVENT_OBJECT_DELETE,true); 
   return(INIT_SUCCEEDED); 
   } 

void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) 
   {
   //если объект удалён или создан, или изменён
   if(id==CHARTEVENT_OBJECT_DELETE || id==CHARTEVENT_OBJECT_CREATE || id==CHARTEVENT_OBJECT_CHANGE)
      {
      EventChartCustom(ID,1,lparam,dparam,sparam); 
      }
   }

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[])
   {
   return(rates_total);
   }
Beispiel als Idee.
 
Aleksei Stepanenko:

Wenn Sie einen solchen Indikator auf jedes gewünschte Diagramm setzen, dann wird jede Änderung von Objekten im kontrollierten Bereich (Diagramm) ein Ereignis an das Diagramm mit dem Expert Advisor senden.

Beispiel als Idee

Danke, aber ich habe meinen Code auf Krypto überprüft, alles funktioniert wie ich wollte.

Ich danke Ihnen allen für Ihre Hilfe!

 
MakarFX:

Hier ist mein Problem mit Chart_ID()

So haben wir es gemacht

Aber Sie können es nicht im Tester überprüfen(.

...ich muss so lange auf Montag warten(

Während der Initialisierung scheint alles zu funktionieren

Aber wie wird es im wirklichen Leben funktionieren?

Während ich weg war .........

Auf den ersten Blick sieht es gut aus. Sie können das Skript an jedem beliebigen Tag einchecken. Aber hier in der Dokumentation gefällt mir das Beispiel nicht. Ich empfehle Folgendes zu schreiben

#property strict

/********************Script program start function*******************/
void OnStart()
 {
  long chart = ChartFirst();
  while(chart >= 0 && !IsStopped())
   {
    if(ObjectFind(chart, "00") >= 0)
     Print("Symbol ", ChartSymbol(chart), " Period ", EnumToString(ChartPeriod(chart)));
    chart = ChartNext(chart);
   }
 }/******************************************************************/

/*****************************End program****************************/
 
Aleksei Stepanenko:

Wenn ein solcher Indikator auf jedes gewünschte Diagramm gelegt wird, dann wird jede Änderung von Objekten im kontrollierten Bereich (Diagramm) ein Ereignis an das Diagramm mit dem Experten senden.

Beispiel als Idee.

Für diese Aufgabe

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Alle Fragen von Neulingen zu MQL4 und MQL5, Hilfe und Diskussion von Algorithmen und Codes

MakarFX, 2021.06.19 21:21

Um ehrlich zu sein, Alexey, mit meinem Wissen klingt es beängstigend...

Wenn Sie auf eine bestimmte Weise in den Markt einsteigen wollen, müssen Sie das ausgewählte Objekt sofort kaufen oder verkaufen.


ist der Indikator nicht geeignet.
Grund der Beschwerde: