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: 43253
Benutzer: 7.220
Aktive Benutzer: 81
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 4 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 257
Gesamt: 257
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 22.03.13
Neues Mitglied
 
Registriert seit: Mar 2013
Beiträge: 4
feuervogt befindet sich auf einem aufstrebenden Ast
Standard moving Avg. auf RSI

Hallo zusammen,

ich bin recht neu hier und versuche mich gerade ein wenig im Umgang mit dem Editor in MT4.

Aktuell habe ich eine kleine Blockade und hoffe, Ihr könnt mir weiterhelfen.

Ich möchte über den RSI einen Movin Average ausgeben. Ich weiss, dass ich das über den MA Indikator über "previous Indicator" anzeigen lassen kann, was aber nicht mein Ziel ist.
Tatsächlich möchte ich den absoluten Wert ausgeben lassen.

den RSI lasse ich mir mit:

Code:
double rsigrey;
rsigrey = iRSI(Symbol(),0,5,0,0);
string valrsigrey=DoubleToStr(rsigrey,2);
Comment("RSI: "+valrsigrey)
ausgeben.

Dummerweise schaffe ich es nicht, den moving Average per iMA darüber zu bilden, weil der keine Referenz auf den RSI zulässt. Als Array habe ich es auch nicht hinbekommen.

Gibt es einen "Trick"? Kann ich der Funktion nicht einfach den RSI übergeben (wenn ja, wie? Als Variable scheint es nicht zu gehen)? Sind zu wenig Bäume im Wald?

Das sind meine ersten Gehversuche hier, eventuelle Blödheit ist also nicht auszuschließen.... :-D

mit den allerbesten Grüßen und der Hoffnung auf baldige Erleuchtung

jens
  #2 (permalink)  
Alt 22.03.13
Mitglied
 
Registriert seit: Mar 2012
Ort: Wien
Beiträge: 191
Deepack befindet sich auf einem aufstrebenden Ast
Deepack eine Nachricht über Skype™ schicken
Standard

Hallo
ich hoffe ich habe es Richtig verstanden...

Du hast am Chart ein Seperates Fenster in dem der RSI angezeigt wird und auf dem Fenster möchtest du auch den MovingAverage angezeigt haben ...
wie gesagt ich hoffe ich habs richtig verstanden wenn nicht korrigiere mich bitte

ansonsten:

Musst du den MovingAverage Indicator geringfügig ändern
dazu suchst du dir am besten den "Costum Moving Average"
von MetaQuotes...
Moving Averages.mq4 - MQL4 Code Base

speichern...

und änderst im code die zeile
Code:
#property indicator_chart_window
//auf 
#property indicator_separate_window
und schon kannst du den geänderten MA auf das RSI-Fenster ziehen

lg deepack


edit:

Ich habe mir jetzt deinen Beitrag noch 3mal durchgelesen...
und bin zum entschluss gekommen dass dir mein beitrag nicht helfen wird

habe aber auch nicht soganz verstanden was du genau möchtest
  #3 (permalink)  
Alt 23.03.13
Neues Mitglied
 
Registriert seit: Mar 2013
Beiträge: 4
feuervogt befindet sich auf einem aufstrebenden Ast
Standard

Hallo deepack,

danke für den Ansatz, das hatte ich mir schon angesehen und trotzdem keine Lösung gefunden. Vielleicht werde ich den code komplett anpassen müssen, bin aber - wie gesagt - irgendwie blöd gerade.

Es geht nicht unbedingt darum, die Ausgabe in ein bestimmtes Fenster zu machen, das bekomme ich hin. Was ich möchte, ist nicht die Kurve ausgeben, sondern den aktuellen Wert als Zahl, um ihn beispielsweise einer Variablen zu übergeben.

Letzlich möchte ich über den RSI zwei moving averages bilden, deren Bewegung zueinander ich vergleiche. Dazu brauche ich aber die absoluten Werte, um Bedingungen festlegen zu können. (Wenn MA_1 Wert x erreicht, dann male einen blauen Kreis in ein grünes Viereck, usw.)

Ich bekomme es einfach nicht hin, den MA über dem RSI zu bilden, weil die Funktion iMA immer "Symbol()" haben will und mir das nichts bringt, weil ich für mein aktuelles Vorhaben eben nicht die MA über den Index oder die Währung bilden will, sondern über den RSI und ich der Symbolfunktion keine Variable übergeben kann - soviel ich weiss.

Vielen Dank für Deine Bemühungen, ich bin eben nach Hause gekommen und mache jetzt die Matraze warm.

Jens
  #4 (permalink)  
Alt 23.03.13
Elite Mitglied
 
Registriert seit: Jun 2010
Ort: Trier
Beiträge: 116
naranjoe befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

ich glaube die Funktion die du benötigst ist iMAOnArray().
Damit kannst du einen Moving Average auf bestimmte Werte kalkulieren.
Schau mal in der MQL4 Reference, da ist es gut beschrieben.

Gruß
naranjoe
  #5 (permalink)  
Alt 25.03.13
Neues Mitglied
 
Registriert seit: Mar 2013
Beiträge: 4
feuervogt befindet sich auf einem aufstrebenden Ast
Standard

Hallo zusammen,

danke für die angebotene Hilfe.

Ich habe es jetzt anders gelöst. In einem anderen Forum (mql4.com) habe ich code gefunden, den ich für mich modifizieren konnte.

Das Zwischenergebnis sieht nun so aus:

Code:
//+------------------------------------------------------------------+
//|                                           Bewegungsindikator.mq4 |
//|                                                   Lustiger Vogel |
//|                                           http://www.irgendwo.de |
//+------------------------------------------------------------------+

#property copyright ""
#property link      ""


#property indicator_separate_window    
#property indicator_buffers 3
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_level1 90             //Orientierungslinie
#property indicator_level2 80             //Orientierungslinie
#property indicator_level3 70             //Orientierungslinie
#property indicator_level4 30             //Orientierungslinie  
#property indicator_level5 20             //Orientierungslinie
#property indicator_level6 10             //Orientierungslinie
#property indicator_color1 DarkSlateGray  //Farbe RSI Indikator
#property indicator_color2 Red            //Farbe schneller Moving Average
#property indicator_color3 Green          //Farbe langsamer Moving Average           
#property indicator_levelcolor DimGray    //Grenzlinienfarbe
#property indicator_width1 2              //Dicke der Indikatorlinien
#property indicator_width2 2
#property indicator_width3 2

//+------------------------------------------------------------------+
//| Voreinstellung Eingabeparameter                                  |
//+------------------------------------------------------------------+
extern int RSI_Period    = 5;    
extern int RSI_Price     = 0;
extern int RSI_MA_Fast_Period = 3; 
extern int RSI_MA_Fast_Type = 1; 
extern int RSI_MA_Slow_Period = 20;
extern int RSI_MA_Slow_Type = 1;

//+------------------------------------------------------------------+
//| Arrays                                                           |
//+------------------------------------------------------------------+
double RSIBuf[];
double MaFastBuf[];
double MaSlowBuf[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
IndicatorShortName("RSI mit Moving Average ->");

//+------------------------------------------------------------------+
//| Graphen zeichnen                                                 |
//+------------------------------------------------------------------+
SetIndexBuffer(0,RSIBuf);
SetIndexLabel(0,"RSI 5");                    
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);  

SetIndexBuffer(1,MaFastBuf);
SetIndexLabel(1," ("+RSI_MA_Fast_Period+") Schneller MA auf RSI");       
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);                       

SetIndexBuffer(2,MaSlowBuf);
SetIndexLabel(2," ("+RSI_MA_Slow_Period+") Langsamer MA auf RSI");       
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); 


return(0);
}
//+------------------------------------------------------------------+
//| Berechnung RSI und MA  auf RSI                               |
//+------------------------------------------------------------------+
int start()
{

double MAFast,MASlow,RSI[];
ArrayResize(RSI,RSI_MA_Slow_Period);
int counted_bars=IndicatorCounted();
int limit = Bars-counted_bars-1;
for(int i=limit; i>=0; i--)

RSIBuf[i] = (iRSI(NULL,0,RSI_Period,RSI_Price,i)); 
MAFast = 0; MASlow=0;
for(int x=i; x<i; x++) {
RSI[x-i] = RSIBuf[x];
MAFast += RSIBuf[x]/RSI_MA_Fast_Period;
MASlow += RSIBuf[x]/RSI_MA_Slow_Period;
}

for(int j=limit; j>=0; j--)       //was missing
   {MaFastBuf[j] = (iMAOnArray(RSIBuf,0,RSI_MA_Fast_Period,0,RSI_MA_Fast_Type,j));
   MaSlowBuf[j] = (iMAOnArray(RSIBuf,0,RSI_MA_Slow_Period,0,RSI_MA_Slow_Type,j));}

//+------------------------------------------------------------------+
//| Absolutwerte runden                                              |
//+------------------------------------------------------------------+
string valRSI, valMaFast, valMaSlow;
valRSI=DoubleToStr(RSIBuf[0],1);
valMaFast=DoubleToStr(MaFastBuf[0],1);
valMaSlow=DoubleToStr(MaSlowBuf[0],1);

//+------------------------------------------------------------------+
//| Absolutwerte im Hauptfenster ausgeben                            |
//+------------------------------------------------------------------+

Comment("RSI              = "+valRSI+"\nMA schnell    = "+valMaFast+"\nMA langsam  = "+valMaSlow);

//----
return(0);

}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
Damit wird in einem Subfenster der RSI und die MA angezeigt und die Werte im Hauptfenster ausgegeben, wie ich es zum ausprobieren wollte.
Thema geschlossen

Lesezeichen

Stichworte
ima, movin average, moving average, mql4, programmierung, programmierung metatrader, rsi

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 02:13 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.
-----------------------------------------------------------------------------------------------------------------------------