NormalizeDouble(double,5);lxi pisze: ↑08 wrz 2023, 16:50Hej, powiedzcie mi czy w poniższym kodzie jest gdzieś wartość odpowiadająca za dokładność obliczeń wartości wskaźnika wyświetlanych w oknie danych? Niestety nie mam pojęcia o pisaniu i strukturze wskaźników. Wskaźnik wrzucony na wykres np. E/U pokazuje odczyty w oknie danych z dokładnością do 4 miejsc po przecinku a ja chciałbym żeby pokazywał z dokładnością do 5 miejsc (tak jak pokazywana jest cena instrumentu).
Zależy mi na tym gdyż chcę napisać w EA warunek, że jeśli cena tylko dotknie konkretnej linii wskaźnika to ma wykonać pewną czynność. Jeśli nie jestem w stanie porównać odczytów wskaźnika z aktualną ceną (różnica dokładności po przecinku) to będą wychodziły głupoty.TMA ATR Channel.mq4
Ale, to nic nie da, ponieważ nie ma metody na takie dokładne określenie ceny, bo zwykle takiej nie ma, jak chcemy. Wszelkie próby napisania warunku typu if(MAPrice==MyPrice) kończą się tym, że EA nic nie robi, bo nigdy nie ma takiego warunku. Nie wiem, poeksperymentuj sam, ale sukcesu nie wróżę. Jesteśmy skazani na if(MAPrice>=MyPrice) i if(MAPrice<=MyPrice).
I nic na to nie poradzimy...
To tylko zmieni co jest wyświetlane, ale nie zmieni rzeczywistości.
Tak samo jak wyrzuczasz wartość double w stringu, to masz DoubleToString(double,dokladnosc);
I to tylko ogranicza, czy normalizuje to co widzisz, ale nie ma wpływu na rzeczywistą cenę kwotowaną w tickach.