Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3824
Beiträge: 36916
Benutzer: 6.074
Aktive Benutzer: 494
Links: 80
Wir begrüßen unseren neuesten Benutzer: hmf44
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 22 Stunden
- hmf44
vor einem Tag
- Crossa
vor einem Tag
- snatshit
vor einem Tag
- Roerich
vor einem Tag
- John_Liver...

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 68
Gesamt: 70
Team: 0
Team:  
Benutzer:  Domke01, RetepM
Freunde anzeigen

Empfehlungen

Werbung

Like Tree20Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #51 (permalink)  
Alt 28.09.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 565
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Fehlermeldungen zum RVI sind weg. Allerdings hab ich doch Zweifel, dass
das so funktioniert:

Code:
//Relativ Vigor Index
int i,j,nLimit,nCountedBars;
double dValueUp,dValueDown,dNum,dDeNum;

double DN_PLUS = iRVI(_Symbol,_Period, ExtRVIPeriod, dNum, 1);
double DDN_PLUS = iRVI(_Symbol,_Period, ExtRVIPeriod, dDeNum, 1);



Ausserdem musste ich die [WIKI]CCI[/WIKI] Lines
umbenennnen, weil sie sonst genauso heißen wie
die des Williams Percent Range:

Code:
//Commodity Channel Index
{
double CCI = iCCI(_Symbol,_Period, InpCCIPeriod, CCI_Price, 1);
double IL1 = iCCI(_Symbol,_Period, CCI_indicator_level1, CCI_Price, 1);//-100
double IL2 = iCCI(_Symbol,_Period, CCI_indicator_level2, CCI_Price, 1);//+100
Die stehen so aber nicht in der MQL des [WIKI]CCI[/WIKI].
Funktioniert das so?
Angehängte Dateien
Dateityp: zip Valerius_(CCI_FI_RVI_WPR)_Metatrader4_EA.zip (5,2 KB, 3x aufgerufen)
  #52 (permalink)  
Alt 28.09.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 199
ralfbenker befindet sich auf einem aufstrebenden Ast
Standard

Nö ist nicht richtig, der Quatsch mit den indicator_levels ist ja immer noch drin.
Wenn Du das mit den Leveln beim iWPR genauso machst wird das wieder Murks.
Beim iRVI ist der vierte Parameter (dNum/dDENum) laut Referenz vom Datentyp int und nicht double. Außerdem scheinen die Werte von dNum/dDeNum (Anzahl der Perioden über die der WPR berechnet werden soll) nicht definiert zu sein.

Nochmal langsam:
bei Funktionen in mql sind die Parameter in Klammern von der Bedeutung her immer eindeutig festgelegt, auch die Reihenfolge ist genau festgelegt !!!

iCCI(Parameter1,Parameter2,Parameter3,Parameter4,P arameter5);

Auch wenn Du in Deinem EA den Parameter3 mit indicator_level benennst liest der EA das IMMER als Periode über die der CCI berechnet werden soll.

Das ist von den Entwicklern so definiert und nicht durch Variablennamen änderbar !!! Dafür gibts ja die mql-Referenz in der man das nachlesen kann.

Deine Variable IL2 berechnet den CCI über 100 Perioden und IL1 liefert Mist weil -100 Perioden gibts beim CCI nicht.
Lass dir die Variablen doch einfach mal mit Print im Journal ausgeben dann siehst Du das.
  #53 (permalink)  
Alt 28.09.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
double CCI = iCCI(_Symbol,_Period, InpCCIPeriod, CCI_Price, 1);
double IL1 = iCCI(_Symbol,_Period, CCI_indicator_level1, CCI_Price, 1);//-100
double IL2 = iCCI(_Symbol,_Period, CCI_indicator_level2, CCI_Price, 1);//+100
Funktioniert das so?
Ne, was den CCI auf jeden Fall anbelangt, funktioniert das nach wie vor nicht.
Und das wird auch nicht besser, wenn Du denselben Quatsch das x-te Mal postest.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #54 (permalink)  
Alt 01.10.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 565
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hallo.

Ne Frage zum allgemeinen Verständnis.

Wenn der EA sozusagen seine Bedingungen aus der MQL
der Indis holen soll, dann rechnet er ja eigentlich nicht
selber, sondern fragt den Indi sozusagen nach dem Ergebnis.
Weiß nicht, wie ichs sonst sagen soll.
Er gibt dem Indi die Parameter vor,
lässt sich die Ergebnisse sagen und prüft ob Ein/Ausstiegs-
Bedingungen erfüllt sind. Soweit ich das verstanden habe.

Um die Antworten zu erhalten, muss er natürlich
entsprechende Ergebnisse mit den richtigen
Begriffen abfragen. Also wenn er z.B. nen MA berechnen lässt,
gibt er sozusagen seine MA-Parameter und Einstellungen
an die MA MQL weiter. Er fragt dann sozusagen
"welchen Wert hat nen Simple MA Bar1, wenn er im Chart H1
auf 10 Perioden gelegt wird." Jetzt mal als blödes Beispiel.
Der Indi berechnet alles und antwortet z.B. mit "857.489 Pips".
In den Open/Close Bedingungen checkt der EA dann,
ob die Bedingungen für Ein/Ausstieg gegeben sind.
Der EA selber benutzt keine Formeln, nur die Stichwörter,
nach denen er den Indi abfragt.

Hab ich das richtig geschnallt?
  #55 (permalink)  
Alt 01.10.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 199
ralfbenker befindet sich auf einem aufstrebenden Ast
Standard

Na so ähnlich. iCCI oder iRVI sind Funktionen die dir den Indikatorwert für einen bestimmten Bar berechnen.
Mal ein einfaches Beispiel:
b=4
a=Quatratwurzel(4) - Hab kein Quatratwurzelzeichen auf der Tastatur
Das würde man in mql4 dann so schreiben:

double b=4;
double a=sqrt(b);
Das Ergebnis wäre dann 2, a hätte somit den Wert 2 angenommen.
Die Berechnung der Indikatoren ist genauso

Beispiel:
Die Variable ma10 soll den einfachen gleitenden Durchschnitt der letzten 19 Perioden des aktuellen Charts im aktuellen Timeframe für Bar Nummer 1 erhalten:

double ma10=iMA(NULL,0,19,0,MODE_SMA,PRICE_CLOSE,1);

Nachdem diese Programmzeile durchlaufen ist, ist in der Variablen ma10 der GD von Bar 1 enthalten.
Dabei hat jede Variable/Zahl in der Klammer eine eineindeutige Bedeutung !!!
Man kann die Variablen/Bezeichner in der Klammer nur in dieser Reihenfolge angeben.

In diesem Fall hätten die Zahlen in der Klammer folgende Bedeutung:

1. NULL - Das Währungssymbol (NULL bedeutet das Aktuelle auf dem Chart)
2. 0 - diese null steht für das Timeframe - 0 bedeutet aktuelles TF)
3. 19 - Anzahl der Perioden über die der GD berechnet werden soll)
4. 0 - Anzahl der Perioden um die der GD verschoben werden soll
5. MODE_SMA - Art der Durchschnittsbildung(Simpel/Smooth etc.)
6. PRICE_CLOSE - der Preis der für die Berechnung herangezogen werden soll
7. 1 - die Barnummer für die der GD berechnet werden soll

