Jump to content
Tom Next - Daytrading Community

RSI Entry


Recommended Posts

Hallo Zusammen,

 

hoffe ihr konntet die ersten schönen sonnigen Tage im Mai genießen! Mich beschäftigt im Moment folgendes Problem, bei dem ihr mir helfen könntet.

 

Folgende theoretische Situation:

 

RSI mit Periode 14 und 30/70 für die untere und obere Schwelle für EURUSD

 

Der einfachste Fall für den EA wäre, Kaufe/Verkaufe wenn der Kurs an die entsprechende RSI Schwelle kommt. Nehmen wir als Beispiel an, ich möchte verkaufen, wenn der RSI die Schwelle 70 erreicht.

Diese Konstellation ist leicht über iRSI(mit entsprechenden Parameter) zu lösen. Der EA soll aber nicht direkt bei Erreichen der 70er Schwelle kaufen, sondern erst wenn der RSI Wert wieder zu 70 zurückgekommen ist. Es gibt oft die Situation bei Bekanntgabe spezieller Termindaten, dass der EURUSD schnell steigt. Dabei steigt der RSI auch rasant an und steigt z.B. auf 85....ich möchte aber erst kaufen, wenn der RSI von 85 wieder bei 70 angekommen ist. Kann so eine Logik in MT4 umgewandelt werden?

 

Vielen Dank im Voraus für eure Anregungen und Lösungsvorschläge!

 

Gruß

Traveler

 

 

 

Link to comment
Share on other sites

Hallo Traveler,

 

du wartest ja erst bis zum Bar-Close ab, um den letzten RSI-Wert zu berechnen.

Ohne jetzt auf MQL einzugehen, würde ich mir einfach eine boolsche Variable merken,

die auf TRUE gesetzt wird, wenn der RSI die 70 von unten nach oben schneidet.

 

Erst danach ist laut deiner Beschreibung dann ein Entry beim nächsten Rücklauf möglich.

 

Die Variable muss nach dem eigentlichen Entry stehen, um erst anschließend, beim Rücklauf,

einen Trade einzugehen. Also in etwas so (Pseudocode):

 

if (EntryOK = TRUE and
    >> DEINE RSI-ENTRY-LOGIK <<)
{
   EnterTrade...

}

if (CrossAbove(RSI(14), 70))
then EntryOK = TRUE;
 

Grüße

DT

  • Upvote 1
Link to comment
Share on other sites

Wie wäre es mit

if ( RsiIndi[1]>70 && RsiIndi<70 && Highest(RsiIndi,5)>85 ) then
{     
       Buy/Sellshort oder was auch immer...
} 

Bin kein MQL Coder mehr aber das wäre jetzt mein Ansatz es umzusetzen.

 

Da müsste man aber entweder bei dem >70 oder bei dem 70 dann =70 und dann

Auch sind 5 Kerzen wohl etwas wenig bzgl. der Highest-Abfrage. Da empfiehlt sich eine boolsche Variable, die man bei einem RSI >=85 auf true und unter 70 dann wieder auf false setzt.

 

Beispiel:

if (iRSI(NULL,0,14,PRICE_CLOSE,0)>=85) bool ALLOWTRADING=TRUE;

if (iRSI(NULL,0,14,PRICE_CLOSE,0)<70 && iRSI(NULL,0,14,PRICE_CLOSE,1)>=70 && ALLOWTRADING) {

*** MACHE DEN TRADE ***

ALLOWTRADING = FALSE;

}

 

Falls Deine Bedingungen immer auf die Schlusskurse gelten sollen, sind die Kerzen entsprechend einen zu erhöhen / zu verschieben.

  • Upvote 2
Link to comment
Share on other sites

Hallo Zusammen,

 

ich bekomme es einfach nicht hin....habe zur Veranschaulichung nur für Sell die neue Logik verwendet und für Buy es bei der einfachen belassen:

 
void CheckForRSITrade()
{
   double RSI0=iRSI(NULL,0,RSI_Period,PRICE_CLOSE,0);
   double RSI1=iRSI(NULL,0,RSI_Period,PRICE_CLOSE,0);
   bool ALLOWTRADING=TRUE;
   
   if (RSI1>=75) bool ALLOWTRADING=TRUE;
   if (RSI1<70 && RSI1>=70 && ALLOWTRADING)OrderEntry(1);
 
   ALLOWTRADING = FALSE;
     
      
   if(RSI0<30)OrderEntry(0);
      
}
 
 
void OrderEntry(int direction)  
{
   if(direction==0) 
   {
      ** Parameter für Buyticket **
   }
            
   if(direction==1)
   {
     ** Parameter für Sellticket **
   }
}

ich habe die bool Funktion in den lokalen Bereich hochgezogen, da sonst die Fehlermeldung: "undecleared Indetifier" für alle ALLOWTRADE durch den Compiler beim kompilieren gekommen ist. Orderbuy funktioniert ganz normal. Ordersell tut sich in der Simulation gar nichts....keine Ahnung warum?

Link to comment
Share on other sites

Hallo Zusammen,

 

ich bekomme es einfach nicht hin....

 

Das ist auch kein Wunder. Zum einen sind RSI1 und RSI 0 bei Dir ein und dasselbe. Zum anderen kann und wird eine Bedingung RSI1=70 NIE erfüllt werden. Halte Dich einfach mal an die Abfrage, die ich rein gestellt habe und dann finde den (bzw. die) Fehler wink.gif.

 

P.S.: Achte dabei besonders auf die letzte Zahl in der Klammer, wenn Du einen Indikator aufrufst. Und auch darauf, keine (boolschen Variablen) doppelt zu deklarieren.

Link to comment
Share on other sites

Hallo conglom-o,

 

erstmal erneut danke für deine Anmerkungen, als Anfänger übersieht man noch sehr viel! Das Problem ist, wenn ich deinen Code verwende, dass er für das zweite und dritte ALLOWTRADE immer die Fehlermeldung: "undeclared identifier" bringt. Hängt eventuell mit dem neuen 600 update bei meinem Boker von MT4 zusammen...hatte ein ähnliches Problem bereits bei einer anderen Problemstellung.

Habe angenommen, wenn ich bool ALLOWTRADE in den lokalen Bereich für die gesamte void CheckForRSITrade ziehe ist es behoben....war leider nicht so.

Hast du eine Idee, wie ich die Fehlermeldung umgehen kann?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...