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.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43251
Benutzer: 7.220
Aktive Benutzer: 82
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 25 Minuten
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 992
Gesamt: 993
Team: 0
Team:  
Benutzer:  JosephTK
Freunde anzeigen

Empfehlungen

Like Tree20Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #41 (permalink)  
Alt 14.09.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 199
ralfbenker befindet sich auf einem aufstrebenden Ast
Standard

Wieso funktioniert Shift nicht. Der Parameter Shift ist der Bar für die du den CCI berechnen willst. 0 ist der aktuelle Bar, 1 der Bar davor usw.

Die 5 Zeilen-Liste ist keine Liste sondern die Definition der Funktion iCCI.
Wenn du deinen Editor aufmachst und oben auf Hilfe klickst kommst du unter anderem zur MQL4-Referenz. Da gibst Du iCCI als Suchbegriff ein und findest ne Beschreibung der Funktion.
Oder du klickst in deinem Code mit der Maus auf die Funktion iCCI (oder was auch immer dir unklar ist) und drückst F1.
Dann geht ein Fenster auf und du bist sofort auf der Funktion/Beschreibung die du suchst.
  #42 (permalink)  
Alt 17.09.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Lassen wir den CCI einfach erst mal aussen vor.

Kann Jemand helfen den RVI einzubaun?
Angehängte Dateien
Dateityp: mq4 Valerius_(CCI_FI_RVI)_Metatrader4_EA.mq4 (6,2 KB, 2x aufgerufen)
Dateityp: mq4 RVI.mq4 (3,1 KB, 0x aufgerufen)
  #43 (permalink)  
Alt 17.09.16
Zyr Zyr ist offline
Neues Mitglied
 
Registriert seit: Aug 2013
Beiträge: 27
Zyr befindet sich auf einem aufstrebenden Ast
Standard

RVI Refernce

Bsp. RVI Main unter RVI Signal
Code:
bool rviDown (int period, int shift)
{
     return iRVI (NULL, 0, period, MODE_MAIN, shift) < iRVI (NULL, 0, period, MODE_SIGNAL, shift);
}
Der Aufruf in einer if Abfrage wäre dann z.B.:
Code:
if (rviDown(14,1))
{
  print ("RVI Main über 14 Perioden ist für die letzte abgeschlossene Kerze unter dem Signal");
}
  #44 (permalink)  
Alt 18.09.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 199
ralfbenker befindet sich auf einem aufstrebenden Ast
Standard

Da gibt's keinen Unterschied zur Funktion iCCI(). Die Verwendung der Funktion iRVI() funktioniert genauso.
double iRVI(
string symbol, // symbol
int timeframe, // timeframe
int period, // averaging period
int mode, // line index
int shift // shift
);
Beispiel:
Willst du den RVI für den aktuellen Chart im aktuellen Timeframe über 10 Perioden berechnen sieht das für den aktuellen Bar 0 so aus:

double val=iRVI(NULL,0,10,MODE_MAIN,0);
  #45 (permalink)  
Alt 26.09.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ralfbenker Beitrag anzeigen
Da gibt's keinen Unterschied zur Funktion iCCI(). Die Verwendung der Funktion iRVI() funktioniert genauso.
double iRVI(
string symbol, // symbol
int timeframe, // timeframe
int period, // averaging period
int mode, // line index
int shift // shift
);
Beispiel:
Willst du den RVI für den aktuellen Chart im aktuellen Timeframe über 10 Perioden berechnen sieht das für den aktuellen Bar 0 so aus:

double val=iRVI(NULL,0,10,MODE_MAIN,0);
Ist schon spät, also kurz gesagt: Der CCI wurde aber nicht auf diese
5-Zeilen Weise eingebaut. Sondern es werden die
einzelnen Elemente, die Funktionen extra aufgerufen.
Kanns nicht genau erklären, aber er wird in meinen EA
anders eingefügt als mit Deinen 5 Zeilen. Deswegen ist das schon richtig:

Code:
//CCI GV
extern string ComChaIn = "Commodity Channel Index";
extern int InpCCIPeriod = 14;
extern double indicator_level1 = -100.0;
extern double indicator_level2 = 100.0;
input ENUM_APPLIED_PRICE CCI_Price = PRICE_TYPICAL;
Code:
//CCI
{
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
Angehängte Dateien
Dateityp: mq4 Valerius_(CCI_FI_RVI)_Metatrader4_EA.mq4 (6,2 KB, 1x aufgerufen)
  #46 (permalink)  
Alt 26.09.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Ist schon spät, also kurz gesagt: Der CCI wurde aber nicht auf diese
5-Zeilen Weise eingebaut. Sondern es werden die
einzelnen Elemente, die Funktionen extra aufgerufen.
Kanns nicht genau erklären, aber er wird in meinen EA
anders eingefügt als mit Deinen 5 Zeilen. Deswegen ist das schon richtig:

Code:
//CCI GV
extern string ComChaIn = "Commodity Channel Index";
extern int InpCCIPeriod = 14;
extern double indicator_level1 = -100.0;
extern double indicator_level2 = 100.0;
input ENUM_APPLIED_PRICE CCI_Price = PRICE_TYPICAL;
Code:
//CCI
{
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
Nochmals, das sind die 5 Zeilen für den CCI aus der MQL4-Dokumentation:

double iCCI(
string symbol, // symbol
int timeframe, // timeframe
int period, // averaging period
int applied_price, // applied price
int shift // shift
);

Ich habe mal den 3. Parameter fett markiert. In der Doku steht da
int period // averaging period
D.h. period steht für die Periodenangabe des Indikators, also die Anzahl der Kerzen, die in die Vergangenheit betrachtet werden sollen.
1. Ist Deine Periode nicht 100 und auch nicht -100
2. Gibt es keine!!!!!! negativen Perioden (schon daran müsstest Du erkennen, dass Du auf dem Holzweg bist)

Mit double CCI = iCCI(_Symbol,_Period, InpCCIPeriod, CCI_Price, 1); wurden alle 5 Parameter (Zeilen) richtig angegeben.

Aber ich (wir) verstehe(n) nicht, warum Du es nicht begreifen willst, dass für periode nicht die Indikatorlevels eingegeben werden dürfen?

In Summe sind Deine Programmzeilen bzgl. double IL1 und double IL2 nach wie vor falsch und damit werden auch falsche Ergebnisse weiterverarbeitet.

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

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.
  #48 (permalink)  
Alt 27.09.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
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.
Da gibt es nichts später herauszufinden. Die Sachlage ist eineindeutig!
Den RVI baust Du ein, wie die Zeile des CCI bzgl. double CCI. Das wirst Du aber nur erfolgreich bewältigen, wenn die Grundlagen bei Dir angekommen sind. Und wie man aus Deinem letzten Post erlesen kann, sind die noch nicht angekommen.

Deine Vorgehensweise und Renitenz schreckt aber inzwischen alle Programmierer ab. Und wer ernsthaft programmiert, der bastelt nicht.

traderdoc
ralfbenker likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #49 (permalink)  
Alt 27.09.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 199
ralfbenker befindet sich auf einem aufstrebenden Ast
Standard

@MA-EA was ist da so schwer zu verstehen. Diese "vermeintlichen" 5 Zeilen sind nur eine Zeile im Programmcode:

double iRVI(
string symbol, // symbol
int timeframe, // timeframe
int period, // averaging period
int mode, // line index
int shift // shift
);

Dies ist nichts weiter als die Beschreibung der Funktion iRVI mit der Erläuterung der erforderlichen Parameter.

Im Programmcode schreibt man das dann natürlich so:

double iRVI(symbol,timeframe,period,mode,shift);

und genauso geht das bei der Funktion iCCI. In der mql-Referenz ist auch genau festgelgt, an welcher Stelle welche Variable stehen muss !!
  #50 (permalink)  
Alt 27.09.16
Zyr Zyr ist offline
Neues Mitglied
 
Registriert seit: Aug 2013
Beiträge: 27
Zyr befindet sich auf einem aufstrebenden Ast
Standard

@MA-EA

Die Zeilen double IL1 und double IL2 mußt du ersetzen
Mit z.B.:
Code:
bool IL1 ()
{
return CCI < IndicatorLevel1;
}
bool IL2 ()
{
return CCI > IndikatorLevel2;
}
Sonst macht dein Code nicht das was du willst.
Die Levels sind nicht Bestandteil der Rückgabe iCCI(...)
iCCI gibt nur den Datentyp double auf Grundlage der von dir übergebenen Variblen zurück. Bei einer Period die in der Zukunft liegt (Periodenwerte < 0) ist es nichts.

Das selbe wirst du mit iRVI haben deshalb ist es wichtig zu verstehen was hier passiert.
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 22:27 Uhr.





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