papayspks18
09-02-2009 16:36, 16:36
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:
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);
}
// ----------------------------------------------- -------------------
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);
}
// ----------------------------------------------- -------------------
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:
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);
}
// ----------------------------------------------- -------------------
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);
}
// ----------------------------------------------- -------------------