PDA

Zobacz pełną wersję : Pytanie o obsługę komentarzy w mt4



Owxxixe
06-16-2015 21:47, 21:47
Mam komentarz EA, który chciałbym opublikować na wykresie, tylko za pierwszym razem. Obecnie ciągle się powtarza.

W każdym razie kod jest taki ...

Wstawiony kod, jeśli ((BuySignalA) ((Ask-Bid) lt; = AvgSpreadHigh)) {Komentarz (TimeToStr (TimeCurrent (), TIME_SECONDS), BUY SIGNAL-A gt; gt; BUY POSITION POWINNA BYĆ OTWARTA LUB WCZEŚNIEJ OTWARTA);/Drukuj (TimeToStr (TimeCurrent (), TIME_SECONDS), BUY SIGNAL-A gt; gt; BUY POSITION POWINNA BYĆ OTWARTA LUB WCZEŚNIEJ OTWARTA); }
Na początku też ją wydrukowałem, ale gdy funkcja BuySignal jest aktywna, drukuje każdy znak! Zbyt wiele

Chciałbym, aby skomentował oryginalny BuySignal i zignorował pozostałe, dopóki nie zostanie wygenerowany NEW BuySig lub wygenerowany zostanie SellSig.

Jak sprawić, by nie powtórzył aktywnego sygnału i tylko po pierwszej aktywacji sygnału? Tak jak teraz, trudno jest powiedzieć przez komentarze, kiedy sygnał był pierwszy aktywny, ponieważ ciągle się powtarza, gdy jest aktywny. Czy komentarze EA są zapisywane gdzieś w pliku? Bo jeśli tak, to w końcu zajmie trochę pamięci, jak sądzę.

Darmesa
08-22-2023 01:50, 01:50
Po aktywacji (założeniu) komentarz pozostanie włączony, dopóki nie zostanie usunięty lub zmieniony, np. Comment (); Musisz zdecydować, kiedy chcesz usunąć komentarz lub go zmienić. EA jest wybierany przez tick, dzięki czemu możesz go wyczyścićzmienić za pomocą następnego tiku, następnej świecy lub ustawić zegar, aby wyczyścićzmienić go po pewnym czasie lub dowolne inne (wykres) wydarzenie. Komentarz nie prowadzi historii. Jest to bieżący ciąg znaków lub brak.

Kaizes17
08-22-2023 03:11, 03:11
możesz użyć globalnego var bool PrintComment Ustaw na false po wydrukowaniu komentarza i zmień go na true, gdy pojawi się nowy sygnał, jeśli ((BuySignalA) ((Ask-Bid) lt; = AvgSpreadHigh) PrintComment) {Comment ( TimeToStr (TimeCurrent (), TIME_SECONDS), BUY SIGNAL-A gt; gt; POZYCJA KUPNA POWINNA BYĆ OTWARTA LUB WCZEŚNIEJ OTWARTA);/PrintComment = false; Drukuj (TimeToStr (TimeCurrent (), TIME_SECONDS), BUY SIGNAL-A gt; gt; BUY POSITION POWINNA BYĆ OTWARTA LUB WCZEŚNIEJ OTWARTA); }

paulapamela3994
08-22-2023 04:32, 04:32
Sprawdź, czy nastąpiła zmiana stanu: Wstawiono kod static bool SignalWas = false; bool SignalIs = (BuySignalA) ((Ask-Bid) lt; = AvgSpreadHigh); if (SignalIs! SignalWas) {Komentarz (TimeToStr (TimeCurrent (), TIME_SECONDS), BUY SIGNAL-A gt; gt; BUY POSITION POWINNA BYĆ OTWARTA LUB WCZEŚNIEJ OTWARTA); } SignalWas = SignalIs; (nieskompilowany, nietestowany)