Moje EA - potrzebna pomoc

Jeżeli masz pomysł lub używasz ciekawego systemu albo strategii gry, opisz ja tutaj.
pawelsko
Stały bywalec
Stały bywalec
Posty: 48
Rejestracja: 03 lut 2013, 12:22

Moje EA - potrzebna pomoc

Nieprzeczytany post autor: pawelsko »

Wymyśliłem takiego prostego robota (wskaźniki i Ea w załączniku)
Założenia EA (sprawdzałem na M5) głównie USDJPY, EURUSD, EURJPY
Buy - przecięcie od dołu linii 10 wskaźnika DTOSC oraz MA wzrostowa, sell na odwrót.
Wyjście TS 0,30,50. Reszta parametrów w EA.
Głównym założeniem było wchodzenie w pozycje w trendzie, założyłem że bedę wchodził kiedy MA bedzię wzrostowe/spadkowe.
Niestety raz na kilkadziesiąt wejść nie załapuje się na aktywację TrailingStopa i robot potrafi zerować konto.
Niestety próby ze sztywnym SL i TP nie dają oczekiwanych rezultatów, za to kiedy w każdym z wejść w pozycję kurs pójdzie uaktywniając TS wyniki są zadowalające.
Może wymyślicie coś aby to jakoś wyeliminować..
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

robs
Gaduła
Gaduła
Posty: 196
Rejestracja: 22 sty 2010, 03:05

Re: Moje EA - potrzebna pomoc

Nieprzeczytany post autor: robs »

DT Oscillator nie kompiluje.
PS: char nie może być nazwą zmiennej.

Podepnij jakąś bardziej sensowną wersję.

Nie sprawdzasz IsTradeContextBusy() przed OrderModify()?

-- Dodano: czw 12-02-2015, 21:39 --

Pierwsza funkcja na jaką spojrzałem - CanOpen

1) Można to było napisać prościej bez variable found

Kod: Zaznacz cały

//+------------------------------------------------------------------+
//| Check if exist history order on currrent bar                     |
//| PARAMS: int      Type - order type                               | 
//| RETURN: true - can open new order                                |
//+------------------------------------------------------------------+
bool CanOpen(ENUM_ORDER_TYPE ordType)
{
   int i=OrdersHistoryTotal()-1;
   bool canOpen = true;
   while (i >= 0)
   {
      if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
      {
         if (OrderSymbol() == _Symbol && OrderMagicNumber() == MagicNo)
         {
            if (OrderOpenTime() >= Time[0]) canOpen = false;
            break;
         }
      }
      i--;
   }
      
   return (canOpen);
}  
2) Po co przekazujesz parameter ordType skoro jest niepotrzebny
3) Funkcja nie robi tego co jest w opisie - sprawdzany jest tylko pierwszy napotkany order, więc albo zmień opis albo zmień logikę kodu bo nie wiadomo jakie było zamierzenie.
radical material simplification

pawelsko
Stały bywalec
Stały bywalec
Posty: 48
Rejestracja: 03 lut 2013, 12:22

Re: Moje EA - potrzebna pomoc

Nieprzeczytany post autor: pawelsko »

Automat był pisany przez kogoś innego na moje zlecenie...

WojtexWay
Gaduła
Gaduła
Posty: 145
Rejestracja: 18 wrz 2012, 19:22

Re: Moje EA - potrzebna pomoc

Nieprzeczytany post autor: WojtexWay »

robs pisze:Pierwsza funkcja na jaką spojrzałem - CanOpen

1) Można to było napisać prościej bez variable found
Albo jeszcze prościej (jeśli dobrze rozumuję ideę) np. tak:

Kod: Zaznacz cały

bool CanOpen()
	{
	int i=OrdersHistoryTotal();
	while (i--) //ew. tutaj while(i)
		{
		if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) //a tutaj --i
			{
			if (OrderSymbol() == _Symbol && OrderMagicNumber() == MagicNo)
				{
				if (OrderOpenTime() >= Time[0])
					return false;
				return true; //lub break;
				}
			}
		}
	return true;
	}
Resztę pozostawiam bez komentarza...
Ostatnio zmieniony 13 lut 2015, 02:23 przez WojtexWay, łącznie zmieniany 4 razy.

robs
Gaduła
Gaduła
Posty: 196
Rejestracja: 22 sty 2010, 03:05

Re: Moje EA - potrzebna pomoc

Nieprzeczytany post autor: robs »

robs pisze: 3) Funkcja nie robi tego co jest w opisie - sprawdzany jest tylko pierwszy napotkany order, więc albo zmień opis albo zmień logikę kodu bo nie wiadomo jakie było zamierzenie.
I take it back - że tak się wyrażę
Nie zaczaiłem o co chodzi :)

-- Dodano: pt 13-02-2015, 7:26 --
pawelsko pisze: Niestety próby ze sztywnym SL i TP nie dają oczekiwanych rezultatów, za to kiedy w każdym z wejść w pozycję kurs pójdzie uaktywniając TS wyniki są zadowalające.
Chcesz powiedzieć że początkowy SL=0?
SL powinien być dodatni i nie większy niż TSStep, inaczej to nie ma sensu.

-- Dodano: pt 13-02-2015, 7:34 --
pawelsko pisze: Niestety próby ze sztywnym SL i TP nie dają oczekiwanych rezultatów, za to kiedy w każdym z wejść w pozycję kurs pójdzie uaktywniając TS wyniki są zadowalające.
Ustaw SL = TSStep. Przy SL=0 zawsze sie wywali.
radical material simplification

ODPOWIEDZ