Советники: Серия "Простой советник" - страница 2

 

да что-то не клеятся цифры одна к другой.

путём простого подсчёта из параметров.

87 сделок х на ТР 300 = 26100

26100 + 10000 = 36100 и это только в том случае если все сделки в +. А здесь чистая прибыль 270149 - 26100 = 1000 п.п. <- откуда взялись???

сделок по ТР здесь от силы с десяток будет, так что не состыковка.

Если только автор не утаил какую нибудь хитрую систему ММ

 

Хотел бы поблагодарить вас за вашу серию простых советников. На этой базе я сделал советник,но очевидно сделал ошибки. В моем советнике по сигналу индикатора должны установится 2 ордера один из которых лимитный. Открывается только лимитный. Не могли бы вы подсказать мои ошибки или устранить? Есть так же версия без лимитного ордера с теми же условиями открытия ордера и с тем же индикатором. Там все работает.

//+------------------------------------------------------------------+
//| 2SROC-expert-Lim-2.mq4 |
//| Copyright © 2009, Хлыстов Владимир |
//| cmillion@narod.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Хлыстов Владимир"
#property link "cmillion@narod.ru"
//--------------------------------------------------------------------
//+------------------------------------------------------------------+
#include <stderror.mqh>
#include <stdlib.mqh>
#include <WinUser32.mqh>
//#include <Fs_Data.mqh>
int _ExpertOrdersTotal = 0; //общее количество ордеров, принадлежащих эксперту:
int _ExpertOrdersOpen = 0; //количество открытых ордеров, принадлежащих эксперту:
int _ExpertOrdersLimit = 0; //количество лимитных ордеров, принадлежащих эксперту:
extern int
stoploss1 =400,
stoploss2 =400,
takeprofit1 =12,
takeprofit2 =30,
risk =10;
extern double LOT=0.1;
//--------------------------------------------------------------------
double SL1,SL2,TP1,TP2;
double OrderLevel=30;
double _OrderOpenPrice1;
double _OrderOpenPrice2;
int TimeBar; //глобальная переменная
//--------------------------------------------------------------------
int start()
{
if (TimeBar==Time[0]) return(0);
if (TimeBar==0) {TimeBar=Time[0];return(0);}//первый запуск программы
double val11 = iCustom(NULL,0,"2SROC-exp",0,1);
double val12 = iCustom(NULL,0,"2SROC-exp",0,2);
double val13 = iCustom(NULL,0,"2SROC-exp",0,3);
double val14 = iCustom(NULL,0,"2SROC-exp",0,4);
double val15 = iCustom(NULL,0,"2SROC-exp",0,5);

double val21 = iCustom(NULL,0,"2SROC-exp",1,1);
double val22 = iCustom(NULL,0,"2SROC-exp",1,2);
double val23 = iCustom(NULL,0,"2SROC-exp",1,3);



if (val23<-0.0003&&val21<=val22&&val21<=val23&&val13>val12&&val11>val12&&val12<0&&(val12/val22)<=0.9&&(val12/val22)>0.4)//Buy
{
TimeBar=Time[0];
_OrderOpenPrice1= Ask ;
_OrderOpenPrice2= _OrderOpenPrice1 - OrderLevel*Point;
TP1 = _OrderOpenPrice1 + takeprofit1*Point;
SL1 = _OrderOpenPrice1 - stoploss1*Point;
TP2 = _OrderOpenPrice2 + takeprofit2*Point;
SL2 = _OrderOpenPrice2 - stoploss2*Point;
OPENORDER1("BUY");
OPENORDER2("Buy Limit");
}
if (val23<-0.0003&&val21<=val22&&val21<=val23&&val14>val12&&val13<=val12&&val11>val12&&val12<0&&(val12/val22)<=0.9&&(val12/val22)>0.4)//Buy
{
TimeBar=Time[0];
_OrderOpenPrice1= Ask ;
_OrderOpenPrice2= _OrderOpenPrice1 - OrderLevel*Point;
TP1 = _OrderOpenPrice1 + takeprofit1*Point;
SL1 = _OrderOpenPrice1 - stoploss1*Point;
TP2 = _OrderOpenPrice2 + takeprofit2*Point;
SL2 = _OrderOpenPrice2 - stoploss2*Point;
OPENORDER1("BUY");
OPENORDER2("Buy Limit");

}
if (val23<-0.0003&&val21<=val22&&val21<=val23&&val15>val12&&val14<=val12&&val13<=val12&&val11>val12&&val12<0&&(val12/val22)<=0.9&&(val12/val22)>0.4)//Buy
{
TimeBar=Time[0];
_OrderOpenPrice1= Ask ;
_OrderOpenPrice2= _OrderOpenPrice1 - OrderLevel*Point;
TP1 = _OrderOpenPrice1 + takeprofit1*Point;
SL1 = _OrderOpenPrice1 - stoploss1*Point;
TP2 = _OrderOpenPrice2 + takeprofit2*Point;
SL2 = _OrderOpenPrice2 - stoploss2*Point;
OPENORDER1("BUY");
OPENORDER2("Buy Limit");

}




if (val23>0.0003&&val21>=val22&&val21>=val23&&val13<val12&&val11<val12&&val12>0&&(val12/val22)<=0.9&&(val12/val22)>0.4)//Sell
{
TimeBar=Time[0];
_OrderOpenPrice1= Bid ;
_OrderOpenPrice2= _OrderOpenPrice1 + OrderLevel*Point;
TP1 = _OrderOpenPrice1 - takeprofit1*Point;
SL1 = _OrderOpenPrice1 + stoploss1*Point;
TP2 = _OrderOpenPrice2 - takeprofit2*Point;
SL2 = _OrderOpenPrice2 + stoploss2*Point;
OPENORDER1("SELL");
OPENORDER2("Sell Limit");

}
if (val23>0.0003&&val21>=val22&&val21>=val23&&val14<val12&&val13>=val12&&val11<val12&&val12>0&&(val12/val22)<=0.9&&(val12/val22)>0.4)//Sell
{
TimeBar=Time[0];
_OrderOpenPrice1= Bid ;
_OrderOpenPrice2= _OrderOpenPrice1 + OrderLevel*Point;
TP1 = _OrderOpenPrice1 - takeprofit1*Point;
SL1 = _OrderOpenPrice1 + stoploss1*Point;
TP2 = _OrderOpenPrice2 - takeprofit2*Point;
SL2 = _OrderOpenPrice2 + stoploss2*Point;
OPENORDER1("SELL");
OPENORDER2("Sell Limit");


}
if (val23>0.0003&&val21>=val22&& val21>=val23&& val15<val12&&val14>=val12&&val13>=val12&&val11<val12&& val12>0&&(val12/val22)<=0.9&&(val12/val22)>0.4)//Sell
{
TimeBar=Time[0];
_OrderOpenPrice1= Bid ;
_OrderOpenPrice2= _OrderOpenPrice1 + OrderLevel*Point;
TP1 = _OrderOpenPrice1 - takeprofit1*Point;
SL1 = _OrderOpenPrice1 + stoploss1*Point;
TP2 = _OrderOpenPrice2 - takeprofit2*Point;
SL2 = _OrderOpenPrice2 + stoploss2*Point;
OPENORDER1("SELL");
OPENORDER2("Sell Limit");


}

return(0);
}
//--------------------------------------------------------------------
void CLOSEORDER(string ord)
{
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()==OP_BUY && ord=="Buy")
OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);// Close Buy
if (OrderType()==OP_SELL && ord=="Sell")
OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);// Close Sell
}
}
}
//--------------------------------------------------------------------

