robot forex który sam wszystko robi

O jezykach programowania w platformach i nie tylko.
Tomasz1441810
Bywalec
Bywalec
Posty: 11
Rejestracja: 17 lip 2011, 20:59

robot forex który sam wszystko robi

Nieprzeczytany post autor: Tomasz1441810 »

Napisałem ea jednak coś nie działa. Nie wiem co i jak.
double ma_34_low_1;
double ma_34_low_2;
double ma_34_close_1;
double ma_34_close_2;
double ma_34_high_1;
double ma_34_high_2;

double ma_170_low_1;
double ma_170_low_2;
double ma_170_close_1;
double ma_170_close_2;
double ma_170_high_1;
double ma_170_high_2;

bool c1; // grupa warunków jakie maja być spełnione na buy
bool c2;
bool c3;

//warunki na sell w grupach

bool s1;
bool s2;
bool s3;


extern double ryzyko = 0.01;
extern int Slippage = 5/10000;
double sl;
double spread;
double pozycja;
double target;
extern int ticket = 0;
extern double TrailingStop=40;
double PointValue;


int candles =2; //max liczba swiec bioracych udzial w nalizie swiec

double H[];
double L[];
double O[];
double C[];
double B[];
double T[];
double upper[];
double body[];
double lower[];




extern double roznica=0.0008;

//warunek 1 srednia 34 musi byc w trendzie spadkowym lub wzrostowy

bool wzrost_1;
bool spadek_1;

bool wzrost_2;
bool spadek_2;

bool warunek_3_buy;

bool warunek_4_buy;

bool warunek_4_sell;

bool warunek_5_buy;

bool warunek_5_sell;

bool warunek_6_buy;

bool warunek_6_sell;

bool warunek_3_sell;

bool obj_hossy;//na wzrost

bool obj_bessy;

bool pin_bar_buy;//na wzrost

bool pin_bar_sell;

bool marubozu_buy;//na wzrost

bool marubozu_sell;

bool wzrostowa; //ostatnia swieca jest wzrostowa

bool spadkowa; // ostatnia swieca jest spadkowa

bool rozmiar_swiecy; // rozmiar swiecy ostatniej musi byc min 1 pips

