RSI Strike Indicator For MT5
Table Of Contents:
- RSI Strike Indicator For MT5
- Instalowanie RSI Strike Indicator For MT5
- Parametry RSI Strike Indicator For MT5
- Bufory słowa RSI Strike Indicator For MT5
- Główne części Kodeksu
RSI Strike Indicator For MT5 jest technicznie opracowanym narzędziem handlowym do użycia - ten wskaźnik jest oparty na już bardzo skutecznym wskaźniku znanym jako wskaźnik oscylatora Wskaźnik względnej siły - narzędzie Wskaźnik względnej siły jest fantastycznym wskaźnikiem ułatwiającym pomiar siły i wypatruj prawdopodobnych poziomów wyczerpania, które pojawiają się w sektorach zwanych strefami wyprzedaży i wykupienia, co ostatecznie prowadzi (najczęściej) do możliwości odwrócenia transakcji. Jednak ta zmodyfikowana wersja różni się nieco tym, że rzeczywista linia indeksu siły względnej nie jest widoczna, jak zwykle w dolnym oknie ekranu - różni się to nieco, ponieważ faktycznie wyświetla momenty, w których punkty przecięcia są wykonywane przez siłę względną Indeks, a zatem każde skrzyżowanie jest oznaczone jako tak zwane strajki. Te uderzenia są pokazane za pomocą wielokolorowych strzał skierowanych w dół lub w górę - strzałki skierowane w dół sygnalizują sygnał sprzedaży, a strzałki skierowane w górę sygnalizują zakup - co więcej, każdy stos może zawierać do czterech strzał - co jest w tym dobrego wskaźnikiem jest to, że można go również wykorzystać do rysowania bardzo odpowiednich wytrzymałych linii podporowych poprzez połączenie ogonów każdej czerwonej strzałki.
Instalowanie RSI Strike Indicator For MT5
Po pobraniu wskaźnika za pomocą powyższego formularza musisz rozpakować plik zip. Następnie musisz skopiować plik rsi_strike.mq5 do folderu MQL5Indicators instalacji MT5 . Następnie uruchom ponownie MT5, a wtedy będziesz mógł zobaczyć wskaźnik na liście wskaźników.
Parametry RSI Strike Indicator For MT5
RSI Strike Indicator For MT5 16 RSI Strike Indicator For MT5 ma parametry 16 do skonfigurowania.
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;
Bufory słowa RSI Strike Indicator For MT5
RSI Strike Indicator For MT5 zapewnia bufory 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);
Główne części Kodeksu
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); } //+------------------------------------------------------------------+