void OPENORDER1(string ord)
{
if (OrdersTotal()!=0) return;

if (_ExpertOrdersOpen != 0) return (false);
if (_ExpertOrdersOpen == 0) return (true);
{
int error;
if( OrderOpenPrice()==_OrderOpenPrice1)
if (ord=="Buy" ) error=OrderSend(Symbol(),OP_BUY, LOT,_OrderOpenPrice1,3,SL1,TP1,"", 1,3);

if (ord=="Sell") error=OrderSend(Symbol(),OP_SELL,LOT,_OrderOpenPrice1,3,SL1,TP1,"",-1,3);

if (error==-1) //неудачная покупка OK

{
ShowERROR(error,0,0);
}
return(false);
} }
//--------------------------------------------------------------------

void OPENORDER2(string ord)
{
if (OrdersTotal()!=0) return;
if (_ExpertOrdersOpen != 0 && _ExpertOrdersLimit != 0)return (false);
if (_ExpertOrdersOpen != 0 && _ExpertOrdersLimit == 0)return (true);
{
int error;

if (ord=="Buy Limit" ) error=OrderSend(Symbol(),OP_BUYLIMIT, LOT,_OrderOpenPrice2,3,SL2,TP2,"", 1,3);

if (ord=="Sell Limit") error=OrderSend(Symbol(),OP_SELLLIMIT,LOT,_OrderOpenPrice2,3,SL2,TP2,"",-1,3);
if (error==-1) //неудачная покупка OK

{
ShowERROR(error,0,0);
}
return(false);
}}
//--------------------------------------------------------------------
void ShowERROR(int Ticket,double SL,double TP)
{
int err=GetLastError();
switch ( err )
{
case 1: return;
case 2: Alert("Нет связи с торговым сервером ",Ticket," ",Symbol());return;
case 3: Alert("Error неправильные параметры Ticket ", Ticket," ",Symbol());return;
case 130: Alert("Error близкие стопы Ticket ", Ticket," ",Symbol());return;
case 134: Alert("Недостаточно денег ", Ticket," ",Symbol());return;
case 146: Alert("Error Подсистема торговли занята ", Ticket," ",Symbol());return;
case 129: Alert("Error Неправильная цена ", Ticket," ",Symbol());return;
case 131: Alert("Error Неправильный объем ", Ticket," ",Symbol());return;
case 4051:Alert("Error Недопустимое значение параметра функции ",Ticket," ",Symbol());return;
case 4105:Alert("Error Ни один ордер не выбран ", Ticket," ",Symbol());return;
case 4063:Alert("Error Ожидается параметр типа integer ", Ticket," ",Symbol());return;
case 4200:Alert("Error Объект уже существует ", Ticket," ",Symbol());return;
default: Alert("Error ",err," Ticket ", Ticket," ",Symbol());return;
}
}

