Ich werde den Indikator kostenlos schreiben - Seite 18

 
Yurij Izyumov:
Wie verteilt man das Tick-Volumen auf einer Kerze? Die Kerze hat einen Bereich und manchmal einen großen

Ich weiß nicht viel über die Details, aber ich denke, das wird funktionieren

Nehmen wir an, dass eine 1-Minuten-Kerze einen Bereich von HL=100 Punkten und eine gewisse Anzahl von Tick-Volumeneinheiten hat

Wenn wir von der Theorie ausgehen, dass jede von ihnen multidirektional und in zufälliger Reihenfolge ist, erhalten wir zum Beispiel eine 5-Minuten-Kerze und sehen die Verteilung des Preises mit

HL_0bar/antisches Volumen HL_1bar/antisches Volumen HL2bar/antisches Volumen usw.

d.h. wir arbeiten bereits mit der Einheit "Candlestick-Wert/antisches Volumen". Die Linie spiegelt nämlich den Wert dieses Indikators im Verhältnis zu anderen ähnlichen Indikatoren in vertikaler Richtung wider. Und wir können es auf m5-Charts verwenden

das Gleiche gilt für den 15-Minuten-Kerzenhalter, der aus 15-Minuten-Kerzenhaltern besteht

Es ist klar, dass die aktuelle Definition nicht ganz dem entspricht, was wir ursprünglich wollten, aber ich habe mir gerade die Dokumentation angesehen - es gibt nirgendwo einen Tick-Chart-Verlauf, also ist die Mindestkerze eine Minute.

 

Guten Tag, ich benötige einen Standard-RSI mit einem Alert. Ist es möglich, eine solche Idee für komfortable Gleissignale umzusetzen? Bisher bin ich entweder auf einen Haufen Unsinn gestoßen, der an den RSI gebunden ist, oder auf einen Alarm, wenn eine Kerze schließt (und der Zug abgefahren ist...)

ein Signalton mit einer Meldung sollte mit einem Hinweis auf ein Paar kommen, bei dem das Ereignis eintritt.

Das Signal wird einmal während der Bildung einer Kerze im ausgewählten Zeitrahmen beim Überschreiten des oberen bzw. unteren Niveaus gegeben, nur beim Überschreiten nach oben oder unten und nur im Moment des Überschreitens, nicht beim Schließen der Kerze.

Es ist wünschenswert, eine weitere Ebene zu schaffen, bei deren Überquerung ebenfalls ein einmaliges Signal ertönt.

Beispiel.

Im 5M-Zeitrahmen sinkt der EUR/USD-Kurs. Zu einem bestimmten Zeitpunkt, nachdem der RSI 30 überschritten wurde (z. B. in der 80. Sekunde einer Kerze), wird ein Alarm generiert und eine Meldung angezeigt, die besagt, dass für das EUR/USD-Paar zu einem bestimmten Zeitpunkt ein vorläufiges Kaufsignal vorliegt.

Wenn in der verbleibenden Zeit der Bildung einer Kerze RSI berührt die nächste Ebene (zum Beispiel 20), ein Alarm ertönt und geht die Nachricht, dass zu einem bestimmten Zeitpunkt auf das Paar eVor-Dollar gibt es ein zweites Signal zu kaufen.

Vorzugsweise sollte aus der Meldung irgendwie hervorgehen, dass es sich um ein vorläufiges oder bereits ein bestimmtes (d. h. wiederholtes) Signal handelt.

 
Yurij Izyumov:

Um sie umzuschreiben, sollten alle Indikatoren, die einbezogen werden sollen, auch unter mql5 sein

B Entschuldigen Sie die verspätete Antwort, aber ich brauche WIRKLICH Ihre Hilfe. Ich schreibe gerade einen Artikel und der Moderator hat mich gebeten, alle Codes der angehängten Dateien für mql5 umzuschreiben. Ich habe viele Dateien, aber sie sind alle gleich, so dass ich nur zwei von ihnen umschreiben muss.

Ich wäre Ihnen sehr dankbar, wenn Sie es nicht aufschieben könnten, denn die Veröffentlichung des Artikels verzögert sich gerade dadurch. Ich verspreche im Gegenzug, Sie über meine Abhandlung zu informieren. Nochmals vielen Dank!

1. was Sie also tun müssen. Im Indikator TDSEQUENTA_by_nikelodeon.mq5 habe ich einen weiteren Puffer hinzugefügt, der für die Signalübertragung zuständig ist, wobei 1 für Kaufen und -1 für Verkaufen steht, ich denke, hier sollte kein Fehler auftreten. Es ist jedoch notwendig, einen weiteren Puffer hinzuzufügen, in den bei der Bildung eines blauen oder roten Punktes, d.h. des Signals selbst, die Anzahl der grünen Punkte jedes Signals geschrieben würde. Ich habe bereits einen Puffer mit der Nummer 7 hinzugefügt, das Einzige, was noch fehlt, ist die Organisation des Schreibvorgangs.

2. eVOLution-dvoid.1.3 (1).mq5 Indikator sollte komplett für MQL5 umgeschrieben werden. Dieser Indikator nimmt Daten aus Dateien, die sich im Ordner\Files\evolution-dvoid\dvoid-BP.csv. Wir verwenden das csv-Format, aber da dieses Format im Forum nicht unterstützt wird, füge ich es im txt-Format ein. Nach dem Herunterladen sollten Sie die Datei in den angegebenen Ordner speichern und die Erweiterung in csv umbenennen. Unser Indikator sollte mit dieser Datei funktionieren.

Der Indikator BuyVOLDOWNNOPDOWN.mq5 muss in MQL5 umgeschrieben werden, um zu zeigen, wie andere Indikatoren am Beispiel von eVOLution-dvoid.1.3 (1).mq5 aufgerufen werden, dort wird er aufgerufen.

