problem z tablicą (dwuwymiarową)
Pokaż wyniki od 1 do 4 z 4

Wątek: problem z tablicą (dwuwymiarową)

  1. #1
    Cześć,

    Mam tablicę z 6 kolumnami i 50 wierszami.
    Kolumny to:

    trade_arr [x] [0] = OrderTicket ();
    trade_arr [x] [1] = OrderStopLoss ();
    trade_arr [x] [2] = OrderTakeProfit ();
    trade_arr [x] [3] = OrderSymbol ();
    trade_arr [x] [4] = OrderOpenPrice ();

    Teraz chcę to zrobić:
    Po uruchomieniu EA wszystkie otwarte transakcje powinny zostać zapisane w tablicy. Każde zaznaczenie jest sprawdzane, jeśli są nowe otwarte transakcje. Jeśli tak, powinny one zostać dodane do tablicy.
    Problem: EA nie działa. Ostrożny nowy handel pojawia się przy każdym tikku
    dla każdej otwartej pozycji.
    Zdefiniowałem string trade_arr [50] [6]; jako zmienna globalna, ale wydaje się, że tablica jest usuwana po każdym tikku.

    Byłoby miło, gdyby ktoś tam to sprawdził ...

    Dzięki,
    Swen


    Kod:

    Cytat Zamieszczone przez ;

    string trade_arr [50] [6];

    // ----------------------------------------------- -------------------
    //| funkcja inicjalizacji eksperta |
    // ----------------------------------------------- -------------------
    int init ()
    {
    //----


    //----
    return (0);
    }
    // ----------------------------------------------- -------------------
    //| funkcja startu eksperta |
    // ----------------------------------------------- -------------------
    int start ()
    {

    int trade_nr;
    int total = OrdersTotal ();
    bool trade_exist = false;

    for (int pos = 0; poslt; total; pos )
    {
    if (OrderSelect (pos, SELECT_BY_POS) == true)
    {
    int trade_ticket = OrderTicket ();

    dla (int c = 0; clt; = 49; c )
    {

    int trade_arr_int = StrToInteger (trade_arr [c] [0]);

    if (trade_ticket == trade_arr_int)
    {
    Alert (istnieje handel);
    trade_exist = true;
    }

    if (trade_arr [c] [0] == 0)
    {int next_nr = c;
    Alert (następny c, następny_nr);


    }

    if (trade_exist == false)
    {

    Alert (nowy handel);

    trade_arr [next_nr] [0] = OrderTicket ();
    trade_arr [next_nr] [1] = OrderStopLoss ();
    trade_arr [next_nr] [2] = OrderTakeProfit ();
    trade_arr [next_nr] [3] = OrderSymbol ();
    trade_arr [next_nr] [4] = OrderOpenPrice ();
    }

    trade_exist = false;

    }
    }

    return (0);
    }
    // ----------------------------------------------- -------------------
    Cytat Zamieszczone przez ;

    string trade_arr [50] [6];

    // ----------------------------------------------- -------------------
    //| funkcja inicjalizacji eksperta |
    // ----------------------------------------------- -------------------
    int init ()
    {
    //----


    //----
    return (0);
    }
    // ----------------------------------------------- -------------------
    //| funkcja startu eksperta |
    // ----------------------------------------------- -------------------
    int start ()
    {

    int trade_nr;
    int total = OrdersTotal ();
    bool trade_exist = false;

    for (int pos = 0; poslt; total; pos )
    {
    if (OrderSelect (pos, SELECT_BY_POS) == true)
    {
    int trade_ticket = OrderTicket ();

    dla (int c = 0; clt; = 49; c )
    {

    int trade_arr_int = StrToInteger (trade_arr [c] [0]);

    if (trade_ticket == trade_arr_int)
    {
    Alert (istnieje handel);
    trade_exist = true;
    }

    if (trade_arr [c] [0] == 0)
    {int next_nr = c;
    Alert (następny c, następny_nr);


    }

    if (trade_exist == false)
    {

    Alert (nowy handel);

    trade_arr [next_nr] [0] = OrderTicket ();
    trade_arr [next_nr] [1] = OrderStopLoss ();
    trade_arr [next_nr] [2] = OrderTakeProfit ();
    trade_arr [next_nr] [3] = OrderSymbol ();
    trade_arr [next_nr] [4] = OrderOpenPrice ();
    }

    trade_exist = false;

    }
    }

    return (0);
    }
    // ----------------------------------------------- -------------------

  2. #2
    hej swen .... jak to jest zakodowane, nie ma nic pomiędzy start () a pracą .... więc tak, to będzie działać na każdym ticku .... powszechną metodą jest policzenie czegoś, w twoim przypadku tutaj możesz liczyć całkowite zamówienia ..... jeśli liczba zmieniła się od ostatniego tiku, - Teraz wykonuj pracę ...... jeszcze - Teraz nic nie rób ...../--- - Kiedy zaczyna się EA, wszystkie otwarte transakcje powinny być zapisane w Array, co mnie osobiście ciekawie .... wszystkie te informacje są już zapisanezapisane ... czy jest coś specjalnego, co robisz z tablicą ... mogę powiedz z twojego kodu .... h

  3. #3
    Deklarowałem tablicę z start () i teraz działa tak, jak tego potrzebuję ... Swen

  4. #4
    Chciałbym po prostu sprawdzić bilet, jeśli jego wartość inna niż poprzednia, spowoduje wystawienie ostrzeżenia.

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.