searching of holy EA grail.it doesn't matter / dziennik o EA

Miejsce, gdzie każdy może prowadzić swój własny dziennik gry na FX.
Awatar użytkownika
siersciuch
Pasjonat
Pasjonat
Posty: 407
Rejestracja: 06 kwie 2010, 20:31

searching of holy EA grail.it doesn't matter / dziennik o EA

Nieprzeczytany post autor: siersciuch »

Journal tworze z myślą tylko o EA, bede wrzócał swoje boty które napisałem sam lub z pomocą miłych forumewiczów na którzych zawsze mozna liczyć gdy sie pokaż error :P. Troche sie ich uzbierało. Dziennik jest otwarty, mile widziane są opinnie innych forumowiczów i ich boty. Osobiscie bede udostepniał kod do moich EA wraz z wykresem. Jak ktoś niechce wklejać kodu a tylko pochwalić się wynikami to prosze bardzo, jest to otwarty jounal, kazdy moze pisać co chce, lecz tylko na temat EA.



Na pierwszy ogien idzie Ea które daje sygnał na przecieciu średnich. Pewnie każdy to przerabiał.


Kod: Zaznacz cały

extern int takeprofit = 600;
extern int sl=600;
extern int l,s;
extern double lots=0.1;

int buyx;
int sellx;

int init()
{

buyx=0;
sellx=0;

return(0);
}

int deinit(){return(0);}

int start()
{

double ma1 =iMA(NULL, 0, 50, 0, MODE_LWMA, PRICE_CLOSE, 1);
double ma2 =iMA(NULL, 0, 100, 0, MODE_LWMA, PRICE_CLOSE, 1);
   
 if (ma1<ma2 && total(OP_BUY)!=0)
{
   OrderClose(l,lots,Bid,3,NULL);

}   
 if (ma1>ma2 && total(OP_SELL)!=0)
{
   OrderClose(s,lots,Bid,3,NULL);

}   
  
{  
  
   if(ma1>ma2 && buyx==0 && total(OP_BUY)==0) 
   {
   l =OrderSend(Symbol(),OP_BUY,lots,Ask,3,Bid-sl*Point,Bid+takeprofit*Point);
   buyx = 1;
   sellx = 0;
   } 
   
   if(ma1<ma2 && sellx==0 && total(OP_SELL)==0)
   {
   s =OrderSend(Symbol(),OP_SELL,lots,Bid,3,Bid+sl*Point,Bid-takeprofit*Point);
   sellx = 1;
   buyx = 0;
   }
      
}   
   
return(0);
}
int MagicNumber, cmd;

int total(int cmd)
{
   int sum = 0;
   RefreshRates();
   for (int i=0;i<=OrdersTotal();i++)
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if (Symbol()==OrderSymbol() && cmd==OrderType() && MagicNumber==OrderMagicNumber()) sum++;
   }
   return(sum);
}
ps. Wyniki moga się różnić w zaleznosci od zastosowango okresu czasu w testerze.


sorki za błedy, ale mam en przegladarke
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Ostatnio zmieniony 15 paź 2011, 12:22 przez siersciuch, łącznie zmieniany 1 raz.
jeżeli będziesz uparty, prawdopodobnie częściej odniesiesz sukces, niż doznasz porażki.

Dagu

Nieprzeczytany post autor: Dagu »

Pieknie tylko gdyby jeszcze dalo sie dokladniej obejrzec test :)

Awatar użytkownika
siersciuch
Pasjonat
Pasjonat
Posty: 407
Rejestracja: 06 kwie 2010, 20:31

Nieprzeczytany post autor: siersciuch »

nie pamietam z jakiego okresu robiłem test, ale jak masz kod to mozesz sobie sam zobaczyć. Po to Kod umieszczam :)
jeżeli będziesz uparty, prawdopodobnie częściej odniesiesz sukces, niż doznasz porażki.

Awatar użytkownika
siersciuch
Pasjonat
Pasjonat
Posty: 407
Rejestracja: 06 kwie 2010, 20:31

Nieprzeczytany post autor: siersciuch »

Ea otwierajace zlecenia na poziomach oddalonych od siebie o 50 pips. Próbowalem podejsc do rynku jakos statystycznie, nie patrzac na wskaźniki i AT. Starałem sie uprościć koncepcje gry do przypominajaca gre w ruletke lub podobne gry losowe, gdzie ma sie 50 % na wygraną i sie udało chociarz z marnym skótkiem, ponieważ RR jest równe 1. wiec na dłuższą mete spread zje depo. A zmiejszając SL wzgledem TP juz nie bedzie 50% szans na wygraną.

Kod: Zaznacz cały

double poziom[1000],lot=0.1,level[1000];
int l,s,nowy_level;

int init()
  { 
  
for(int i=1;i<=1000;i++)
{
poziom[i]=0.77+0.005*i;
}


 
   return(0);
  }

int deinit()
  {

   return(0);
  }

int start()
  {
  
for(int i=1;i<=1000;i++)// jesli cena otwarcia jest miejsza od poziomu [i] i wieksza niz [i+1]
{
   if(poziom[i]<Open[0] && Open[0]<poziom[i+1])
   {
      level[i]=0.77+0.005*i; // level cenowy na krotym jest cena

      break;
   } 
}


 Comment
   (
   "\n"+
      "level[i] "+level[i]      
   +"\n"+
      "poziom[i] "+poziom[i]
   +"\n"+
      "poziom[i+1] "+poziom[i+1]
   +"\n"+
         "bid "+Bid
   +"\n"

   );
   
   
if(poziom[i+1] < Bid &&   total(OP_SELL)==0 &&  total(OP_BUY)==0 )
{

l=OrderSend(Symbol(),OP_BUY,lot,Ask,3,Bid-50*Point,Bid+50*Point);

}  
if(   poziom[i] > Bid &&  total(OP_BUY)==0 &&  total(OP_SELL)==0 )
{

s=OrderSend(Symbol(),OP_SELL,lot,Ask,3,Bid+50*Point,Bid-50*Point);

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

int MagicNumber, cmd; // sprawdza czy jest otwarte zlecenie

int total(int cmd)
{
   int sum = 0;
   RefreshRates();
   for (int i=0;i<=OrdersTotal();i++)
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if (Symbol()==OrderSymbol() && cmd==OrderType() && MagicNumber==OrderMagicNumber()) sum++;
   }
   return(sum);
}

Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
jeżeli będziesz uparty, prawdopodobnie częściej odniesiesz sukces, niż doznasz porażki.

ODPOWIEDZ