Kod: Zaznacz cały
double wynik[50];
double dodatnia[50];
double ujemna[50];
double suma_dodatnich;
double suma_ujemnych;
double srednia_dodatnich;
double srednia_ujemnych;
int s,sl,l,ilosc_dodatnich,ilosc_ujemnych;
double lots=0.1;
int init(){return(0);}
int deinit(){return(0);}
int start()
{
ilosc_dodatnich=0; // zeruje ilosc dodatnich swiec
ilosc_ujemnych=0; // zeruje ilosc ujemnych swiec
for(int i=1;i<51;i++) // zeruje tablice
{
dodatnia[i]=0; //dodatniach swiec
ujemna[i]=0; // i ujemna swiec
}
for( i=1;i<51;i++)
{
wynik[i]=(Close[i]-Open[i])/Point;
if(wynik[i]>0 && total(OP_BUY)==0 ) // jesli swieca jest wzrostowa wtedy, wynik jest przypisywany do tablicy
{
wynik[i]=dodatnia[i];
ilosc_dodatnich++; // zlicza ilosc dodatnich swiec
}
if(wynik[i]<0 && total(OP_SELL)==0) // jesli swieca jest spadkowa wtedy, wynik jest przypisywany do tablicy
{
wynik[i]=ujemna[i];
ilosc_ujemnych++; // zlicza ilosc ujemnych swiec
}
}
if(total(OP_BUY)==0 && total(OP_SELL)==0)
{
for(i=1;i<51;i++) // dodaje wszystkie dodatnie wyniki
{
suma_dodatnich += dodatnia[i];
}
for(i=1;i<51;i++)
{
suma_ujemnych += ujemna[i] ;
}
}
srednia_dodatnich = suma_dodatnich/ilosc_dodatnich;
srednia_ujemnych = suma_ujemnych/ilosc_ujemnych;
if(Open[0]<Bid+(srednia_dodatnich*1.5) && total(OP_BUY)==0)
{
l= OrderSend(Symbol(),OP_BUY,lots,Bid,3,Bid-srednia_dodatnich,Bid+srednia_dodatnich*2);
}
if(Open[0]>Bid+(srednia_ujemnych*1.5) && total(OP_SELL)==0)
{
s= OrderSend(Symbol(),OP_BUY,lots,Bid,3,Bid+srednia_ujemnych,Bid-srednia_dodatnich*2);
}
return(0);
}
//+------------------------------------------------------------------+
int total(int cmd)
{
int MagicNumber;
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);
}