Początki w MQL4

O jezykach programowania w platformach i nie tylko.
Lucky1978
Stały bywalec
Stały bywalec
Posty: 25
Rejestracja: 01 mar 2014, 21:57

Początki w MQL4

Nieprzeczytany post autor: Lucky1978 »

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;
}

ODPOWIEDZ