Kilka dni zawalonych pracą, więc nie mogłem się bawić
Ale już jestem z powrotem.
thisredone napisał o co chodzi z kalmerkami - przyda się na pewno
Jedną rzecz poprawiam, bo nie chce działać uruchamianie zleceń.
zamiast
Kod: Zaznacz cały
OrderSend(NULL, OP_BUY, 1, Ask, 3, 0,0,NULL,0,0,Blue);
wpisuję
Kod: Zaznacz cały
OrderSend(Symbol(), OP_BUY, 1, Ask, 3, 0,0,NULL,0,0,Blue);
Dodano po 28 minutach:
troche musiałem pogrzebać, bo mi otwieralo sporo zleceń i nie zwróciłem wcześniej uwagi, że nie miałem zamykania zleceń tylko otwieranie przeciwnych

Niestety jakoś nie chce mi się zamknąć zlecenie

jest otwierane jedno, ale zamyka się z końcem testu.
Kod teraz mam taki:
Kod: Zaznacz cały
int start()
{
//----
//zdefiniowanie zmiennych dla łatwiejszej dalszej pracy
double MACurrent;
double MAPrevious;
double zlecenie;
MACurrent = iMA(Symbol(),0,20,3,MODE_EMA,0,0);
MAPrevious = iMA(Symbol(),0,20,3,MODE_EMA,0,1);
//sprawdzanie, czy są otwarte pozycje, aby nie dublować
if (OrdersTotal()==0)
{
if (Open[1] < MAPrevious && Open[0] > MACurrent) // sprawdzanie czy porpzednie otwarcie jest poniżej poziomu EMA a obecne powyżej
{
OrderSend(Symbol(), OP_BUY, 1, Ask, 3, 0,0,NULL,0,0,Red);
zlecenie = 1; //zlecenie = 1 gdy zajęliśmy pozycję długą
}
if (Open[1] > MAPrevious && Open[0] < MACurrent) // sprawdzanie czy porpzednie otwarcie jest powużej poziomu EMA a obecne poniżej
{
OrderSend(Symbol(), OP_SELL, 1, Bid, 3, 0,0,NULL,0,0,Red);
zlecenie = 2; //zlecenie = 2 gdy zajęliśmy pozycję krótką
}
}
if (OrdersTotal()>1)
{
if (zlecenie==1) //zlecenie = 1;
{
if (Open[1] > MAPrevious && Open[0] < MACurrent)
OrderClose(OrderTicket(), OrderLots(), Bid, 3, Blue);
}
if (zlecenie == 2)
{
if (Open[1] < MAPrevious && Open[0] > MACurrent)
OrderClose(OrderTicket(), OrderLots(), Ask, 3, Blue);
}
//wprowadzenie warunków
}
//----
}
Dodano po 42 minutach:
Działam dalej i sa jakieś postępy
Tym razem otwiera mi się zlecenie buy, zamyka się, otwiera się zlecenie Sell, ale już sie nie zamyka
Na innych ustawieniach okresu testowania otwiera się jako pierwsze zlecenie sell, ale już sie nie zamyka
Kod: Zaznacz cały
int start()
{
//----
//zdefiniowanie zmiennych dla łatwiejszej dalszej pracy
double MACurrent;
double MAPrevious;
double zlecenie;
MACurrent = iMA(Symbol(),0,20,3,MODE_EMA,0,0);
MAPrevious = iMA(Symbol(),0,20,3,MODE_EMA,0,1);
//sprawdzanie, czy są otwarte pozycje, aby nie dublować
if (OrdersTotal()==0)
{
if (Open[1] < MAPrevious && Open[0] > MACurrent) // sprawdzanie czy porpzednie otwarcie jest poniżej poziomu EMA a obecne powyżej
{
OrderSend(Symbol(), OP_BUY, 1, Ask, 3, 0,0,NULL,0,0,Red);
zlecenie = 1; //zlecenie = 1 gdy zajęliśmy pozycję długą
}
if (Open[1] > MAPrevious && Open[0] < MACurrent) // sprawdzanie czy porpzednie otwarcie jest powużej poziomu EMA a obecne poniżej
{
OrderSend(Symbol(), OP_SELL, 1, Bid, 3, 0,0,NULL,0,0,Red);
zlecenie = 2; //zlecenie = 2 gdy zajęliśmy pozycję krótką
}
}
if (OrdersTotal()>0)
{
if (OrderType()==OP_BUY) //zlecenie == 1;
{
if (Open[1] > MAPrevious && Open[0] < MACurrent)
OrderClose(OrderTicket(), 1, Bid, 3, Blue);
}
if (OrderType()==OP_SELL) //zlecenie == 2;
{
if (Open[1] < MAPrevious && Open[0] > MACurrent)
OrderClose(OrderTicket(), 1, Ask, 3, Blue);
}
//wprowadzenie warunków
}
//----
}
Dodano po 18 minutach:
Wkurzające to jest, bo raz pokazuje jakieś zamknięcie, a raz nie pomimo, że żadnych zmian nie robię