Компилиться,но не работает.

 

Значит есть код эксперта.Готовый,у которого все нормально работает,после того как в него я добавил функцию ММ,взятую отсюда http://www.mymmk.com/general/my_mql4/mql4_index.php#martingalecomplex,перестал открывать ордера.

Пишет типа того

2008.07.22 13:43:34 TestGenerator: unmatched data error (volume limit 319 at 2008.01.10 05:00 exceeded)
Если убираю функцию ММ работает все как и положено.Я вот еще че думаю у меня в советнике идет разгроничение на покупку и продажу,может после того как поставил ММ, это как-то влияет.Подскажите знающие люди.
 
Похоже баров истории нехватает. Но причем здесь ММ?
Вы - это, афтора потревожте, ему полезно будет.
 
Да нет я точно знаю что дело не в истории.До этого вскакивала ошибка 4062 и 4051
 
poiskspider писал (а) >>
Да нет я точно знаю что дело не в истории.До этого вскакивала ошибка 4062 и 4051

не соответствие.

 
Чему несоответсвие?
 

Лучше бы конечно код увидеть.

У меня такое возникает если не соответсвия цен на меньшем интервале к большим .Либо есть ошибка в коде относительно лотов .

 

я тоже склоняюсь к тому что недописал что-то в коде,знающие люди подправте пожалуйста что не так.Вот код

//+------------------------------------------------------------------+
//| larsen.mq4 |
//| |
//| |
//+------------------------------------------------------------------+

#property link ""
#import "MM_MartingaleComplex"
extern string text1="Настройки индикатора";
//---------------------------------
extern int NoiseLevel = 30;
extern int SwitchPercent = 30;
extern int Mode = 0;
extern int OncePerCandle = 1;
extern int MaxBars = 1000;
extern int ArrowOffset = 20;
extern int MaxWidth = 200;
//----------------------------------
extern string text2="Параметры для покупки";

extern int SLB=100; // Уровень стоп-лосса для ордеров на покупку
extern int TPB=100;// Уровень тейк-профита для ордеров на покупку


extern string text3="Параметры для продажи";

extern int SLS=100; // Уровень стоп-лосса для ордеров на продажу
extern int TPS=100;// Уровень тейк-профита для ордеров на продажу


extern bool BuyAllow=true; //Разрешить покупку
extern bool SellAllow=true; //Разрешить продажу
extern double Lot = 1;
extern string text4="Закрывать при противоположном сигнале";
extern bool CL=false; //Закрывать при противоположом сигнале
extern string text5="MM";
extern double dCoeff =2;
extern double dBasicLot=1;
extern bool bIf2TradeWithLittleMoney=true;

bool buy=true;
bool sell=true;
int O1=0;//флаг индикатора
int i;
double MM_MartingaleComplex(double dCoeff,double dBasicLot,string sSymbol,bool bIf2TradeWithLittleMoney);



//-------------------------------------------------------------------
void Open1()
{
O1=0;
if (iCustom(0,0,"ZigZag_Larsen_101_8",NoiseLevel,SwitchPercent,Mode,OncePerCandle,MaxBars,ArrowOffset,MaxWidth,2,1)>0) O1=1;
if (iCustom(0,0,"ZigZag_Larsen_101_8",NoiseLevel,SwitchPercent,Mode,OncePerCandle,MaxBars,ArrowOffset,MaxWidth,1,1)>0) O1=-1;
}
//---------------------------------------------------------------------


//-------------------Открытие ордера -------------------------------------------------------------
void OpenOrd()
{
if (GlobalVariableGet("MM_MartingaleComplex")>0)
if (O1==1 && buy==true && BuyAllow==true)
{
OrderSend(Symbol(), OP_BUY,GlobalVariableGet("MM_MartingaleComplex"), Ask,3,Bid-SLB*Point,Ask+TPB*Point,"Покупаем",16384,0,Green);
buy=false;
return;
}


// SELL
if (GlobalVariableGet("MM_MartingaleComplex")>0)
if (O1==-1 && sell==true && SellAllow==true)
{
OrderSend(Symbol(), OP_SELL,GlobalVariableGet("MM_MartingaleComplex"), Bid,3,Bid+SLS*Point,Bid-TPB*Point,"Продаем",16385,0,Red);
sell=false;
return;
}

}
//---------------------------------Закрытие ордера----------------------------------------------------
void CloseOrd()
{
for (i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()==Symbol() && OrderType()==OP_BUY && O1==-1) OrderClose(OrderTicket(),OrderLots(),Bid,3,Aqua); //Закрытие открытых ордеров на покупку
if (OrderSymbol()==Symbol() && OrderType()==OP_SELL && O1==1) OrderClose(OrderTicket(),OrderLots(),Ask,3,Aqua); //Закрытие открытых ордеров на продажу
}

}
//-----------------------------------------------------------------------------------------------------

int start()
{
static datetime prevtime=0;
if(prevtime == Time[0]) return; // продолжит работу только при новом баре
prevtime = Time[0];

Open1();
if (O1==-1) buy=true;
if (O1==1) sell=true;

OpenOrd();
if (CL==true) CloseOrd();


return(0);
}
//+------------------------------------------------------------------+
 
Ну что кто скажет неужели никто неподскажет,почему неоткрывает ордера
 
poiskspider писал (а) >>
Ну что кто скажет неужели никто неподскажет,почему неоткрывает ордера

А где индикатор?

 
А причем тут индикатор?Неоткрывает ордера и все дело в функции ММ.Я же говорю без ММ,все работает прекрасно как мне надо,открывая ордера постоянным лотом.
 
poiskspider писал (а) >>
А причем тут индикатор?Неоткрывает ордера и все дело в функции ММ.Я же говорю без ММ,все работает прекрасно как мне надо,открывая ордера постоянным лотом.

ну так должны мы тоже видеть что дело только в этом .