Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 5 > Programmierung MQL5

Programmierung MQL5 Hier gehts rund ums Programmieren in MQL5.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43248
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 8 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: 438
Gesamt: 438
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 14.04.17
Mitglied
 
Registriert seit: Aug 2014
Beiträge: 47
marquez befindet sich auf einem aufstrebenden Ast
Standard Wer kann helfen iRSI Problem

Hi in die Runde,


ist zwar blöd, dass ich hier fast immer nur zum schreiben komme, wenn Probleme da sind, aber hoffe trotzdem, dass sich jemand der Sache annehmen und helfen kann.

Ich bin bei einem Codeschnipsel beim MT4 auf folgende Code getroffen:

Code:
double imaPrice = iMA(NULL, 0, SMA_Period, 0, MODE_SMMA, PRICE_CLOSE, pos);
double rsiValue = iRSI( NULL,0,14,imaPrice, 0 );
Wie unschwer zu sehen ist, nutzt hier der RSI den imaPrice als "applied_price"


Jetzt finde ich für MT5 keine Adäquate Lösung hierfür. In der Doku zum iRSI MT5 steht auch nur, dass dieser bei "applied_price" die

Code:
PRICE_CLOSE
PRICE_OPEN
PRICE_HIGH
PRICE_LOW
PRICE_MEDIAN
PRICE_TYPICAL
PRICE_WEIGHTED
Oder den Handle vom anderen Indikator nehmen kann.

vgl: https://www.mql5.com/en/docs/indicators/irsi


Jeglicher Versuch also auch beim MT5 den imaPrice Value an den RSI einzubinden wirft sofort den Fehler, dass der RSI dann nicht initialisiert werden kann.


Hat da irgend jemand eine Idee zu ?

Vielleicht ist es auch wieder zu einfach, und ich seh den Wald vor Bäumen gerade nicht.


Danke schonmal.
  #2 (permalink)  
Alt 14.04.17
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Bin mir nicht sicher, aber den price muss man nicht extra deklarieren. Reicht glaube ich aus, ihn oben bei den Parametern auswählbar zu machen. Guck mal in der Quelldatei des RSI.

Edit:
Versuch mal bei den Einstellungen
Code:
input ENUM_APPLIED_PRICE
einzutragen. Müsste im MT dann auswählbar sein.
  #3 (permalink)  
Alt 14.04.17
Mitglied
 
Registriert seit: Aug 2014
Beiträge: 47
marquez befindet sich auf einem aufstrebenden Ast
Standard

Danke für Deine Antwort,

allerdings geht es mir nicht darum beim IRSI den applied_price per Settings einstellbar zu machen, oder den per PRICE_BLA zu definieren, sondern den Codeschnipsel vom MT4 zu portieren, und dieser nutzt bei applied_price den Wert vom IMA !
  #4 (permalink)  
Alt 16.04.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Hi Marquez,

das Handling der Indikatoren ist tatsächlich einer der großen Unterschiede von MQL4 zu MQL5.
In MQL5 muss zuerst ein Handle für einen Indikator erstellt werden, sinnvollerweise in der OnInit().
Also nur EIN mal wegen der Performance.
Ein Array von doubles erstellen und als Series definieren. Das ist wichtig.
Die Werte des Indis kopierst du dann mit CopyBuffer(...) in dieses Array.
Wenn du den Code siehst wird das klarer:
Code:
input int                  inpMA_Period      = 14;             // MA Period
input ENUM_TIMEFRAMES      inpMA_Timeframe   = PERIOD_M5;      // MA Timeframe
input ENUM_APPLIED_PRICE   inpMA_ApplPrice   = PRICE_TYPICAL;  // MA Applied Price
input ENUM_MA_METHOD       inpMA_Methode     = MODE_EMA;       // MA Method

int      maShift=0;
int      maHandle;
double   maBuffer[];

int OnInit()
{
   maHandle = iMA(_Symbol,inpMA_Timeframe,inpMA_Period,maShift,inpMA_Methode,inpMA_ApplPrice);  // Handle erstellen
   if(maHandle==INVALID_HANDLE)                             // Handle prüfen
      {
         Alert("*ERROR* creating MA-Handle");
         return(INIT_FAILED);
      }
   ArraySetAsSeries(maBuffer,true);                         // Buffer als Series definieren
   return(INIT_SUCCEEDED);
}

void OnTick()
{
   int to_copy=1;                                           // wir wollen hier nur den letzten Wert
   if(CopyBuffer(maHandle,0,0,to_copy,maBuffer)<to_copy)    // Daten aus dem Indi in den Buffer kopieren und prüfen
      {
         Alert("*ERROR* copy MA-Data");
         return;
      }
   Comment(DoubleToString(maBuffer[0],_Digits));            // Wert anzeigen oder was sinnvolleres damit anstellen
}
Ich hoffe das ist es was du gesucht hast.
  #5 (permalink)  
Alt 17.04.17
Mitglied
 
Registriert seit: Aug 2014
Beiträge: 47
marquez befindet sich auf einem aufstrebenden Ast
Standard

Hi,

auch das nicht ganz richtig.

Ich glaube ich habe meine Frage nicht eindeutig genug geschrieben.


Ich suche einen Ansatz, wo ich in den iRSI (wie im Thread) angegeben, den IMA Wert übergeben kann, ohne dass der iRSI mir einen Fehler wirft !

Ich dachte eigentlich, dass geht aus meinem Schnipsel und meiner Frage auch hervor.

Also, ich probiere dann hier nochmals die Frage zu präzisieren:

1. Der IMA berechnet einen Wert !
2. Der iRSI soll diesen berechneten Wert vom IMA übergeben bekommen, wie in dem Codeschnipsel bereits geschrieben.

Problem weiterhin: Beim iRSI MT5 kann ich nur einen PRICE_BLA oder den Handle vom IMA übergeben, jedoch nicht den berechneten IMA Wert (wie beim MT4)


Ich hoffe, meine Frage ist ein wenig klarer geworden damit.

VG
Marquez
  #6 (permalink)  
Alt 17.04.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Ups, ist heut' schon ein wenig spät.
Ich denk mir das morgen nochmal durch was du brauchst und melde mich morgen Abends wieder.
Ist ja jetzt Ostern und wir haben grad unser viertes Enkerl bekommen. Das muss gefeiert werden!
Wir werden dein Problem schon lösen.
LG Otto
  #7 (permalink)  
Alt 17.04.17
Mitglied
 
Registriert seit: Aug 2014
Beiträge: 47
marquez befindet sich auf einem aufstrebenden Ast
Standard

Da hab ich keine Zweifel.

Du kannst der Einfachheit halber ja nen einfachen MT4 Indi machen, mit ner kleinen for schleife (20 - 100 er Schleife reicht locker), und die Schleife einmal durchlaufen lassen. Und dann mal schauen was Du für einen Ansatz finden könntest. Ich hänge da ein wenig wenn ich ehrlich bin.


Die SMA_Period steht bei den Settings übrigens auf 1.
Ich habe sie mal auf 14 gesetzt, um eine Vereinfachung zu finden, allerdings bisher ohne Erfolg
Thema geschlossen

Lesezeichen

Stichworte
ima, imaprice, irsi, mql5, programmierung, programmierung metatrader, programmierung mql5, 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 06:58 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.
-----------------------------------------------------------------------------------------------------------------------------