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

 

Kann mir jemand sagen, warum mein Indikator in den Tests angezeigt wird und im Indikatorfenster bleibt, nachdem die Tests beendet sind, aber wenn ich ihn über iCustom in einem Expert Advisor aufrufe, wird der Indikator nicht angezeigt?

//+------------------------------------------------------------------+
//|                                             Tiscks_Window_49.mq4 |
#property version   "1.00"
#property strict

#property indicator_separate_window
#property indicator_buffers 1
#property  indicator_color1 clrLawnGreen

double ExtMapBuffer1[];
int Draw_Bars;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   IndicatorShortName("Ask");
   IndicatorDigits(5);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexLabel(0,"Ask");
//---
   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[])
  {
//---
   ExtMapBuffer1[0]=MarketInfo(Symbol(),MODE_ASK);
   for(int i=Bars-2; i>=0; i --)
     {
      ExtMapBuffer1[i+1]=ExtMapBuffer1[i];
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+


Vielleicht rufe ich es in iCustom nicht richtig auf?

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   double sep_window=iCustom(Symbol(),PERIOD_CURRENT,"Tiscks_Window_49",0,0);
   Print(" sep_window= ",sep_window);
  }
//+------------------------------------------------------------------+
 
Nauris Zukas:

Kann mir jemand sagen, warum mein Indikator in den Tests angezeigt wird und im Indikatorfenster bleibt, nachdem die Tests beendet sind, aber wenn ich ihn über iCustom in einem Expert Advisor aufrufe, wird der Indikator nicht angezeigt?
Vielleicht rufe ich es in iCustom nicht richtig auf?

Sie haben es richtig verstanden. Versuchen Sie es mit anderen Indikatoren - es wird dasselbe sein.

 
Nauris Zukas:

Kann mir jemand sagen, warum mein Indikator in den Tests angezeigt wird und im Indikatorfenster bleibt, nachdem die Tests beendet sind, aber wenn ich ihn über iCustom im Expert Advisor aufrufe, wird der Indikator nicht angezeigt?


Vielleicht rufe ich es in iCustom nicht richtig auf?

ExtMapBuffer1[0]=MarketInfo(Symbol(),MODE_ASK);

versuchen, es einfach auszudrücken =Fragen;
oder, um close[0] zu prüfen

und hier, warum müssen Sie den gesamten Verlauf verschieben? die ersten 100-300 Takte sind ausreichend

for(int i=Bars-2; i>=0; i --)
 
LRA:

Es ist alles in Ordnung. Versuchen Sie es mit anderen Indikatoren - es wird dasselbe sein...

Ich habe RSI ausprobiert, alles funktioniert. Es gibt irgendwo eine Nuance, ich weiß nur noch nicht, wo.


 
Taras Slobodyanik:

versuchen Sie einfach =Ask;
oder um close[0] zu überprüfen

und hier, warum sollten Sie die ganze Geschichte verschieben wollen? Die ersten 100-300 Takte sind ausreichend.

Ich habe es geändert, aber auch das hilft nicht.

 
Nauris Zukas:

Kann mir jemand sagen, warum mein Indikator in den Tests angezeigt wird und im Indikatorfenster bleibt, nachdem die Tests beendet sind, aber wenn ich ihn über iCustom in einem Expert Advisor aufrufe, wird der Indikator nicht angezeigt?


Vielleicht rufe ich es in iCustom nicht richtig auf?

Vielleicht liegt es daran, dass der Indikator so geschrieben ist. Wie hoch ist die Wahrscheinlichkeit, dass er einfach nicht genug Zeit hat, um alle Balken neu zu berechnen, wenn er vom Expert Advisor aufgerufen wird?

Versuchen Sie, alle Balken nur einmal neu zu berechnen, und dann nur einen neuen Aufruf des Expert Advisors.
 
Alexey Viktorov:

Wie hoch ist die Wahrscheinlichkeit, dass er einfach keine Zeit hat, alle Balken neu zu berechnen, wenn ich ihn vom Expert Advisor aus aufrufe?

Ich drucke Print in Expert Advisor und es zeigt, dass die Preise vorhanden sind, was bedeutet, dass die Balken neu berechnet wurden.

Alexey Viktorov:
Versuchen Sie, alle Balken nur einmal neu zu berechnen und dann nur einen neuen Aufruf von EA.

Ich habe diese Variante noch nicht getestet, ich bin noch am Überlegen, wie ich es machen soll.

 

Guten Tag, ich mache meine ersten Schritte, ich habe das Tutorial gelesen usw., vielleicht habe ich die Frage falsch gestellt, aber trotzdem.....

Wenn ich ein Zeckenarchiv für die letzten paar Jahre haben möchte, benötige ich es möglicherweise für einen längeren Zeitraum, um es in einer Drittanbieteranwendung zu analysieren. Wenn ich mich nicht irre, enthalten die Balken nur die aktuellen Diagrammdaten, danke.

 
ijonhson:

Guten Tag, ich mache meine ersten Schritte, ich habe das Tutorial gelesen usw., vielleicht habe ich die Frage falsch gestellt, aber trotzdem.....

Wenn ich ein Zeckenarchiv für die letzten paar Jahre haben möchte, benötige ich es möglicherweise für einen längeren Zeitraum, um es in einer Drittanbieteranwendung zu analysieren. Wenn ich mich nicht irre, enthalten die Balken nur die aktuellen Diagrammdaten, danke.

Wenn Sie nicht wissen, wie Sie diese Protokolle verwenden können, versuchen Sie nicht, sie mit den echten Protokollen zu überschreiben. Google wird Ihnen helfen.

 

Hallo Artiom, könnten Sie mir bitte sagen, wie ich einen EA so schreiben kann, dass er keine Aufträge öffnet, bis der Preis ein bestimmtes Niveau überschritten hat, und dann weiterhin Aufträge öffnet, auch nachdem der Preis wieder über das Niveau gestiegen ist? Mit freundlichen Grüßen Andrej.

Grund der Beschwerde: