Veröffentlichter Artikel NRTR Indikator und darauf basierende Handelsmodule für MQL5 Wizard:
Autor: Dmitrii Troshin
Ich verstehe nicht, wie man über iCustom darauf zugreifen kann ... bitte erklären
es sollte etwas geben wie
double iCustom (
stringsymbol, // Symbolname
int timeframe, // Zeitrahmen
stringname, // Ordner/Benutzername des Indikators
... // Liste der Indikator-Eingabeparameter
int mode, // Datenquelle
int shift// Verschiebung
);
das ist speziell in unserem Fall
//+------------------------------------------------------------------+ //| NRTRvolatile| //+------------------------------------------------------------------+ //iBufferNumber //0 //1 //2 - Signal nach oben //3 - Signal nach unten double indNRTRvolatile(string sSymbol=NULL, int tf=PERIOD_M5, int period=12, //dynamische Periode double K=1, //Skalierungsfaktor int iBufferNumber=0, int iShift=0) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); double handle=iCustom(sSymbol,timeframe,"NRTRvolatile",period,K,iBufferNumber,iShift); if(handle<0) { Print("NRTRvolatile-Objekt nicht erstellt: Fehler ",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,iShift)); }
nur irgendeinen Unsinn ausgibt, z.B. aktuelle Preise, wenn man sich auf Puffer 2 oder 3 bezieht
Ich verstehe nicht, wie man über iCustom darauf zugreifen kann ... bitte erklären
Die Puffer 2,3 enthalten Signale, die nur im Moment des Trendwechsels aktualisiert werden.
Unterstützung/Widerstand sind in den Puffern 0,1 - das sind die Linien, die wir als Linien sehen
CopyBuffer() - hat drei Überladungen, aber keine von ihnen hat drei Parameter.
Eine Variante des Codes zum Abrufen der Werte der Puffer
void OnStart() { double arr[]; int handle =iCustom(Symbol(),0,"NRTRvolatile",12,1); CopyBuffer(handle,0,0,1,arr); Print("Unterer Kanal",arr[0]); CopyBuffer(handle,1,0,1,arr); Print("Oberer Kanal",arr[0]); CopyBuffer(handle,2,0,1,arr); Print("Signalisieren Sie.",arr[0]); CopyBuffer(handle,3,0,1,arr); Print("Signal unten".,arr[0]); }
Dies ist das Skript
Die Puffer 2 und 3 enthalten Signale, die nur im Moment des Trendwechsels aktualisiert werden.
Unterstützung/Widerstand sind in den Puffern 0,1 - das sind die Linien, die wir als Linien sehen
CopyBuffer() - hat drei Überladungen, aber keine von ihnen hat drei Parameter.
Eine Variante des Codes zum Abrufen der Werte der Puffer
Dies ist ein Skript
Ja, jetzt ist es klarer.
über CopyBuffer - es ist aus der mql4-Kompatibilitätsbibliothek, genauer gesagt aus initmql4__1.mqh.
double CopyBufferMQL4(int handle,int index,int shift) { double buf[]; switch(index) { case 0: if(CopyBuffer(handle,0,shift,1,buf)>0) return(buf[0]); break; case 1: if(CopyBuffer(handle,1,shift,1,buf)>0) return(buf[0]); break; case 2: if(CopyBuffer(handle,2,shift,1,buf)>0) return(buf[0]); break; case 3: if(CopyBuffer(handle,3,shift,1,buf)>0) return(buf[0]); break; case 4: if(CopyBuffer(handle,4,shift,1,buf)>0) return(buf[0]); break; default: break; } return(EMPTY_VALUE); }
vermutlich ja
//+------------------------------------------------------------------+ //| NRTRvolatile| //+------------------------------------------------------------------+ //iBufferNumber //0 //1 //2 - Signal nach oben //3 - Signal nach unten double indNRTRvolatile(string sSymbol=NULL, int tf=PERIOD_M5, int period=12, //dynamische Periode double K=1, //Skalierungsfaktor int iBufferNumber=0, int iShift=0) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); double handle=iCustom(sSymbol,timeframe,"NRTRvolatile",period,K); if(handle<0) { Print("NRTRvolatile-Objekt nicht erstellt: Fehler ",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,iBufferNumber,iShift));}
Ist es möglich, NRTRvolatile so zu aktualisieren, dass ein Meldungsfenster erscheint, wenn ein Pfeil hinzugefügt wird?
Ist es möglich, NRTRvolatile so zu erweitern, dass beim Hinzufügen eines Pfeils ein Meldungsfenster angezeigt wird?
Vielleicht in den Funktionen LongCondition und ShortCondition.
int SignalNRTR::LongCondition(void) { int idx =StartIndex(); if(UpSignal(idx)) { Alert"Text"; return 100; } else return 0; }
um so etwas wie Alert"Text" hinzuzufügen. Ich weiß nicht, ob das funktionieren wird. Das Problem ist, dass ich diesen Code nicht mehr auf meinem Computer habe. Alles, was ich letztes Jahr hatte, habe ich in der Vergangenheit weggelegt:) Also kann ich es nicht ausprobieren. Und ich habe immer noch Silvester in meinem Kopf :)
Im Indikator selbst, irgendwo hier
// Trendwechsel if(trend>0) Buff_Up[i]=value; if(trend<0) Buff_Dn[i]=value; if(trend_prev<0 && trend>0) { Alert("Text"); Sign_Up[i]=value; Buff_Up[i]=0.0; } if(trend_prev>0 && trend<0) { Alert("Text"); Sign_Dn[i]=value; Buff_Dn[i]=0.0; }
The path to the includefiles should be corrected to
#include <Expert\\ExpertSignal.mqh>
both variants are possible. Right variant
#include <Expert\ExpertSignal.mqh>you can see it in another modules in folder Include\Expert\Signal
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Der NRTR Indikator und Handelsmodule basierend auf NRTR für MQL5 Wizard :
Der Artikel beschreibt den NRTR Indikator und ein Handelssystem, das auf diesem Indikator basiert. Wir erstellen ein Modul von Handelssignalen, mit welchen Strategien basierend auf Kombinationen von NRTR und zusätzlichen Indikatoren, die einen Trend bestätigen, entwickelt werden.
Die Idee des NRTR Indikators, Nick Rypock Trailing Reverse, gehört Konstantin Kopyrkin. Interessante Information: hinter dem Namen "Nick Rypock" verbirgt sich der Familienname "Kopyrkin", rückwärts geschrieben.
Aber zurück zum Indikator. Er stellt einen dynamischen Preiskanal dar. Der Autor veranschaulicht die Grundidee durch die folgende Abbildung:
Autor: Dmitrii Troshin