PDA

Zobacz pełną wersję : Jak odtwarzać dźwięk alarmu tylko raz



ll1977
07-05-2016 04:31, 04:31
Mam kilka wskaźników, w których strzałka zostaje namalowana na wykresie, gdy pojawiają się kryteria, które określam. Zamiast wpatrywać się w MT4 przez cały dzień, chciałbym, aby po naciśnięciu strzałki został wygenerowany alert, aby móc wykonywać inne prace na moim komputerze. ALE, chcę tylko, aby alert zagrał tylko raz! Jak mogę to zrobić?

Podstawowy kod, którego użyłem w moich wskaźnikach do wyświetlenia ostrzeżenia, to:

Wstawiony kod PlaySound (Alert.wav);

Dzięki.

AishoaHudgok
11-23-2021 14:24, 14:24
Mam kilka wskaźników, w których strzałka zostaje namalowana na wykresie, gdy pojawiają się kryteria, które określam. Zamiast wpatrywać się w MT4 przez cały dzień, chciałbym, aby po naciśnięciu strzałki został wygenerowany alert, aby móc wykonywać inne prace na moim komputerze. ALE, chcę tylko, aby alert zagrał tylko raz! Jak mogę to zrobić? Podstawowy kod, którego użyłem w moich wskaźnikach do wyświetlenia ostrzeżenia, to: PlaySound (Alert.wav); Dzięki.
domyślne Alert.wav jest zbyt krótki czas i często brakowało. użyj pliku muzycznego WAV o kilku sekundach, na przykład 30 sekund./odtwarzanie muzyki plik wav extern bool PlaySounds = true;/...fałszywy;/plik wave do odtworzenia zewnętrznego ciągu AlertSound = music.wav; if (PlaySounds) PlaySound (AlertSound); *** Utwórz plik WAV z ulubionego utworu muzycznego i nadaj mu nazwę music.wav

ll1977
11-23-2021 15:45, 15:45
{quote} domyślne Alert.wav jest zbyt krótki czas i często brakowało. użyj pliku muzycznego WAV o kilku sekundach, na przykład 30 sekund./odtwarzanie muzyki plik wav extern bool PlaySounds = true;/...fałszywy;/plik wave do odtworzenia zewnętrznego ciągu AlertSound = music.wav; if (PlaySounds) PlaySound (AlertSound); *** Utwórz plik WAV z ulubionego utworu muzycznego i nadaj mu nazwę music.wav
Dzięki, ale moje pytanie dotyczy raczej tego, jak przerwać wielokrotne odtwarzanie ostrzeżenia.

paulapamela3994
11-23-2021 17:06, 17:06
Zależy to od sposobu uruchomienia alertu, ale kilka typowych sposobów rozwiązania tego problemu to: 1. Sprawdź, czy nastąpiła zmiana stanu. Użyj zmiennej statycznej, aby zapamiętać, czy poprzednie uruchomienie za pomocą OnCalculate ()OnTimer () spowodowało alert. Jeśli tak, nie alarmuj ponownie. Jeśli nie, a tym razem spowodował alert, a następnie odtwarzać dźwięk. Wstawiony kod statycznego bool OldState = false; bool NewState = (Zamknij # 91; 1 # 93; gt; Zamknij # 91; 2 # 93;);/zmień logikę, jeśli (! OldState NewState) {PlaySound (Alert.wav); } OldState = NewState; 2. Dodaj opóźnienie między alertami Pamiętaj, kiedy ostrzeżenie jest ostatnio wyzwalane, dodaj do tego opóźnienie czasowe (w sekundach), a następnie sprawdź, czy funkcja TimeCurrent () jest większa niż ta, zanim ponownie uruchomisz alert. Wstawiony kod static datetime LastAlert = 0; if (Close # 91; 1 # 93; gt; Zamknij # 91; 2 # 93; TimeCurrent () gt; LastAlert 300)/Zmień dla swojej logiki {PlaySound (Alert.wav); LastAlert = TimeCurrent (); } Lub możesz użyć ich kombinacji (gdy cena zbliża się do progu twojego alertu). Lub po prostu sprawdź raz na pasek. Nadzieja, która pomaga