RSI Strike Indicator For MT5
Table Of Contents:
- RSI Strike Indicator For MT5
- Εγκατάσταση του RSI Strike Indicator For MT5
- Παράμετροι του RSI Strike Indicator For MT5
- Buffers του RSI Strike Indicator For MT5
- Κύρια μέρη του κώδικα
Ο RSI Strike Indicator For MT5 είναι ένα τεχνικά καλά αναπτυγμένο εργαλείο συναλλαγών που χρησιμοποιείται - ο δείκτης αυτός βασίζεται σε έναν ήδη εξαιρετικά αποτελεσματικό δείκτη γνωστό ως δείκτη ταλαντωτή δείκτη σχετικής αντοχής - το εργαλείο δεικτών σχετικής αντοχής είναι ένας φανταστικός δείκτης για την ενίσχυση της μέτρησης αντοχής και επιδιώκουν πιθανά επίπεδα εξάντλησης που προκύπτουν σε τομείς οι οποίοι είναι γνωστοί ως ζώνες υπεραγοράς και υπεραγορών, οι οποίες τελικά οδηγούν σε (συχνότερα) περιστροφικές εμπορικές ευκαιρίες. Ωστόσο, αυτή η τροποποιημένη έκδοση είναι ελαφρώς διαφορετική ως προς το ότι η πραγματική γραμμή δείκτη σχετικής αντοχής δεν θεωρείται ότι κανονικά θα βρισκόταν στο κάτω παράθυρο της οθόνης - αυτό διαφέρει αρκετά, διότι στην πραγματικότητα εμφανίζει τις στιγμές όπου τα σημεία διέλευσης γίνονται μέσω της σχετικής αντοχής Ο δείκτης και επομένως κάθε διασταύρωση σημειώνεται με αυτό που είναι γνωστό ως απεργίες. Αυτές οι απεργίες παρουσιάζονται μέσω ενός πολλαπλού χρώματος στοιβαγμένου προς τα κάτω ή προς τα πάνω βέλη - τα προς τα κάτω βέλη δείχνουν ένα σήμα πώλησης και τα προς τα πάνω βέλη δείχνουν μια αγορά - επιπλέον, κάθε στοίβα μπορεί να περιλαμβάνει έως και τέσσερα βέλη - ο δείκτης είναι ότι μπορεί να χρησιμοποιηθεί για να σχεδιάσει επίσης εξαιρετικά σχετικές ανθεκτικές γραμμές υποστήριξης συνδέοντας τις ουρές του κάθε κόκκινου βέλους.
Εγκατάσταση του RSI Strike Indicator For MT5
Αφού κατεβάσετε την ένδειξη μέσω της παραπάνω φόρμας, πρέπει να αποσυνδέσετε το αρχείο zip. Στη συνέχεια, πρέπει να αντιγράψετε το αρχείο rsi_strike.mq5 στο φάκελο MQL5Indicators της εγκατάστασης MT5 . Στη συνέχεια, κάντε επανεκκίνηση του MT5 και, στη συνέχεια, θα μπορείτε να δείτε τον δείκτη στη λίστα των δεικτών.
Παράμετροι του RSI Strike Indicator For MT5
Το RSI Strike Indicator For MT5 έχει παραμέτρους 16 για να ρυθμίσετε τις παραμέτρους.
input int RSI_Period1=2; input int RSI_Period2=4; input ENUM_APPLIED_PRICE RSI_Price1=PRICE_CLOSE; input ENUM_APPLIED_PRICE RSI_Price2=PRICE_CLOSE; input int RSI_Period3=3; input int RSI_Period4=6; input ENUM_APPLIED_PRICE RSI_Price3=PRICE_CLOSE; input ENUM_APPLIED_PRICE RSI_Price4=PRICE_CLOSE; input int RSI_Period5=4; input int RSI_Period6=8; input ENUM_APPLIED_PRICE RSI_Price5=PRICE_CLOSE; input ENUM_APPLIED_PRICE RSI_Price6=PRICE_CLOSE; input int RSI_Period7=5; input int RSI_Period8=10; input ENUM_APPLIED_PRICE RSI_Price7=PRICE_CLOSE; input ENUM_APPLIED_PRICE RSI_Price8=PRICE_CLOSE;
Buffers του RSI Strike Indicator For MT5
Το RSI Strike Indicator For MT5 παρέχει buffers 8 .
SetIndexBuffer(0,CrossUp1,INDICATOR_DATA); SetIndexBuffer(1,CrossDown1,INDICATOR_DATA); SetIndexBuffer(2,CrossUp2,INDICATOR_DATA); SetIndexBuffer(3,CrossDown2,INDICATOR_DATA); SetIndexBuffer(4,CrossUp3,INDICATOR_DATA); SetIndexBuffer(5,CrossDown3,INDICATOR_DATA); SetIndexBuffer(6,CrossUp4,INDICATOR_DATA); SetIndexBuffer(7,CrossDown4,INDICATOR_DATA);
Κύρια μέρη του κώδικα
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //---- checking the number of bars to be enough for the calculation for(int numb=0; numb lt 8; numb++) if(BarsCalculated(RSI_Handle[numb]) lt rates_total) return(RESET); if(rates_total lt min_rates_total) return(RESET); //---- declarations of local variables int to_copy,limit,bar; double Range,AvgRange; double RSI1[],RSI2[],RSI3[],RSI4[],RSI5[],RSI6[],RSI7[],RSI8[]; //---- calculations of the necessary amount of data to be copied //---- and the limit starting index for the bars recalculation loop if(prev_calculated gt rates_total || prev_calculated lt =0)// checking for the first start of the indicator calculation limit=rates_total-min_rates_total-1; // starting index for calculation of all bars else limit=rates_total-prev_calculated; // starting index for calculation of new bars to_copy=limit+2; //--- copy newly appeared data in the arrays if(CopyBuffer(RSI_Handle[0],0,0,to_copy,RSI1) lt =0) return(RESET); if(CopyBuffer(RSI_Handle[1],0,0,to_copy,RSI2) lt =0) return(RESET); if(CopyBuffer(RSI_Handle[2],0,0,to_copy,RSI3) lt =0) return(RESET); if(CopyBuffer(RSI_Handle[3],0,0,to_copy,RSI4) lt =0) return(RESET); if(CopyBuffer(RSI_Handle[4],0,0,to_copy,RSI5) lt =0) return(RESET); if(CopyBuffer(RSI_Handle[5],0,0,to_copy,RSI6) lt =0) return(RESET); if(CopyBuffer(RSI_Handle[6],0,0,to_copy,RSI7) lt =0) return(RESET); if(CopyBuffer(RSI_Handle[7],0,0,to_copy,RSI8) lt =0) return(RESET); //---- indexing elements in arrays as timeseries ArraySetAsSeries(RSI1,true); ArraySetAsSeries(RSI2,true); ArraySetAsSeries(RSI3,true); ArraySetAsSeries(RSI4,true); ArraySetAsSeries(RSI5,true); ArraySetAsSeries(RSI6,true); ArraySetAsSeries(RSI7,true); ArraySetAsSeries(RSI8,true); ArraySetAsSeries(high,true); ArraySetAsSeries(low,true); //---- main indicator calculation loop for(bar=limit; bar gt =0 && !IsStopped(); bar--) { AvgRange=0.0; for(int count=bar; count lt =bar+9; count++) AvgRange+=MathAbs(high[count]-low[count]); Range=AvgRange/10; CrossUp1[bar]=0.0; CrossDown1[bar]=0.0; CrossUp2[bar]=0.0; CrossDown2[bar]=0.0; CrossUp3[bar]=0.0; CrossDown3[bar]=0.0; CrossUp4[bar]=0.0; CrossDown4[bar]=0.0; if(RSI1[bar] gt RSI2[bar] && RSI1[bar+1] lt RSI2[bar+1]) CrossUp1[bar]=low[bar]-Range*0.2; else if(RSI1[bar] lt RSI2[bar] && RSI1[bar+1] gt RSI2[bar+1]) CrossDown1[bar]=high[bar]+Range*0.2; if(RSI3[bar] gt RSI4[bar] && RSI3[bar+1] lt RSI4[bar+1]) CrossUp2[bar]=low[bar]-Range*0.4; else if(RSI3[bar] lt RSI4[bar] && RSI3[bar+1] gt RSI4[bar+1]) CrossDown2[bar]=high[bar]+Range*0.4; if(RSI5[bar] gt RSI6[bar] && RSI5[bar+1] lt RSI6[bar+1]) CrossUp3[bar]=low[bar]-Range*0.6; else if(RSI5[bar] lt RSI6[bar] && RSI5[bar+1] gt RSI6[bar+1]) CrossDown3[bar]=high[bar]+Range*0.6; if(RSI7[bar] gt RSI8[bar] && RSI7[bar+1] lt RSI8[bar+1]) CrossUp4[bar]=low[bar]-Range*0.8; else if(RSI7[bar] lt RSI8[bar] && RSI7[bar+1] gt RSI8[bar+1]) CrossDown4[bar]=high[bar]+Range*0.8; } //---- return(rates_total); } //+------------------------------------------------------------------+