Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Neuer Valerius Metatrader 4 EA (http://www.expert-advisor.com/forum/showthread.php?t=5159)

MA-EA 09.09.16 22:09

Hallo.

Was ist eigentlich der "Relative Vigor Index"? Steht in meinem Indi-Oszi-Buch nicht drin. :confused:

Scheint auf den 1. Blick nicht so kompliziert zu sein. Der Schnellste ist aber wohl auch nicht. :(

https://charts.mql5.com/12/442/nzdch...rokers-ltd.png

MA-EA 09.09.16 22:14

https://www.mql5.com/de/code/8035

MA-EA 10.09.16 00:48

Liste der Anhänge anzeigen (Anzahl: 1)
Das schaut leider doch etwas komplizierter aus. :confused:
Code:

//RVI
dValueUp=((Close[j]-Open[j])+2*(Close[j+1]-Open[j+1])+2*(Close[j+2]-Open[j+2])+(Close[j+3]-Open[j+3]))/6;
dValueDown=((High[j]-Low[j])+2*(High[j+1]-Low[j+1])+2*(High[j+2]-Low[j+2])+(High[j+3]-Low[j+3]))/6;
dNum+=dValueUp;
dDeNum+=dValueDown;

Edit:5 Fehler beim Kompilieren

Aktien Andy 10.09.16 09:49

Moin ;)

Habe nun ein anderes Programm zum Laden der Tickdaten. Ich muss nur noch sehen, wie ich das in den MT4 bekomme.

Ich melde mich, wenn ich das hinbekommen habe, dann kannst Du mir sagen, welches Währungspaar ich zum Testen nehmen soll.

Ich habe Zugriff auf die üblichen Forex-Majors, Forex-Exotics, Gold, Silber, Kupfer, Platin, Palladium sowie Brent Oil und WTI Light Oil. Dazu auch noch 17 Indicies (DAX, Stoxx50, Dow etc.)

Gruß

Andreas

MA-EA 10.09.16 13:03

Zitat:

Zitat von Aktien Andy (Beitrag 35705)
Ich melde mich, wenn ich das hinbekommen habe, dann kannst Du mir sagen, welches Währungspaar ich zum Testen nehmen soll.

Am Besten Alles. :D Ich brauch eh noch ne Weile.

ralfbenker 10.09.16 14:53

Zitat:

Zitat von MA-EA (Beitrag 35699)
Der Tag war hart, also kurz:

Bei der Dekla des GDs ist das wohl so.

Bei der Dekla der Linien gehts da aber nicht um Perioden, sondern um ihre Größe.

Code:

//CCI
{//Buy/Sell when CCI >/< 0.0
double CCI = iCCI(_Symbol,_Period, InpCCIPeriod, CCI_Price, 1);
double IL1 = iCCI(_Symbol,_Period, indicator_level1, CCI_Price, 1);//-100
double IL2 = iCCI(_Symbol,_Period, indicator_level2, CCI_Price, 1);//+100


@MA-EA:
Was du dann schreibst ist dann aber kein mql4 mehr. Lass Dir mal im Journal die Werte von IL1 und IL2 anzeigen.
Das geht mit:

Code:

Print ("IL1:",IL1, " / IL2:",IL2);
Du wirst feststellen, dass IL1 immer 0 ist und sich nie ändert!!!
Kann auch nicht, weil -100 Perioden vorwärts denken kann der CCI nicht weil er da noch keinen Kurs hat :-).

Falls Du dann doch mql4 Code schreiben solltest findest Du die Definition des iCCI in der Referenz:

double iCCI(
string symbol, // symbol
int timeframe, // timeframe
int period, // averaging period
int applied_price, // applied price
int shift // shift
);
Die Funktion iCCI benötigt genau diese 5 Parameter um ein Ergebnis zu liefern.
Oder an welcher Stelle meinst Du der Funktion iCCI mitzuteilen über wieviele Perioden sie berechnet werden soll?
Mit iCCI deklariest Du keine Linien sondern den Wert des iCCI im angegebenen Bar(shift).
Und ob der iCCI <>100/-100 ist prüfst Du dann mit einem Vergleich
iCCI()>100 oder iCCI<-100.

MA-EA 10.09.16 15:43

Muss ich mir noch mal genau anschaun. :confused:

Jetzt komm ich aber erst mal beim RVI nicht weiter. Eigentlich
müsste die Globale Variable soweit richtig sein:
Code:

//RVI GV
extern string RelVigInd = "Relativ Vigor Index";
extern int ExtRVIPeriod = 10;

Dann die Definitionen nach Start:
Code:

//RVI
double DN_PLUS = iRVI(ExtRVIPeriod);
double DN_MINUS = iRVI(ExtRVIPeriod);

Beim Kompilieren heißt es für beide Zeilen "'iRVI' - wrong parameters count Valerius_(CCI_FI_RVI)_Metatrader4_EA.mq4 113 18"

Code aus der RVI mq4
Parameter
Code:

//---- indicator parameters
extern int ExtRVIPeriod=10;

Code:

//+------------------------------------------------------------------+
//| Relativ Vigor Index                                              |
//+------------------------------------------------------------------+
int start()
  {
  int i,j,nLimit,nCountedBars;
  double dValueUp,dValueDown,dNum,dDeNum;
//----
  if(Bars<=ExtRVIPeriod+8) return(0);
//----
  nCountedBars=IndicatorCounted();
//---- check for possible errors
  if(nCountedBars<0) return(-1);
//---- last counted bar will be recounted
  nLimit=Bars-ExtRVIPeriod-4;
  if(nCountedBars>ExtRVIPeriod+4)
      nLimit=Bars-nCountedBars;
//---- RVI counted in the 1-st buffer
  for(i=0; i<=nLimit; i++)
    {
      dNum=0.0;
      dDeNum=0.0;
      for(j=i; j<i+ExtRVIPeriod; j++)
        {
        dValueUp=((Close[j]-Open[j])+2*(Close[j+1]-Open[j+1])+2*(Close[j+2]-Open[j+2])+(Close[j+3]-Open[j+3]))/6;
        dValueDown=((High[j]-Low[j])+2*(High[j+1]-Low[j+1])+2*(High[j+2]-Low[j+2])+(High[j+3]-Low[j+3]))/6;
        dNum+=dValueUp;
        dDeNum+=dValueDown;
        }
      if(dDeNum!=0.0)
        ExtRVIBuffer[i]=dNum/dDeNum;
      else
        ExtRVIBuffer[i]=dNum; 
    }
//---- signal line counted in the 2-nd buffer
  nLimit=Bars-ExtRVIPeriod-7;
  if(nCountedBars>ExtRVIPeriod+8)
      nLimit=Bars-nCountedBars+1;
  for(i=0; i<=nLimit; i++)
      ExtRVISignalBuffer[i]=(ExtRVIBuffer[i]+2*ExtRVIBuffer[i+1]+2*ExtRVIBuffer[i+2]+ExtRVIBuffer[i+3])/6;
//----
  return(0);
  }

Komm gerade gar nicht klar. :confused:

traderdoc 10.09.16 17:40

"... Dann die Definitionen nach Start:
Code:
//RVI
double DN_PLUS = iRVI(ExtRVIPeriod);
double DN_MINUS = iRVI(ExtRVIPeriod);
Beim Kompilieren heißt es für beide Zeilen "'iRVI' - wrong parameters count Valerius_(CCI_FI_RVI)_Metatrader4_EA.mq4 113 18..."

Klar! Da könnte evtl. noch der Index des Bufferspeichers fehlen.
Und v.a. auf welcher Kerze soll denn der Indikatorwert berechnet werden?

Die fehlen leider immer noch die Basics. Du scheinst auch nicht viel nachgeholt zu haben, denn das mit den Levels des CCI haben wir Dir schon vor einiger Zeit mehrmals!! erklärt, dass die beiden Levelwerte nichts in der Funktion iCCI() zu suchen haben.

Das ist auch der Hammer:
"//RVI
double DN_PLUS = iRVI(ExtRVIPeriod);
double DN_MINUS = iRVI(ExtRVIPeriod);"

Wie soll denn unterschieden werden zwischen DN_PLUS und DN_MINUS bei identischer Parameterübergabe?

traderdoc

Aktien Andy 10.09.16 18:00

Zitat:

Zitat von MA-EA (Beitrag 35708)
Am Besten Alles. :D Ich brauch eh noch ne Weile.

OK, ich fange dann mit EURUSD an, wenn ich den Import hinbekommen habe.

MA-EA 10.09.16 21:50

Bekommst Du es hin, Indikatoren etc. in den EA einzubaun? Ich anscheinend nicht. :( In meinem MQL Buch steht irgendwas von "Mode" und was weiß ich Alles, was kein Mensch kapiert.

https://www.amazon.de/Algorithmische.../dp/3732366715


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:47 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum