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: 43248
Benutzer: 7.219
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Hopfen&Malz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107
vor 2 Wochen
- rg-trader

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 29.12.20
Neues Mitglied
 
Registriert seit: Dec 2020
Beiträge: 11
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
  #2 (permalink)  
Alt 30.12.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
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.
  #3 (permalink)  
Alt 30.12.20
Neues Mitglied
 
Registriert seit: Dec 2020
Beiträge: 11
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.
  #4 (permalink)  
Alt 04.01.21
Neues Mitglied
 
Registriert seit: Dec 2020
Beiträge: 11
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");
}
  #5 (permalink)  
Alt 05.01.21
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
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.
  #6 (permalink)  
Alt 24.01.21
Neues Mitglied
 
Registriert seit: Dec 2020
Beiträge: 11
Gaydon befindet sich auf einem aufstrebenden Ast
Standard

Tut mir leid das ich so lange nicht geantwortet habe, es war ein Einstellungsfehler im Tester.
Thema geschlossen

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 11:35 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.
-----------------------------------------------------------------------------------------------------------------------------