int start(){



spread= MathAbs(Ask-Bid);
sl=NormalizeDouble(MathAbs(High[1]-Low[1])+spread,5);
if(sl<0.00030)
{
sl=0.00030;
}

target = NormalizeDouble(3*sl,5);

pozycja = NormalizeDouble((AccountBalance()*ryzyko)/(sl*100000),2);


ArrayResize(H,candles);
ArrayResize(L,candles);
ArrayResize(O,candles);
ArrayResize(C,candles);
ArrayResize(B,candles);
ArrayResize(T,candles);
ArrayResize(upper,candles);
ArrayResize(body, candles);
ArrayResize(lower,candles);


for(int i =1 ; i<=candles; i++)
{

O = Open;
C = Close;
H = High;
L = Low;
T = MathMax(Open,Close[i]);
B[i] = MathMin(Open[i], Close[i]);
upper[i] = H[i] - T[i];
body[i] = T[i] - B[i];
lower[i] = B[i] - L[i];

}

if(T[1]>T[2] && B[1]<B[2])
{

if(C[1]>O[1] && O[2]>C[2])
{

obj_hossy=1;


}
}
if(T[1]>T[2] && B[1]<B[2])
{

if(O[1]>C[1] && O[2]<C[2])
{

obj_bessy=1;


}
}



if(lower[1]>=2*body[1])
{
pin_bar_buy=1;

}

if(upper[1]>=2*body[1])
{

pin_bar_sell=1;
}

if((High[1]-Open[1])<=0.00002 && (Close[1]-Low[1])<=0.00002)
{
if((Close[1]-Open[1])>=0.00010)
{
marubozu_buy=1;

}
}

if((High[1]-Close[1])<=0.00002 && (Open[1]-Low[1])<=0.00002)
{
if((Open[1]-Close[1])>=0.00010)
{
marubozu_sell=1;

}
}

ma_34_close_1=iMA(Symbol(),PERIOD_CURRENT,34,0,MODE_EMA,PRICE_CLOSE,1);
ma_34_close_2=iMA(Symbol(),PERIOD_CURRENT,34,0,MODE_EMA,PRICE_CLOSE,2);

ma_34_low_1=iMA(Symbol(),PERIOD_CURRENT,34,0,MODE_EMA,PRICE_LOW,1);
ma_34_low_2=iMA(Symbol(),PERIOD_CURRENT,34,0,MODE_EMA,PRICE_LOW,2);

ma_34_high_1=iMA(Symbol(),PERIOD_CURRENT,34,0,MODE_EMA,PRICE_HIGH,1);
ma_34_high_2=iMA(Symbol(),PERIOD_CURRENT,34,0,MODE_EMA,PRICE_HIGH,2);

ma_170_close_1=iMA(Symbol(),PERIOD_CURRENT,170,0,MODE_EMA,PRICE_CLOSE,1);
ma_170_close_2=iMA(Symbol(),PERIOD_CURRENT,170,0,MODE_EMA,PRICE_CLOSE,2);

ma_170_low_1=iMA(Symbol(),PERIOD_CURRENT,170,0,MODE_EMA,PRICE_LOW,1);
ma_170_low_2=iMA(Symbol(),PERIOD_CURRENT,170,0,MODE_EMA,PRICE_LOW,2);

ma_170_high_1=iMA(Symbol(),PERIOD_CURRENT,170,0,MODE_EMA,PRICE_HIGH,1);
ma_170_high_2=iMA(Symbol(),PERIOD_CURRENT,170,0,MODE_EMA,PRICE_HIGH,2);





//WARUNEK 1 SREDNIE MUSZĄ BYĆ W ODPOWIEDNIM TRENDZIE

if(ma_34_close_2<ma_34_close_1 && ma_170_close_2<ma_170_close_1)//warunek na wzrost srednic
{
wzrost_1=1;

}
else if (ma_34_close_2>ma_34_close_1 && ma_170_close_2<ma_170_close_1)// warunek na spadek srednich
{

spadek_1=1;
}

//WARUNEK 2 SREDNIE HIGH LOW I CLOSE 34 SA WIEKSZA OD SREDNICH 170 GDY TREND WZROSTOWY I ANALOGICZNIE NA SPADKWOY


if(ma_34_close_1>ma_170_close_1 && ma_34_close_2>ma_170_close_2)
{

if(ma_34_high_1>ma_170_high_1 && ma_34_high_2>ma_170_high_2)

{

if( ma_34_low_1>ma_170_low_1 && ma_34_low_2>ma_170_low_2)

{

wzrost_2=1;



}
}
}
else
{
if(ma_34_close_1<ma_170_close_1 && ma_34_close_2<ma_170_close_2)
{
if(ma_34_high_1<ma_170_high_1 && ma_34_high_2<ma_170_high_2)
{
if(ma_34_low_1<ma_170_low_1 && ma_34_low_2<ma_170_low_2)
{

spadek_2=1;


}
}
}
}

//warunek3 na buy

if(Close[2]>ma_34_low_2 && Open[2]>ma_34_low_2)
{
if(Close[1]>ma_34_low_1 && Open[1] > ma_34_low_1)
{

warunek_3_buy=1;
}
}

warunek_3_buy=0;

//warunek 3 na sell
if(Close[2]<ma_34_high_2 && Open[2]<ma_34_high_2)
{
if(Close[1]<ma_34_high_1 && Open[1] < ma_34_high_1)
{

warunek_3_sell=1;
}
}

warunek_3_sell=0;

//warunek 4 odległosc miedzy kanałami srednia low 34 a high 170

if(ma_34_low_1-ma_170_high_1>=roznica)
warunek_4_buy=1;
else
warunek_4_buy=0;

//warunek_4 na sell

if(ma_170_low_1-ma_34_high_1>=roznica)
warunek_4_sell=1;
else
warunek_4_sell=0;

//warunek do wejscia z wykresu bez analziy swiec obszar wejscia

if(Close[1]<=ma_34_high_1)
warunek_5_buy=1;
else
warunek_5_buy=0;


if(Close[1]>= ma_34_low_1)
warunek_5_sell=1;
else
warunek_5_sell=0;



if(Close[1]>ma_34_high_1 &&( Open[0]-ma_34_high_1<=0.00030))

warunek_6_buy=1;
else
warunek_6_buy=0;


if(Close[1]<ma_34_low_1 &&(ma_34_low_1-Open[0]<=0.00030))

warunek_6_sell=1;
else
warunek_6_sell=0;


if(Close[1]>Open[1])
wzrostowa=1;
else if(Open[1]>Close[1])
spadkowa=1;

if(MathAbs(Close[1]-Open[1])>=0.00010)
{

rozmiar_swiecy=1;

}

if(wzrost_1==1 && wzrost_2==1 && warunek_3_buy==1 && warunek_4_buy==1 && wzrostowa==1 && rozmiar_swiecy==1)
{

c1=1;

}
else
{c1=0;
}

if(warunek_5_buy==1 || warunek_6_buy==1)

{

c2 = 1;
}
else
{

c2=0;
}
/*
if(obj_hossy==1 || pin_bar_buy==1 || marubozu_buy==1)
{
c3=1;

}
else
{
c3=0;
}
*/
if(spadek_1 ==1 && spadek_2 ==1 && warunek_3_sell == 1 && warunek_4_sell ==1 && rozmiar_swiecy ==1 && spadkowa ==1)
{

s1=1;
}
else
{
s1=0;
}
if(warunek_5_sell ==1 || warunek_6_sell ==1)
{
s2=1;
}
else
{
s2=0;
}

if(obj_bessy==1 || pin_bar_sell==1 || marubozu_sell==1)
{
s3=1;
}
else
{
s3=0;
}

if(TotalOrdersCount()==0)
{

int result=0;

if(c1==1 && c2==1 && c3==1 )
{

result=OrderSend(Symbol(),OP_BUY,pozycja,Ask,Slippage,Bid-sl,Bid+target,0,0,Blue);

}

else if(s1==1 && s2==1 && s3==1)

{

result=OrderSend(Symbol(),OP_SELL,pozycja,Bid,Slippage,Ask+sl,Ask-target,0,0,Red);


}





}
for ( i = 0; i < OrdersTotal(); i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
PointValue = MarketInfo(OrderSymbol(), MODE_POINT);
//Normalize trailing stop value to the point value
double TSTP = TrailingStop * PointValue;
if (OrderType() == OP_BUY)
{ if ((Bid - OrderOpenPrice()) > TSTP)
{ if (OrderStopLoss() < (Bid - TSTP))
{
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - TSTP, OrderTakeProfit(), Red);
}
}
}
else if (OrderType() == OP_SELL)
{ if ((OrderOpenPrice() - Ask) > TrailingStop * PointValue)
{ if ((OrderStopLoss() > (Ask + TrailingStop * PointValue)) || (OrderStopLoss() == 0))
{
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + TSTP, OrderTakeProfit(), Red);
}
}
}
}
return(0);
}

