Cześć wszystkim,
Początkowo próbowałem edytować domyślny kod wskaźnika RSI, aby wyświetlał wartości RSI z innej pary walutowej na moim aktualnym wykresie. Jednak nie mogłem tego rozgryźć, więc próbuję obejść ten problem. Próbuję stworzyć niestandardowy wskaźnik, który po prostu odczytuje wskaźnik RSI z innej pary.
Oto mój dotychczasowy kod, jednak nie działa poprawnie.
Wyświetlane wartości są przesunięte o około 2-5, a kiedy ponownie testuję, nie wyświetla poprawnych wartości.
Naprawdę doceniłbym każdą pomoc i wskazówki.
Wstawiony kod/ ---------------------------------------------- --------------------- /| Test.mq4 |/| Copyright 2020, MetaQuotes Software Corp. |/| https://www.mql5.com |/ --------------------------------------------------------------- ------------------- #prawa autorskie do nieruchomości Copyright 2020, MetaQuotes Software Corp. #link do nieruchomości https://www.mql5.com #wersja do nieruchomości 1.00 #właściwość ścisła # property indior_level1 30,0 #property indior_level2 70,0 #property indior_separate_window #property indior_minimum 0 #property indior_maximum 100 #property indior_buffers 1 #property indior_plots 1/--- wykres jeden #property indior_label1 Eur #property indior_type1 cltyrLE index_SOL1 #proper property indior_width1 1 extern int num = 4;/--- bufory wskaźnikowe podwójne EurBuffer#91;#93;;/ --------------------------------------------------------------- ------------------- /| Funkcja inicjalizacji wskaźnika niestandardowego |/ --------------------------------------------------------------- ------------------- int OnInit() {/--- mapowanie buforów wskaźnika SetIndexBuffer(0,EurBuffer);/--- return(INIT_SUCCEEDED); }/ -------------------------------------------------------------- -------------------- /| Funkcja iteracji wskaźnika niestandardowego |/ --------------------------------------------------------------- ------------------- int OnCalculate(const int rate_total, const int prev_calculated, const datetime time#91;#93;, const double open#91;#93; , const double high#91;#93;, const double low#91;#93;, const double close#91;#93;, const long tick_volume#91;#93;, const long volume#91;#93; , const int spread#91;#93;) {/--- int uncalculatedBar = rate_total - prev_calculated; for (int i=0; ilt;uncalculatedBar; i ) {EurBuffer#91;i#93; = Oblicz(i,EURUSD); }/--- zwraca wartość prev_calculated dla następnego wywołania return(rates_total); }/ -------------------------------------------------------------- -------------------- double Calc(int poz,para znaków) { double Str = iRSI(para,60,5,CENA_ZAMKNIĘCIE,poz); powrót(Str); }