Работа завершена
Техническое задание
Открывает только на Sell на покупку почемуто неоткрывает вот надо его поправить Lexxodessa@gmail.com аська 571290847
//---- input parameters
extern double Step=0.02;
extern double Maximum=0.2;
extern double lot = 0.1; // lot
extern int SL = 500;
//extern bool Alert_Sound=true;
//---- buffers
double SarBuffer[];
double MaBuffer[];
double ep,sar,price_low,price_high,price;
//----
int save_lastreverse;
bool save_dirlong;
double save_start;
double save_last_high;
double save_last_low;
double save_ep;
double save_sar;
//---- Номер бара, по которому будет искаться сигнал
#define SIGNAL_BAR 1
int ticket;
double iSAR_value;
int trendnew =3;
int trend;
int myparam;
int tsignal;
double Mybands;
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//---- indicators
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
price=iSAR(NULL,0,Step,Maximum,0);
if(price>Close[SIGNAL_BAR]){tsignal=1;}
if(price<Close[SIGNAL_BAR]){tsignal=0;}
trendnew = trend;
trend=tsignal;
if(trend!=trendnew)
{
int t=OrdersTotal();
while(t>=0)
{
if(OrderSelect(t,SELECT_BY_POS,MODE_TRADES)==true)
if(OrderType()==OP_BUY) OrderClose(OrderTicket(),
OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0);
if(OrderType()==OP_SELL) OrderClose(OrderTicket(),
OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0);
t--;
}
ticket=-1;
trendnew=trend;
//Print("Сигнал: ",myparam," price: ",price," Close[SIGNAL_BAR]: ",Close[SIGNAL_BAR]);
}
if(price>Close[SIGNAL_BAR])
{
if(ticket<0)
{ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,3,SL,0,"Sell",0,0,Blue);}
}
if(price<Close[SIGNAL_BAR])
{
if(ticket<0)
{ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,3,SL,0,"Buy",0,0,Red);}
}
//---- время последнего бара и направление последнего сигнала
static int PrevSignal=0, PrevTime=0;
//---- Если баром для анализа выбран не 0-й, нам нет смысла проверять сигнал
//---- несколько раз. Если не начался новый бар, выходим.
if(SIGNAL_BAR > 0 && Time[0]<=PrevTime)
return(0);
//---- Отмечаем, что этот бар проверен
PrevTime=Time[0];
//----
return(0);
}
//+---------------------------------------------