Was die Dateien der Cluster_X-Familie betrifft, so werde ich versuchen, sie für MT5 herunterzuladen, und dann werden wir sehen, wie wir sie anhängen können. Aber das Wichtigste ist jetzt, das Problem mit den oben genannten Indikatoren zu lösen. Ich danke Ihnen vielmals!!!

 
Mihail Marchukajtes:
Darf ich fragen, was das Thema des Artikels sein wird?
 
Alexey Kozitsyn:
Darf ich fragen, was das Thema des Artikels sein wird?
Systeme der künstlichen Intelligenz
 
Guten Tag. Ich bin auf der Delta_RSI-Indikator, es hält Zeichnung (siehe Screenshot) histo in beide Richtungen zur gleichen Zeit (siehe Fehler). Und ist es möglich, die Farbe des fehlenden Signals für über/unter Null zu färben. Danke.
 

HalloYurij Izyumov! Als ich mich in den Foren umschaute und diese Frage stellte, bekam ich keine klare Antwort... jeder bot seine Lösung an, aber nur in Worten und ohne zu bestätigen, dass sie funktionieren würde. Ich würde gerne die praktische Umsetzung des Themas sehen. Und die Frage lautet wie folgt...

Es gibt einen Indikator von CodyBase https://www.mql5.com/ru/docs/series/copybuffer

Das Problem ist, dass wenn Sie den Zeitrahmen in den Eingabeparametern des Indikators ändern, die Verzögerung der Indikatorberechnung bis zum Erscheinen eines neuen Ticks, und es kann bis zu mehreren Stunden für verschiedene Instrumente dauern.

Haben Sie die Möglichkeit, diese Lücke zu schließen? Ich danke Ihnen!

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
  • www.mql5.com
Доступ к таймсериям и индикаторам / CopyBuffer - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Tango_X:

HalloYurij Izyumov! Als ich mich in den Foren umschaute und diese Frage stellte, bekam ich keine klare Antwort... jeder bot seine Lösung an, aber nur in Worten und ohne zu bestätigen, dass sie funktionieren würde. Ich würde gerne die praktische Umsetzung des Themas sehen. Und die Frage lautet wie folgt...

Es gibt einen Indikator von CodyBase https://www.mql5.com/ru/docs/series/copybuffer

Das Problem ist, dass wenn Sie den Zeitrahmen in den Eingabeparametern des Indikators ändern, die Verzögerung der Indikatorberechnung bis zum Erscheinen eines neuen Ticks, und es kann bis zu mehreren Stunden für verschiedene Instrumente dauern.

Haben Sie die Möglichkeit, diese Lücke zu schließen? Ich danke Ihnen!

Sie können OnCalculate() zwangsweise aufrufen, indem Sie die Aktualisierungsschaltfläche drücken. Sie können alle Berechnungen auch in OnTimer() oder OnBookEvent() durchführen.
 

Hallo. Ist es möglich, einen Pfeil auf diese Indikatoren zu machen? Vorlage und Screenshots von Trades in the folder.Sorry, so ind. hinzufügen, gibt nicht den Ordner zu laden

DIE DEKOMPILIERUNG IST VERBOTEN! ARCHIV ENTFERNT!

 
Alexey Kozitsyn:
Sie können OnCalculate() zwangsweise aufrufen, indem Sie die Aktualisierungsschaltfläche drücken. Sie können alle Berechnungen auch in OnTimer() oder OnBookEvent() durchführen.

Ich habe es mit OnTimer() implementiert und es kam nichts dabei heraus. Leider berechnet das onTimer()-Ereignis den Indikator nicht und die Verzögerung wird gespeichert, vielleicht eine laute Aussage und ich habe etwas falsch gemacht, bitte korrigieren. Danke!

//+------------------------------------------------------------------+
//|                                              TestCopyBuffer3.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//---- plot MA
#property indicator_label1  "MA"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- input parameters
bool               AsSeries=true;
int                period=15;
input ENUM_TIMEFRAMES    TimeFrame=PERIOD_CURRENT; //Период графика
ENUM_MA_METHOD     smootMode=MODE_EMA;
ENUM_APPLIED_PRICE price=PRICE_CLOSE;
int                shift=0;
//--- indicator buffers
double                   MABuffer[];
int                      ma_handle;
int to_copy;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,MABuffer,INDICATOR_DATA);
   Print("Параметр AsSeries = ",AsSeries);
   Print("Индикаторный буфер после SetIndexBuffer() является таймсерией = ",
         ArrayGetAsSeries(MABuffer));
//--- set short indicator name
   IndicatorSetString(INDICATOR_SHORTNAME,"MA("+period+")"+AsSeries);
//--- set AsSeries (depends on input parameter)
   ArraySetAsSeries(MABuffer,AsSeries);
   Print("Индикаторный буфер после ArraySetAsSeries(MABuffer,true); является таймсерией = ",
         ArrayGetAsSeries(MABuffer));
//---
   ma_handle=iMA(Symbol(),TimeFrame,period,shift,smootMode,price);
   EventSetTimer(1);
   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[])
  {
//--- check if all data calculated
   if(BarsCalculated(ma_handle)<rates_total) return(0);
//--- we can copy not all data
   //int to_copy;
   if(prev_calculated>rates_total || prev_calculated<=0) to_copy=rates_total;
   else
     {
      to_copy=rates_total-prev_calculated;
      //--- last value is always copied
      to_copy++;
     }
//--- try to copy
  
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   CopyBuffer(ma_handle,0,0,to_copy,MABuffer);
   Print("Таймер");
  }
//+------------------------------------------------------------------+
Grund der Beschwerde: