вот шаблон по которому я делаю советники только не могу понять почему какой бы я не воткнул ему индикатор открывает так много сделок а мне надо чтоб одну сделку открыл и ждал когда она закроеться + трал не работает в чем проблема подскажите плиззз extern string s0 = "Setup: Main";
extern int Magic = 1121;
extern double lots = 0.1;
extern int StopLoss = 20;
extern int TakeProfit = 50;
extern double TrailingStop = 19;
int slip = 3;
extern int MaxTrade =1;
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
static datetime TimeFlag = 0;
datetime TimeLast = Time[0];
if(TimeFlag < TimeLast)
{
TimeFlag = TimeLast;
//int MACD = GetSignal_MACD();
int RSI = GetSignal_RSI();
//int CCI = GetSignal_CCI();
//int STOCH = GetSignal_STOCH();
//int MA = GetSignal_MA();
AnalyzeSignals( RSI);
}
return(0);
}
void AnalyzeSignals( int RSI )
{
int res;
if( RSI == OP_BUY )
{
res = OrderSend(Symbol(), OP_BUY, lots, Ask, slip, Bid - StopLoss*Point, Bid + TakeProfi+TrailingStopt*Point, NULL, Magic,MaxTrade);
if (OrdersTotal()<MaxTrade)
if(res < 0) {Alert("OrderSend Error: ", GetLastError());}
}
else if( RSI == OP_SELL )
{
res = OrderSend(Symbol(), OP_SELL, lots, Bid, slip, Ask + StopLoss*Point, Ask - TakeProfit-TrailingStop*Point, NULL, Magic,MaxTrade);
if (OrdersTotal()<MaxTrade)
if(res < 0) {Alert("OrderSend Error: ", GetLastError());}
}
}
//----
int GetSignal_RSI()
{
double ha0_M1 = iCustom(NULL,0, "HeikenAshi_DM", 0, 1);
double ha1_m1 = iCustom(NULL,0, "HeikenAshi_DM", 1, 1);
if(ha0_M1> ha1_m1)
return(OP_SELL);
else
if(ha0_M1< ha1_m1)
return(OP_BUY);
else
return(-1);
}