Indeks Przepływu Środków Pieniężnych (MFI) wersja 2.0
Witam we wpisie o ulepszonym Indeksie Przepływów Pieniężnych (MFI). Pierwsza wersja opublikowana na blogu miała jeden błąd. Podawała złą liczbę wartości MFI przy większości świec dla zerowego obrotu (brak wolumenu i zmiany ceny). Chodzi o to, że jak przykładowo dla MFI = 9 większość świec nie miała obrotu to wartości wyskakiwały powyżej 100, co jest niedopuszczalne. Nowa wersja eliminuje ten problem. Jak widzicie błąd trudno zauważalny, więc nie zauważyłem tego przy publikacji.
- Przy okazji dodałem możliwość wyłączania i włączania liczenia danego wskaźnika. Przykładowo liczy samo MFI = 9, a MFI = 14 już nie. Domyślnie obydwa są włączone.
- Kolorystyka i reszta dawnych ustawień bez zmian. Oczywiście nadal w pełni konfigurowalna 🙂
Nowa opcja
Pojawiła się nowa opcja włączania/wyłączania danego MFI (obydwa domyślnie włączone). Tylko pamiętajcie, że musicie to robić z menu Argumentów. W menu Stylu możecie tylko zmienić kolor, albo wyłączyć wyświetlanie poszczególnego elementu, ale nadal dane MFI będzie liczone. I teraz mam dwa pytania czy chcecie?
- Konfigurowalnego źródła obliczeń? Obecnie jest tak jak w poprawnym wzorze MFI, czyli ceny:
(Końcowa + Max + Min)/3 * Wolumen = Wynik dla jednej świecy
Można np. wybrać samą Cenę Otwarcia * Wolumen = Wynik - Dodać wyświetlanie dla innego interwału. Powiedzmy na wykresie godzinnym widzimy MFI liczone dla dniówek. Tylko tutaj nie zawsze podąża ta zmiana, wraz ze zmianami interwałów, więc trzeba samemu przestawiać.
- Albo jeszcze inne ulepszenia, które Wam przyjdą do głowy.
Kod skryptu
Nowy ulepszony kod pod Pine Script 5. Dodano liczenie za pomocą komendy ta.mfi (domyślne liczenie przez Trading View). Zmniejszyło to ilość kodu plus już bezpośrednio jest liczone przez wbudowany skrypt Trading View.
//@version=5
indicator('MFI++', format=format.price, precision=2)
//Wprowadzanie danych
MFI1 = input(true, 'Pierwsze MFI', group="Obliczanie (wyłączenie nie liczy danego MFI):")
length = input.int(title='Długość pierwszego MFI:', defval=9, minval=1, maxval=2000, group="Długości Indeksów Przepływu Pieniądza:")
wykupienie = input.int(title='Poziom wykupienia:', defval=80, minval=1, maxval=2000, group="Poziomy wykupienia i wprzedania:")
wyprzedanie = input.int(title='Poziom wyprzedania:', defval=20, minval=1, maxval=2000, group="Poziomy wykupienia i wprzedania:")
poziomdodatkowy = input.int(title='Poziom dodatkowy:', defval=90, minval=1, maxval=100, group="Dodatkowe linie poziome:")
poziomsrodkowy = input.int(title='Poziom dodatkowy (śr. lub inny):"', defval=50, minval=1, maxval=100, group="Dodatkowe linie poziome:")
//MFI pierwsze (przyśpieszone)
src = hlc3
mf = ta.mfi(src, length)
plot(MFI1 ? mf : na, 'MF', color=color.new(color.blue, 0), linewidth=1)
overbought = hline(wykupienie, title='Wykupione', color=#787B86)
oversold = hline(wyprzedanie, title='Wyprzedane', color=#787B86)
fill(overbought, oversold, color=color.new(color.blue, 90), title='Tło między wykupieniem i wyprzedaniem:')
bgcolor(MFI1 and mf > wykupienie ? color.new(color.red,90) : MFI1 and mf < wyprzedanie ? color.new(color.green,90) : na)
hline(poziomdodatkowy, color=color.navy)
hline(poziomsrodkowy, color=color.new(#787B86, 50))
//MFI drugie (zwykłe)
MFI2 = input(true, 'Drugie MFI', group="Obliczanie (wyłączenie nie liczy danego MFI):")
length2 = input.int(title='Długość drugiego MFI: ', defval=14, minval=1, maxval=2000, group="Długości Indeksów Przepływu Pieniądza:")
src2 = hlc3
mf2 = ta.mfi(src2, length2)
plot(MFI2 ? mf2 : na, 'MF 2', color=color.new(color.purple, 0), linewidth=2)
bgcolor(MFI2 and mf2 > wykupienie ? color(color.red) : MFI2 and mf2 < wyprzedanie ? color(color.green) : na, transp=90)
Jeżeli chcecie kolejne MFI to wklejacie na dole skryptu ten kod:
//MFI trzecie (długie)
MFI3 = input(false, 'Trzecie MFI', group="Obliczanie (wyłączenie nie liczy danego MFI):")
length3 = input.int(title='Długość trzeciego MFI: ', defval=21, minval=1, maxval=2000, group="Długości Indeksów Przepływu Pieniądza:")
src3 = hlc3
mf3 = ta.mfi(src, length3)
plot(MFI3 ? mf3 : na, 'MF 3', color=color.new(color.orange, 30), linewidth=2)
bgcolor(MFI3 and mf3 > wykupienie ? color(color.red) : MFI3 and mf3 < wyprzedanie ? color(color.green) : na, transp=90)
Dla ambitnych podmieniacie tutaj cyfrę 3 na 4 i już macie cztery MFI (plus kolor i liczby domyślne). Mi dwie w zupełności wystarczą 🙂
Zaproszenie do używania skryptu
Dawny skrypt został po prostu zaktualizowany, więc ci, którzy go używają, będą mieć już wszystko liczone dobrze. Plus dostaną nową opcję włączania/wyłączania liczenia.
Klastrowane MFI z dodatkami by Lukas_3000 on TradingView.com
Zaproszenia nadal to samo, gdyż skrypt został zaktualizowany. Stary był na wykresie świętej pamięci spółki Lotos.
Pozdrawiam
Osobiście nie zauważyłem tego błędu – ale dziękuję za update.
Samo MFI+ ustawiłem w momencie opublikowania go na blogu i co prawda nie uczeni jesteśmy, aby minimalizować szum informacyjny – to ja wspieram się przy moich analizach, zwłaszcza, gdy chodzi o akumulacje 🙂