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ę