//--------------------------------------------------------------------

 

Cmillion:
Спасибо за Ваши слова, я всегда рад помочь, но время на поиск ошибки у меня уйдет боьше, чем на написание советника с ноля. Пришлите техзадание на почту cmillion@narod.ru

Большое спасибо, уже нашел сам. Вместо "BUY","SELL" было "Buy","Sell" итд.
 
Добрый вечер. Первый раз попробовал работать на демке с вашим советником. На демке пробовал шпилет не плохо (5 знаков после точки) (требуется постоянно сопровождать сделки, по профиту только одна из 27 и одна по стопу) а вот на реале работать не хочет (четыре знака... появляется вкладка со звуковым сигналом и Error 4109 Tikcet-1 и валютная пара далее ) в чем проблема?
 
Rr-r7:
Добрый вечер. Первый раз попробовал работать на демке с вашим советником. На демке пробовал шпилет не плохо (5 знаков после точки) (требуется постоянно сопровождать сделки, по профиту только одна из 27 и одна по стопу) а вот на реале работать не хочет (четыре знака... появляется вкладка со звуковым сигналом и Error 4109 Tikcet-1 и валютная пара далее ) в чем проблема?

4109 Торговля не разрешена. Необходимо включить опцию "Разрешить советнику торговать" в свойствах эксперта.
 
cmillion:
Rr-r7:
Добрый вечер. Первый раз попробовал работать на демке с вашим советником. На демке пробовал шпилет не плохо (5 знаков после точки) (требуется постоянно сопровождать сделки, по профиту только одна из 27 и одна по стопу) а вот на реале работать не хочет (четыре знака... появляется вкладка со звуковым сигналом и Error 4109 Tikcet-1 и валютная пара далее ) в чем проблема?

4109 Торговля не разрешена. Необходимо включить опцию "Разрешить советнику торговать" в свойствах эксперта.

Да вроде все включено!!! Только упорно не желает работать...))) На демке работает FxPro, реал у меня в BMF и что то не получается)))

 
Rr-r7:
cmillion:
Rr-r7:
Добрый вечер. Первый раз попробовал работать на демке с вашим советником. На демке пробовал шпилет не плохо (5 знаков после точки) (требуется постоянно сопровождать сделки, по профиту только одна из 27 и одна по стопу) а вот на реале работать не хочет (четыре знака... появляется вкладка со звуковым сигналом и Error 4109 Tikcet-1 и валютная пара далее ) в чем проблема?

4109 Торговля не разрешена. Необходимо включить опцию "Разрешить советнику торговать" в свойствах эксперта.

Да вроде все включено!!! Только упорно не желает работать...))) На демке работает FxPro, реал у меня в BMF и что то не получается)))




Мордочка улыбается?
 
cmillion:
Rr-r7:
cmillion:
Rr-r7:
Добрый вечер. Первый раз попробовал работать на демке с вашим советником. На демке пробовал шпилет не плохо (5 знаков после точки) (требуется постоянно сопровождать сделки, по профиту только одна из 27 и одна по стопу) а вот на реале работать не хочет (четыре знака... появляется вкладка со звуковым сигналом и Error 4109 Tikcet-1 и валютная пара далее ) в чем проблема?

4109 Торговля не разрешена. Необходимо включить опцию "Разрешить советнику торговать" в свойствах эксперта.

Да вроде все включено!!! Только упорно не желает работать...))) На демке работает FxPro, реал у меня в BMF и что то не получается Error 133)))




Мордочка улыбается?

Конечно же... чуток понимаю что и к чему...)

 
Rr-r7:
cmillion:
Rr-r7:
cmillion:
Rr-r7:
Добрый вечер. Первый раз попробовал работать на демке с вашим советником. На демке пробовал шпилет не плохо (5 знаков после точки) (требуется постоянно сопровождать сделки, по профиту только одна из 27 и одна по стопу) а вот на реале работать не хочет (четыре знака... появляется вкладка со звуковым сигналом и Error 4109 Tikcet-1 и валютная пара далее ) в чем проблема?

4109 Торговля не разрешена. Необходимо включить опцию "Разрешить советнику торговать" в свойствах эксперта.

Да вроде все включено!!! Только упорно не желает работать...))) На демке работает FxPro, реал у меня в BMF и что то не получается Error 133)))




Мордочка улыбается?

Конечно же... чуток понимаю что и к чему...)




133 Торговля запрещена
Вероятно нужно связываться с брокером. Все ошибки крутятся вокруг запрета торговли.
 
Прошу написать советник с хорошей идеей. Кому не влом. Куда скинуть описание? Мой е-mайл nikolaynv@hotmail.com
Причина обращения: