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

 
pronych:

Wie kann man eine erzwungene Aktualisierung von Indikatoren aus dem OnCalculate-Ereignis heraus auslösen?

Also, wenn nicht behoben (unten sind Probleme, die auftreten können).

Oder per Timer (etwa so).

 
Silent:

Also, wenn nicht behoben (unten sind die Probleme, die auftreten können).

Oder mit einer Zeitschaltuhr (was auch immer).

Ich verstehe. )) Haben Sie schon versucht, nach internen Funktionen zu fragen?

 
pronych:

Ich verstehe. )) Haben Sie versucht, nach internen Funktionen zu fragen?

Ich nicht, im Allgemeinen ja (ich glaube, MetaDraiver hat SD angeschrieben), und die Frage wurde mehrmals im Forum gestellt.

Ob die Entwickler darauf reagiert haben, weiß ich nicht.

PS kann nützlich sein.

Entwicklung desMulticurrency-Volatilitätsindikators in MQL5

Die Entwicklung eines Mehrwährungsindikators für die Analyse von Preisdivergenzen

Ich glaube, es hätte hier veröffentlicht werden müssen, ich konnte es nicht finden.

Im ersten Fall, wenn ein Fehler auftritt

Zeile 40 von CCanvas canvas; Fehler

ungelöste statische Variable 'CCanvas::m_default_colors'

hinzufügen.

uint CCanvas::m_default_colors[9]={0};

Vor langer Zeitbesprochen, nicht überprüft, was sich geändert hat.

Разработка мультивалютного индикатора волатильности на MQL5
Разработка мультивалютного индикатора волатильности на MQL5
  • tol64.blogspot.com
В этой статье рассмотрим разработку мультивалютного индикатора волатильности. Начинающий разработчик на MQL5 может столкнуться с некоторыми сложностями при разработке мультивалютных индикаторов, но после прочтения этой статьи всё станет намного проще. Основные вопросы при разработке мультивалютного индикатора относятся к синхронизации данных...
 

Versuchen wir also, Metadriver zu bekommen. Vielleicht kann er etwas Licht in die Frage bringen, was die Entwickler geantwortet haben. Wolodja...

Володя (песня измученного ангольского народа)
Володя (песня измученного ангольского народа)
  • my.mail.ru
Песня посвящена ангольскому революционеру одному из командиров MPLA, убитому в 1975 году (в Луанде в честь него названа одна из улиц). Валодя – это было его боевое прозвище. После 75го года песня про Валодю была очень популярна в Анголе. Где только я ни слышал это имя, Незабываемое для сынов Анголы. Володя, Володя, Володя, славный защитник ангольского народа! Володя, Володя, Володя, противник империалиста, Который собирается установить режим...
 
pronych:

Versuchen wir also, Metadriver zu bekommen. Vielleicht kann er etwas Licht in die Frage bringen, was die Entwickler geantwortet haben. Wolodja...

Ich habe die Frage nicht ganz verstanden, denn ich habe nicht nach einem regelmäßigen Ticker gefragt. Als würde Stille im Gegenteil ..., kurz gesagt, wir hofften füreinander.

Es gab einen indirekten Fall - bereits nachdem herausgefunden wurde, dass die Abfrage von Daten außerhalb von TERMINAL_MAX_BAR das Auffrischen aller Indikatoren im Diagramm verursacht.

Ich habe meinen Button Chart Reloader überarbeitet und mit der neuen Version an den Service Desk geschickt und in den Kommentaren gefragt, ob ich hoffe, dass er wieder funktioniert... Sie haben nichts gesagt... Ich hatte kein Problem damit... Ich habe einen Film daraus gemacht.

;)

--

Nun, streng genommen ist es eigentlich kein Fehler. Das Terminal stürzt nicht ab, es wird nicht einmal langsamer, es aktualisiert nur die Daten im Diagramm. Ich verstehe, was sie da tun. Etwa: Anfrage außerhalb der vorhandenen Daten -> Terminal versucht, Daten zu laden, gefolgt von der Aktualisierung des Diagramms. Einfach und effizient. Warum ändern, wenn es keine Opfer gibt?

// Was die "Neuberechnung des Indikators von innen" angeht, verstehe ich das Problem nicht. Die Frage ist nicht klar. Intern ist der Indikator sein eigener Master, er berechnet, was er will. Aber wenn es ein externes Signal verwendet, ist es eine andere Sache. Dann drehen wir...

 

Mann, vielleicht solltest du das nicht.))

Es ist nicht ganz klar, wie prev_calculated speziell das Rendering von Indikatoren beeinflusst.

In meinem Fall erfolgt der Aktualisierungsversuch sowohl durch OnCalculate() als auch durch Timer. Multi-Instrument.

Bei erfolglosem Versuch, Zeilen zu erhalten, wird die Funktion bis zum nächsten Tick oder Timer unterbrochen, es findet kein Zeichnen statt, aber nicht initialisierte (wie es scheint) Werte erscheinen von irgendwoher auf dem Diagramm.

