Rozwiąż określone ostrzeżenie MT4 ”możliwa utrata danych z powodu ...”
Pokaż wyniki od 1 do 6 z 6

Wątek: Rozwiąż określone ostrzeżenie MT4 ”możliwa utrata danych z powodu ...”

  1. #1
    ualizuję niektóre z moich EA i poszedłem do ścisłych właściwości. Zaczynasz otrzymywać ostrzeżenie o możliwej utracie danych z powodu konwersji typu.

    Wiem, że to ostrzeżenie jest omawiane tu i tam, ale tutaj są szczegóły:

    deklarowana zmienna globalna

    extern int Dźwignia = 200;

    jeśli instrukcja w MM przebiega następująco:

    *** if (Wykorzystaj gt; = AccountInfoInteger (ACCOUNT_LEVERAGE)) Dźwignia = AccountInfoInteger (ACCOUNT_LEVERAGE);
    else if (Leverage lt; AccountInfoInteger (ACCOUNT_LEVERAGE)) Dźwignia = dźwignia;

    *** otrzymuję ostrzeżenie tutaj

    Czy ktoś wie, dlaczego? Jest deklarowana jako liczba całkowita i prosi o odczytanie liczby całkowitej.

    Oczywiście nie generuje ostrzeżenia, chyba że kod zostanie uznany za ścisły.

  2. #2

    Cytat Zamieszczone przez ;
    ualizuję niektóre z moich EA i poszedłem do ścisłych właściwości. Zaczynasz otrzymywać ostrzeżenie o możliwej utracie danych z powodu konwersji typu. Wiem, że to ostrzeżenie jest omawiane tu i tam, ale tutaj są szczegóły: zadeklarowana globalna zmienna extern Leverage = 200; jeśli instrukcja w procedurze MM jest następująca: *** if (Wykorzystaj gt; = AccountInfoInteger (ACCOUNT_LEVERAGE)) Dźwignia = AccountInfoInteger (ACCOUNT_LEVERAGE); else if (Leverage lt; AccountInfoInteger (ACCOUNT_LEVERAGE)) Dźwignia = dźwignia; *** otrzymywanie ostrzeżenia tutaj Czy ktoś wie, dlaczego? To jest zadeklarowane ...
    AccountInfo Integer jest długim typem, powinieneś wykonać (w) AccountInfo Integer.

  3. #3
    OK. Znaleziono rozwiązanie. Najwyraźniej typ zmiennej był błędny. Według MQL:
    https://www.mql5.com/en/docs/constan...unt_trade_modeW każdym razie zmieniono typ z int na long i ostrzeżenie zostało rozwiązane. Nie jestem pewien, co to jest długa zmienna, po raz pierwszy ją wykorzystałem. Będę musiał zajrzeć do tego później, chyba że ktoś tutaj może rzucić na to proste światło. Pytanie brzmi, czy używam liczby całkowitej, czy nadal jest ok .... zobaczy. OK. Wygląda na w porządku, tylko różnica w długości cyfr.

  4. #4

    Cytat Zamieszczone przez ;
    OK. Znaleziono rozwiązanie. Najwyraźniej typ zmiennej był błędny. Według MQL:
    https://www.mql5.com/en/docs/constan...unt_trade_modeW każdym razie zmieniono typ z int na long i ostrzeżenie zostało rozwiązane. Nie jestem pewien, co to jest długa zmienna, po raz pierwszy ją wykorzystałem. Będę musiał zajrzeć do tego później, chyba że ktoś tutaj może rzucić na to proste światło. Pytanie brzmi, czy używam liczby całkowitej, czy nadal jest ok .... zobaczy.
    Long to 64-bit, int to 32-bit. Użyj int dla tego przypadku (dźwignia nie może przekroczyć 2147483647).

  5. #5

    Cytat Zamieszczone przez ;
    {quote} Long to 64-bit, int to 32-bit. Użyj int dla tego przypadku (dźwignia nie może przekroczyć 2147483647).
    Ha ha! Zabawne. Właściwie zmieniłem tylko deklarację z int na długą i bingo.

  6. #6

    Cytat Zamieszczone przez ;
    {quote} Ha Ha! Zabawne. Właściwie zmieniłem tylko deklarację z int na długą i bingo.
    Założę się, że wielu programistów kręci się na samą myśl o tym, lol.

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Używamy cookies
Używamy cookies, aby jak najlepiej dostosować witrynę do Twoich potrzeb. Kontynuowanie przeglądania tej strony, oznacza zgodę na używanie plików cookies. Aby uzyskać więcej informacji zapoznaj się z naszą Polityką Prywatności.