PDA

Zobacz pełną wersję : Jak zamknąć funkcję w EA



igig91
05-07-2010 00:04, 00:04
Cześć {Hi} tam jestem wciąż nowy do programowania MQL4, Używam funkcji iCustom () i to jest inicjowane na początku mojego kodu .. teraz jeśli zostanie zainicjowany, jak mogę zdeinicjować to bez konieczności restartowania mojego EA ...

Muszę to zrobić, ponieważ za każdym razem, gdy ładuje się (przy każdym tikku), zostaje on zapisany w pamięci i bez względu na to, ile masz pamięci, to w końcu zabraknie i utknąłeś z błędem:

Obsługa pamięci: nie można przydzielić 630892 bajtów pamięci

jakieś pomysły, jak przezwyciężyć to?

Wielkie dzięki!

garasox
09-26-2021 07:55, 07:55
możesz uzyskać tylko wartość, a nie wywoływać ją ze swojego EA powiedziałam ci, żebyś użył zmiennej, aby uzyskać pewną wartość z funkcji Wstawiony kod double whatever_it_is = iCustom (parametry)

ICORSAC
09-26-2021 09:16, 09:16
Wygląda na to, że jesteś w paskudnej sytuacji. Możesz spojrzeć na restrukturyzację swojego kodu tak, aby iCustom nie był wywoływany przy każdym teście. Jeśli nie jest to możliwe, musisz włączyć kod wskaźnika do EA.

Lauri
09-26-2021 10:37, 10:37
1 Załącznik (y) hej xlr8er ...... mamy powiedzenie tutaj możesz znaleźć interesujące .... co dzieje się w vegas zostaje w vegas ...... podobnie, co jest zainicjowane w init pobyty w init ...... jeśli przypiszesz wartość w sekcji init i nie zmienisz jej przypisania do funkcji start, zachowa ona oryginalną wartość startową ...... spójrz na kod tutaj ... Powoli uruchom wizualną analizę historyczną i obejrzyj komentarze ..... zmienne macd i ask zmieniają się ..... initask i initmacd, które zostały przypisane w sekcji init zachowują swoją pierwszą wartość ...../- --- tak naprawdę zgadujemy tylko bez bardziej szczegółowych informacji ...... i to byłoby moje najlepsze przypuszczenie w rozwiązaniu ....... przypisz zmienną icustom tylko w sekcji init ...... .h
https://www.forex-instant.com/attachments/151895136636562454.mq4

livmoorethwzombie
09-26-2021 11:58, 11:58
Wierzę, że twoje podstawowe założenie nie jest poprawne. (Zewnętrzny) Kod funkcji jest ładowany jeden raz podczas pierwszego połączenia, po czym pozostaje w pamięci i nie jest ponownie ładowany. Może zostać wywołany, ale to jest poza twoją kontrolą. Jeśli skończy Ci się pamięć, prawdopodobnie istnieje inny problem. Przetwarzanie tick-by-tick jest dużym marnowaniem procesora, chyba że jest to konieczne, ale jest to oddzielny problem.