Obwohl in Init() ArrayInitialize(Puffer ,...) vorhanden ist.

Vielleicht habe ich irgendwo einen Fehler. Das passiert eher selten und ist schwer zu erkennen.

Es scheint mir, dass die normale Funktion des forcierten Queuing bei OnCalculate() es ermöglichen würde, das Tamburinspiel in Multi-Instrument-Indizes für Charts mit seltenen Ticks zu minimieren.

Übrigens, das steht in der Hilfe ;)

Все необходимые расчеты пользовательских индикаторов необходимо размещать в предопределенной функции OnCalculate().

PS. Ich habe das mit dem "Chip" verstanden.

PSPS/ Ich habe das Gefühl, dass es in dem gegebenen Fall zuverlässiger ist, die Berechnung der Werte ohne Verwendung eines Indikators für einen EA zu verwenden. Und separat ein Indikator für die Visualisierung.

Aber dann müsste ich das Gleiche zweimal berechnen.

 
MetaDriver:

Ich habe die Frage nicht ganz verstanden, denn ich habe den regulären Zeckenrufer nicht darum gebeten. Ich dachte, Silent würde..., kurz gesagt, wir haben uns aufeinander verlassen.

...

Ich meine dies.

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Fehler, Irrtümer, Fragen

MetaDriver, 2013.08.03 17:55

"

Wenn Sie einen MetaTrader 5 als Basis verwenden möchten, sollten Sie diesen als Referenz verwenden.

Für meine Zwecke ist das nicht immer geeignet, aber im Allgemeinen würden damit viele "Wochenendprobleme" beseitigt werden.

FürExperten für Handel, automatisierte Handelssysteme und das Testen von Handelsstrategien.

Wanzen, Wanzen, Fragen

MetaDriver, 2013.08.03 18:02

Ich stimme zu.

Ein "Befehl", um alle prev_calculated für das ausgewählte Symbol zwangsweise zu löschen, wäre ebenfalls nützlich. Mit anschließender Zeckenerzeugung wäre das eine gute Kombination.



 

Während des visuellen Tests, wenn der Indikator im Expert Advisor neu initialisiert wird, wird der Indikator mit den alten Einstellungen weiterhin auf dem Chart im Tester angezeigt (tatsächlich wird jedes Mal bei der Neuinitialisierung eine weitere "parallele Linie" hinzugefügt). Ich habe versucht, jedes Mal IndicatorRelease zu machen, bevor ich einen neuen Handle bekomme - es hilft nicht.

Neue Griffe im Code erhalten.

void f_indicator_reinit()
 { 
    
   IndicatorRelease(firstHandle);
   IndicatorRelease(secondHandle);
   IndicatorRelease(thirdHandle);
   IndicatorRelease(fourthHandle);  

   bughelper=bughelper+1;
   
   firstHandle=iCustom(NULL,0,"indicatorname.ex5",12+bughelper,ind_s,HotPink,HotPink,10,MODE_SMA,PRICE_CLOSE,1);
   secondHandle=iCustom(NULL,0,"indicatorname.ex5",12+bughelper,ind_s,White,White,10,MODE_SMA,PRICE_CLOSE,2);   
   thirdHandle=iCustom(NULL,0,"indicatorname.ex5",12+bughelper,ind_s,Red,Red,10,MODE_SMA,PRICE_CLOSE,3);   
   fourthHandle=iCustom(NULL,0,"indicatorname.ex5",12+bughelper,ind_s,Gold,Gold,10,MODE_SMA,PRICE_CLOSE,4); 
 }  

Ich habe die bughelper-Variable eingeführt, weil der Indikator sich nicht selbst neu berechnen würde, ohne seine Eingabeparameter zu ändern.

 
Silent:

Das ist es, was ich meine.

Ich habe das Problem der Neuberechnung gelöst, indem ich die Daten außerhalb von TERMINAL_MAX_BAR angefordert habe.

Und da der Chart generell aktualisiert wird, spielt es keine Rolle, ob die Abfrage aus dem Indikator heraus oder von einem externen Programm erfolgt, Hauptsache, das (abfragende) Programm fordert Daten für genau dieses Symbol und diesen Zeitrahmen an.

Ich bin noch nicht auf Fälle gestoßen, in denen ich das Diagramm "auf der Maschine" aktualisieren musste. Ich bin mit meiner Schaltfläche völlig zufrieden // siehe den Link oben.

Bei der Tickgenerierung (ohne Chartaktualisierung) ist das Problem nicht gelöst, aber ich habe es auch nicht großartig gelöst - es kann in den meisten Fällen auf viele Arten vermieden werden (meist mit einem Timer).

 
IndicatorRelease(firstHandle);
Функция возвращает ошибку 4014 - 

ERR_FUNCTION_NOT_ALLOWED

4014

Systemfunktion darf nicht aufgerufen werden

Bitte geben Sie an, was der Grund dafür sein könnte, dassIndicatorRelease() nicht aufgerufen wird?