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: 4621
Beiträge: 41681
Benutzer: 6.996
Aktive Benutzer: 183
Links: 82
Wir begrüßen unseren neuesten Benutzer: baalexeyfranesay3088
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einer Stunde
- baalexeyfr...
vor 6 Tagen
- Tbened
vor einer Woche
- coinboy
vor einer Woche
- Kat34r
vor 2 Wochen
- Goldstream

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 84
Gesamt: 85
Team: 0
Team:  
Benutzer:  traderdoc
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 3 Wochen
Neues Mitglied
 
Registriert seit: Dec 2020
Beiträge: 3
Gaydon befindet sich auf einem aufstrebenden Ast
Standard letzten RSI werten überprüfen

Hallo, da ich mir jetzt schon eine Weile meinen Kopfzerbreche und keine Lösung finde und auf dem Holzweg bin und anscheinend niemand ein ähnliches Problem hatte, bin ich nun hier.
Mein Problem ist, ich möchte wissen war der RSI in der 5Minuten Periode in den letzten 120, 5minuten Kerzen, über 70 oder unter 30. Ich dachte das geht über den shift wert der mir ja diese Info gibt aber Folgendes.

void OnTick()
{
double RSI0 = iRSI(_Symbol,PERIOD_M5,14,PRICE_CLOSE,0);
double RSI1 = iRSI(_Symbol,PERIOD_M5,14,PRICE_CLOSE,1);
double RSI2 = iRSI(_Symbol,PERIOD_M5,14,PRICE_CLOSE,2);
double RSI3 = iRSI(_Symbol,PERIOD_M5,14,PRICE_CLOSE,3);
double RSI4 = iRSI(_Symbol,PERIOD_M5,14,PRICE_CLOSE,4);
double RSI5 = iRSI(_Symbol,PERIOD_M5,14,PRICE_CLOSE,5);
Comment("RSI 0=",RSI0, "\n",
"RSI 1=",RSI1, "\n",
"RSI 2=",RSI2, "\n",
"RSI 3=",RSI3, "\n",
"RSI 4=",RSI4, "\n",
"RSI 5=",RSI5);
}

so habe ich mir das gedacht aber das muss doch auch einfacher gehen und nicht das ich 120 abfragen dieser Art mache.?
Ich dachte es würde mit einem Array gehen aber das habe ich nicht hinbekommen.

Vielen Dank für eure Hilfe
Mit Zitat antworten
  #2 (permalink)  
Alt vor 3 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.486
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Code:
bool flag = false;
for (int i = 1; i <= 120; i++) {
   if (iRSI(_Symbol,PERIOD_M5,14,PRICE_CLOSE,i)  > 70 || 
       iRSI(_Symbol,PERIOD_M5,14,PRICE_CLOSE,i)  < 30)) {
      flag = true;
      break;
   }
}
if (flag) {
   //action!
}
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #3 (permalink)  
Alt vor 3 Wochen
Neues Mitglied
 
Registriert seit: Dec 2020
Beiträge: 3
Gaydon befindet sich auf einem aufstrebenden Ast
Standard

Ohh, mein Gott wie einfach, vielen Dank für die Antwort.
Ich hatte mich total daran fest gemacht, dass ich mir auch den Passenden Shiftwert anzeigen lassen wollte, obwohl das ich überhaupt nicht nötig ist.
vielen Dank.
Mit Zitat antworten
  #4 (permalink)  
Alt vor 2 Wochen
Neues Mitglied
 
Registriert seit: Dec 2020
Beiträge: 3
Gaydon befindet sich auf einem aufstrebenden Ast
Standard

Kannst du mir auch Sagen warum das im Testmodus einzeln funktioniert aber so zusammen eben nicht?

void OnTick()
{
for (int i5=0; i5 <= 36; i5++)
for (int i1=0; i1 <=180; i1++)
{
if (iRSI(_Symbol,PERIOD_M5,14,PRICE_CLOSE,i5)>=70&&iR SI(_Symbol,PERIOD_M1,14,PRICE_CLOSE,i1)>=70)
Comment("RSI ist größer 70");
}
Mit Zitat antworten
  #5 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.486
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Gaydon Beitrag anzeigen
Kannst du mir auch Sagen warum das im Testmodus einzeln funktioniert aber so zusammen eben nicht?

void OnTick()
{
for (int i5=0; i5 <= 36; i5++)
for (int i1=0; i1 <=180; i1++)
{
if (iRSI(_Symbol,PERIOD_M5,14,PRICE_CLOSE,i5)>=70&&iR SI(_Symbol,PERIOD_M1,14,PRICE_CLOSE,i1)>=70)
Comment("RSI ist größer 70");
}
Als erstes mal bitte angewöhnen, den Code über das Icon # zu schreiben.
Das ist einfach dann viel übersichtlicher.
Also
Code:
for (int i5=0; i5 <= 36; i5++) {
   for (int i1=0; i1 <=180; i1++) {
      if (iRSI(_Symbol,PERIOD_M5,14,PRICE_CLOSE,i5)>=70 && iRSI(_Symbol,PERIOD_M1,14,PRICE_CLOSE,i1)>=70)
         Comment("RSI ist größer 70");
   }
}
Was soll an dieser verschachtelten Schleife nicht funktionieren?
Wichtig ist immer nur, dass in den jeweiligen TimeFrames auch, wie in dem Fall, 36 bzw. 180 Kerzen-Werte in der Historie vorhanden sind.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
rsi, shift, zeitraum

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 23:16 Uhr.





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