int TotalOrdersCount()
{
int result=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSelect(i,SELECT_BY_POS)==true)
result++;

}
return (result);
}
bool NewBar()
{
static int iTime_0=0;

if(iTime_0<iTime(Symbol(),PERIOD_CURRENT,0))
{
iTime_0=iTime(Symbol(),PERIOD_CURRENT,0);
return( true );
}
else
{
return ( false );
}
}

-- Dodano: ndz 02-04-2017, 18:15 --

kod juz działa. Niestety ea traci

irmentruda
Maniak
Maniak
Posty: 1607
Rejestracja: 21 sie 2014, 08:51

Re: robot forex który sam wszystko robi

Nieprzeczytany post autor: irmentruda »

bo ea oparte o srednie czasami zarabiaja. przewaznie traca.

Tomasz1441810
Bywalec
Bywalec
Posty: 11
Rejestracja: 17 lip 2011, 20:59

Re: robot forex który sam wszystko robi

Nieprzeczytany post autor: Tomasz1441810 »

Witaj Potwierdzam kilka prostych zrobiłem i lipa. Masz jakieś wskazówki na EA mające szanse na rynku

irmentruda
Maniak
Maniak
Posty: 1607
Rejestracja: 21 sie 2014, 08:51

Re: robot forex który sam wszystko robi

Nieprzeczytany post autor: irmentruda »

tak na szybko co u mnie sprawdza się:
1) gridy z martyngałem (do czasu hehehe ale jak umiesz skalkulować ryzyko i dobrać kapitał to można długo tym jechać)
2) macd,
3) ichimoku,
4) świece momentum,
5) dowolne kombinacje pkt. 1 do 5 jw.

STUDENT
Pasjonat
Pasjonat
Posty: 522
Rejestracja: 19 kwie 2017, 13:43

Re: robot forex który sam wszystko robi

Nieprzeczytany post autor: STUDENT »

ma niezle cycki I sniadanie poda do lozka. posprzata I wypierze
trzeba tylko troche dopiescic :

https://www.mql5.com/en/articles/1103

ODPOWIEDZ