Und genauso funktioniert das bei der Berechnung des iCCI oder iRVI.
Jede Variable hat an einer bestimmten Stelle in der Klammer eine bestimmte Funktion. Deshalb ist dies hier eben falsch:

double IL2 = iCCI(_Symbol,_Period, CCI_indicator_level2, CCI_Price, 1);//+100

Die Variable indicator_level2 steht an der Stelle, wo iCCI die Anzahl der Perioden über die der CCI berechnet wird erwartet.
Und so wird der Wert des CCI vollkommen falsch berechnet.
Hoffe, das hat Dir ein bischen geholfen.
  #56 (permalink)  
Alt 01.10.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 565
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Danke, kapier ich nicht.

Bitte nicht schimpfen, bin müde und hab Kopfweh.

Code:
//RVI GV
extern string RelVigInd = "Relativ Vigor Index";
extern int ExtRVIPeriod = 10;
Code:
//Relativ Vigor Index
double ExtRVIBuffer,ExtRVISignalBuffer,dNum,dDeNum;
double RVI_B = iRVI(_Symbol,_Period, ExtRVIBuffer, dNum, 1);
double RVI_SB = iRVI(_Symbol,_Period, ExtRVISignalBuffer, dDeNum, 1);
Aber irgendwie steht in meinem MQL4 Buch ne Menge Schmarrn. Werd aus
dem Schinken auch nach Stunden
kein bißchen schlauer.

Fehlermeldungen gibts keine, aber obs funktioniert...
Angehängte Dateien
Dateityp: mq4 Valerius_(CCI_FI_RVI_WPR)_Metatrader4_EA.mq4 (6,9 KB, 0x aufgerufen)
Dateityp: mq4 RVI.mq4 (3,1 KB, 1x aufgerufen)
  #57 (permalink)  
Alt 02.10.16
Zyr Zyr ist offline
Neues Mitglied
 
Registriert seit: Aug 2013
Beiträge: 27
Zyr befindet sich auf einem aufstrebenden Ast
Standard

Jeder Indikator erbt die externen Parameter Symbol, Timeframe und Mode, Shift. Deshalbbraucht man diese auch nicht mit in den deklarationsteil aufnehmen, dort stehen also nur die vom Programmierer zusätzlich benötigten externen Parameter. Zu erkennen an extern oder input.

Wenn also ein Indikator in seinem Code nur stehen hat:

extern int period = 10;

So muss der aufruf mit Indikator (Symbol, Timeframe, period, Mode, Shift) erfolgen. Da die ersten beiden und der letzte Parameter von der "Superklasse" kommen. Mode ist hier dann die Angabe auf welchen Buffer zugegriffen werden soll, tritt aber nur auf wenn der Indikator mehr als einen Wert ermittelt z.b. RVI oder MACD etc.pp.

Dein Levels aus dem CCI sind keine externen Parameter und als solche auch nicht gekennzeichnet!

Gruß
Zyr
  #58 (permalink)  
Alt 02.10.16
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 135
RetepM befindet sich auf einem aufstrebenden Ast
Standard

Ich bewundere Eure Geduld. Der gute MA-EA kämpft anscheinend an vielen Fronten. Lest mal hier:

Neuer Valerius Metatrader 4 EA

Es war spät und Kopfschmerzen hatte er da auch!
  #59 (permalink)  
Alt 02.10.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Jo, das ist der Hammer:

"Ok, wie gesagt:Vergessen wir das einfach. Ich werds später
rausfinden. Bitte lassen wir den CCI erst mal aussen vor.

Bitte helft mir jetzt, den RVI einzubauen. Bitte Bitte Bitte!

Für Euch Progger muss es doch immer interessant sein, an EAs
zu basteln."

Dieses Post von @Valerius alias @MA-EA habe ich doch vor Kurzem auch hier genauso verfasst gelesen. In diesem Thread des Aktienboards stehen noch andere Posts 1:1 drin und wurden hier einfach hineinkopiert.

@MA-EA, ich muß schon sagen, so ein Paradiesvogel ist an mir schon lange nicht mehr vorbeigeflogen.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #60 (permalink)  
Alt 02.10.16
Zyr Zyr ist offline
Neues Mitglied
 
Registriert seit: Aug 2013
Beiträge: 27
Zyr befindet sich auf einem aufstrebenden Ast
Standard

Tja anscheinend liest er sich unsere tips nicht mal durch...
Und macht sich nen Spaß draus ein auf auf DAU zu machen....
Thema geschlossen

Lesezeichen

Stichworte
ea programmieren, expert advisor programmieren, mql4, programmierung, programmierung metatrader, valerius, valerius ea, valerius expert advisor


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 14:24 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------