Witam zaczynam zabawę z MQL4 i już na samym początku mam problem.
Chciałbym aby mój pierwszy treningowy EA otwierał i zamykał pozycje bazując na cenie BID.
Tzn. jeżeli cena Bid wzrośnie o np.20 pipsów to składam zlecenie kupna,jeżeli natomiast cena Bid spadnie o 20 pipsów sprzedaje,czekam na stoploss lub takeprofit i wszystko od nowa.Nie wiem jak zrobić aby EA np. gdy wejdzie w pozycję kupna i kurs zawróci czyli zlecenię zamknie na SL aby automatycznie otworzyć przeciwstawne zlecenie czyli kupna. Za pomoc z góry dziękuje. Mój kod :
//+------------------------------------------------------------------+
//| SAFE + -.mq4 |
//| Copyright 2014, MetaQuotes Software Corp. |
//| http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link "http://www.mql5.com"
#property version "1.00"
#property strict
double wartBid;
double pips;
extern int TakeProfit=20;
extern int StopLoss=20;
extern int MagicNumber=1234;
extern double LotSize=0.01;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{double ticksize = MarketInfo(Symbol(),MODE_TICKSIZE);
if (ticksize == 0.00001 || ticksize == 0.001)
pips = ticksize*10;
else pips= ticksize;
wartBid=Bid;
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if(Bid>=wartBid+(20*pips))
{ if (OrdersTotal()==0)
OrderSend(Symbol(),OP_BUY,LotSize,Ask,0,Ask-(StopLoss*pips),Ask+(TakeProfit*pips),NULL,0,0,Green);
}
if(Bid<=wartBid-(20*pips))
{if (OrdersTotal()==0)
OrderSend(Symbol(),OP_SELL,LotSize,Bid,3,Bid+(StopLoss*pips),Bid-(TakeProfit*pips),NULL,0,0,Red);
}
return;
}