waddah attar win tradebalancer1

 

Добрый день - копался в советнике, вроде бы неплохой,но не могу уменьшить лот!Пишет ошибка 131....уже и так и сяк пробовал...может кто поможет, а то рисковать и ставить его на минимум 1к не хочется а с 100 баксов он не торгует

#property link "waddahattar@hotmail.com"
//+------------ Sept 03 Added Slippage ---------+//

extern int Step=7;
extern double FirstLot=0.01;
extern double IncLot=0.01;
extern double IncStep=1;
extern double MinProfit=1;
extern int Magic = 2008;
extern string comment="Win";
extern int Slippage=6;

int order_buy=0;
int order_sell=0;
double eLotSell=0;
double eLotBuy=0;
double gLotSell=0;
double gLotBuy=0;
double LSP,LBP;
double CurrentProfit;
double LastBuyStep,LastSellStep;


int init()
{
Comment("Waddah Attar Win 1.2a");
return(0);
}

int deinit()
{
Comment("");
return(0);
}

int start()
{
CurrentProfit=GetOrdersProfit(Magic);

if (CurrentProfit>=MinProfit)
{
DeletePendingOrders(Magic);
CloseOrders(Magic);
}

if (MyOrdersTotal(Magic)==0)
{
OrderSend(Symbol(),OP_BUYLIMIT,0.01,Ask-Step*Point,Slippage,0,0,comment,Magic,0,Blue);
OrderSend(Symbol(),OP_SELLLIMIT,0.01,Bid+Step*Point,Slippage,0,0,comment,Magic,0,Red);
LastBuyStep=Step;
LastSellStep=Step;
}

LSP=GetLastSellPrice(Magic);
LBP=GetLastBuyPrice(Magic);

if((LSP-Bid)<=5*Point)
{
OrderSend(Symbol(),OP_SELLLIMIT,gLotSell+IncLot,LSP+LastSellStep*Point,Slippage,0,0,comment,Magic,0,Red);
LastSellStep=LastSellStep + IncStep;
}

if((Ask-LBP)<=5*Point)
{
OrderSend(Symbol(),OP_BUYLIMIT,gLotBuy+IncLot,LBP-LastBuyStep*Point,Slippage,0,0,comment,Magic,0,Blue);
LastBuyStep=LastBuyStep + IncStep;
}


Comment("Waddah Attar Win 1.2a",
"\n\n\n\n", " CurrentProfit = ", DoubleToStr(CurrentProfit,2),
"\n\n", " Buy Lots = ", DoubleToStr(eLotBuy,2) + " / " + order_buy,
"\n\n", " Sell Lots = ", DoubleToStr(eLotSell,2) + " / " + order_sell);

return(0);
}


int DeletePendingOrders(int Magic)
{
int total = OrdersTotal();

for (int cnt = total-1 ; cnt >= 0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()!=OP_BUY && OrderType()!=OP_SELL)
{
OrderDelete(OrderTicket());
}
}
return(0);
}


int CloseOrders(int Magic)
{
int total = OrdersTotal();

for (int cnt = total-1 ; cnt >= 0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage);
}

if (OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage);
}
}
}
return(0);
}


int MyOrdersTotal(int Magic)
{
int c=0;

eLotBuy=0; eLotSell=0;
order_buy=0; order_sell=0;

int total = OrdersTotal();

for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) { eLotBuy=eLotBuy+OrderLots(); order_buy++; }
if(OrderType()==OP_SELL) { eLotSell=eLotSell+OrderLots(); order_sell++; }
c++;
}
}
return(c);
}


double GetLastBuyPrice(int Magic)
{
int total=OrdersTotal()-1;

for (int cnt = total ; cnt >=0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUYLIMIT || OrderType()==OP_BUY))
{
gLotBuy=OrderLots();
return(OrderOpenPrice());
}
}
return(0);
}


double GetLastSellPrice(int Magic)
{
int total=OrdersTotal()-1;

for (int cnt = total ; cnt >=0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_SELLLIMIT ||OrderType()==OP_SELL))
{
gLotSell=OrderLots();
return(OrderOpenPrice());
}
}
return(100000);
}


double GetOrdersProfit(int Magic)
{
double gProfit=0;
int total=OrdersTotal()-1;

for (int cnt = total ; cnt >=0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))
{
gProfit=gProfit+OrderProfit();
}
}
return(gProfit);
}

 

Лот итак маленький 0.01, куда уж меньше. Проверил в тестере на интервале с 01.01.09 по сегодня с начальным лотом 0.01 - не сливает на микросчёте только при начальном депозите примерно начиная с 3000$ и выше. Так что со 100$ только сольёшь депозит.

Причина обращения: