Почему не работает ?

 

//+------------------------------------------------------------------+
//| tri_tyme.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

//---- input parameters
extern int muv_trend_per=55;
extern double hag_parab=0.02;
extern double max_parab=0.2;

bool BuyOp=false, SellOp=false,
h4_byk=false, h1_byk=false, m5_byk=false,
h4_sell=false, h1_sell=false, m5_sell=false,
tral=false;

int tik, spred;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
spred=MarketInfo(Symbol(),MODE_SPREAD);
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
if(OrdersTotal()==0)
{
//*******
double muv_h4=norm(iMA(Symbol(),PERIOD_H4,muv_trend_per,0,MODE_EMA,PRICE_CLOSE,0));
double sar_h4=norm(iSAR(Symbol(),PERIOD_H4,hag_parab,max_parab,0));
int vol_0_h4=iVolume(Symbol(),PERIOD_H4,0);
int vol_1_h4=iVolume(Symbol(),PERIOD_H4,1);
double procent_h4=norm((vol_0_h4-vol_1_h4)/vol_0_h4);
if(muv_h4<iOpen(Symbol(),PERIOD_H4,0) && sar_h4<iOpen(Symbol(),PERIOD_H4,0) && procent_h4>0.30) h4_byk=true;
//*******
double muv_h1=norm(iMA(Symbol(),PERIOD_H1,muv_trend_per,0,MODE_EMA,PRICE_CLOSE,0));
double sar_h1=norm(iSAR(Symbol(),PERIOD_H1,hag_parab,max_parab,0));
int vol_0_h1=iVolume(Symbol(),PERIOD_H1,0);
int vol_1_h1=iVolume(Symbol(),PERIOD_H1,1);
double procent_h1=norm((vol_0_h1-vol_1_h1)/vol_0_h1);
if(muv_h1<iOpen(Symbol(),PERIOD_H1,0) && sar_h1<iOpen(Symbol(),PERIOD_H1,0) && procent_h1>0.30) h1_byk=true;
//*******
double muv_m5=norm(iMA(Symbol(),PERIOD_M5,muv_trend_per,0,MODE_EMA,PRICE_CLOSE,0));
double sar_m5=norm(iSAR(Symbol(),PERIOD_M5,hag_parab,max_parab,0));
if(muv_m5<iOpen(Symbol(),PERIOD_M5,0) && sar_m5<iOpen(Symbol(),PERIOD_M5,0)) m5_byk=true;
//*******
if(h4_byk==true && h1_byk==true && m5_byk==true)
{
tik=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,NULL,NULL,"Открыт ордер на покупку по цене "+Open[0],111111,0,Green);
h4_byk=false; h1_byk=false; m5_byk=false; tral=true;
}
//*******
//---------------------------------------------------------------------------------------------------------
//*******
double muv_h4_s=norm(iMA(Symbol(),PERIOD_H4,muv_trend_per,0,MODE_EMA,PRICE_CLOSE,0));
double sar_h4_s=norm(iSAR(Symbol(),PERIOD_H4,hag_parab,max_parab,0));
int vol_0_h4_s=iVolume(Symbol(),PERIOD_H4,0);
int vol_1_h4_s=iVolume(Symbol(),PERIOD_H4,1);
double procent_h4_s=norm((vol_0_h4_s-vol_1_h4_s)/vol_0_h4_s);
if(muv_h4_s>iOpen(Symbol(),PERIOD_H4,0) && sar_h4_s>iOpen(Symbol(),PERIOD_H4,0) && procent_h4_s>0.30) h4_sell=true;
//*******
double muv_h1_s=norm(iMA(Symbol(),PERIOD_H1,muv_trend_per,0,MODE_EMA,PRICE_CLOSE,0));
double sar_h1_s=norm(iSAR(Symbol(),PERIOD_H1,hag_parab,max_parab,0));
int vol_0_h1_s=iVolume(Symbol(),PERIOD_H1,0);
int vol_1_h1_s=iVolume(Symbol(),PERIOD_H1,1);
double procent_h1_s=norm((vol_0_h1_s-vol_1_h1_s)/vol_0_h1_s);
if(muv_h1_s>iOpen(Symbol(),PERIOD_H1,0) && sar_h1_s>iOpen(Symbol(),PERIOD_H1,0) && procent_h1_s>0.30) h1_sell=true;
//*******
double muv_m5_s=norm(iMA(Symbol(),PERIOD_M5,muv_trend_per,0,MODE_EMA,PRICE_CLOSE,0));
double sar_m5_s=norm(iSAR(Symbol(),PERIOD_M5,hag_parab,max_parab,0));
if(muv_m5_s>iOpen(Symbol(),PERIOD_M5,0) && sar_m5_s>iOpen(Symbol(),PERIOD_M5,0)) m5_sell=true;
//*******
if(h4_byk==true && h1_byk==true && m5_byk==true)
{
tik=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,NULL,NULL,"Открыт ордер на продажу по цене "+Open[0],222222,0,Blue);
h4_sell=false; h1_sell=false; m5_sell=false; tral=true;
}
//*******
}

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

if(OrdersTotal()!=0)
{
OrderSelect(tik,SELECT_BY_TICKET,MODE_TRADES);
if(OrderType()==OP_SELL)
{
if(tral==true)
{
RefreshRates();
if(OrderOpenPrice()-Ask>Point*150)
{
if(OrderStopLoss()>Ask+Point*150)
{
OrderModify(tik,OrderOpenPrice(),OrderOpenPrice()-spred*Point,OrderTakeProfit(),0,Yellow);
tral=false;
}
}
}
}
//*******
if(OrderType()==OP_BUY)
{
if(tral==true)
{
RefreshRates();
if(Bid-OrderOpenPrice()>Point*150)
{
if(OrderStopLoss()<Bid-Point*150)
{
OrderModify(tik,OrderOpenPrice(),OrderOpenPrice()+spred*Point,OrderTakeProfit(),0,Yellow);
tral=false;
}
}
}
}
}
//----
return(0);
}
//+------------------------------------------------------------------+

//*******
double norm (double x)
{
return (NormalizeDouble(x,Digits));
}


Почему то не открывает ни одной сделки ?

С уважением.

 

Воспользуйтесь кнопкой "SRC" при публикации кода.

Может, больше желающих будет помочь Вам.

 
Zhunko >>:

Воспользуйтесь кнопкой "SRC" при публикации кода.

Может, больше желающих будет помочь Вам.

пишет что код слишком длинный

 

К счастью, проверка чисто клиентская- сервер пропускает

//+------------------------------------------------------------------+
//| tri_tyme.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

//---- input parameters
extern int muv_trend_per=55;
extern double hag_parab=0.02;
extern double max_parab=0.2;

bool BuyOp=false, SellOp=false, 
h4_byk=false, h1_byk=false, m5_byk=false,
h4_sell=false, h1_sell=false, m5_sell=false,
tral=false;

int tik, spred; 
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
spred=MarketInfo(Symbol(),MODE_SPREAD); 
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
if(OrdersTotal()==0)
{
//*******
double muv_h4=norm(iMA(Symbol(),PERIOD_H4,muv_trend_per,0,MODE_EMA,PRICE_CLOSE,0));
double sar_h4=norm(iSAR(Symbol(),PERIOD_H4,hag_parab,max_parab,0));
int vol_0_h4=iVolume(Symbol(),PERIOD_H4,0);
int vol_1_h4=iVolume(Symbol(),PERIOD_H4,1);
double procent_h4=norm((vol_0_h4-vol_1_h4)/vol_0_h4);
if(muv_h4<iOpen(Symbol(),PERIOD_H4,0) && sar_h4<iOpen(Symbol(),PERIOD_H4,0) && procent_h4>0.30) h4_byk=true;
//*******
double muv_h1=norm(iMA(Symbol(),PERIOD_H1,muv_trend_per,0,MODE_EMA,PRICE_CLOSE,0));
double sar_h1=norm(iSAR(Symbol(),PERIOD_H1,hag_parab,max_parab,0));
int vol_0_h1=iVolume(Symbol(),PERIOD_H1,0);
int vol_1_h1=iVolume(Symbol(),PERIOD_H1,1);
double procent_h1=norm((vol_0_h1-vol_1_h1)/vol_0_h1);
if(muv_h1<iOpen(Symbol(),PERIOD_H1,0) && sar_h1<iOpen(Symbol(),PERIOD_H1,0) && procent_h1>0.30) h1_byk=true;
//*******
double muv_m5=norm(iMA(Symbol(),PERIOD_M5,muv_trend_per,0,MODE_EMA,PRICE_CLOSE,0));
double sar_m5=norm(iSAR(Symbol(),PERIOD_M5,hag_parab,max_parab,0));
if(muv_m5<iOpen(Symbol(),PERIOD_M5,0) && sar_m5<iOpen(Symbol(),PERIOD_M5,0)) m5_byk=true;
//*******
if(h4_byk==true && h1_byk==true && m5_byk==true)
{
tik=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,NULL,NULL,"Открыт ордер на покупку по цене "+Open[0],111111,0,Green);
h4_byk=false; h1_byk=false; m5_byk=false; tral=true;
}
//*******
//---------------------------------------------------------------------------------------------------------
//*******
double muv_h4_s=norm(iMA(Symbol(),PERIOD_H4,muv_trend_per,0,MODE_EMA,PRICE_CLOSE,0));
double sar_h4_s=norm(iSAR(Symbol(),PERIOD_H4,hag_parab,max_parab,0));
int vol_0_h4_s=iVolume(Symbol(),PERIOD_H4,0);
int vol_1_h4_s=iVolume(Symbol(),PERIOD_H4,1);
double procent_h4_s=norm((vol_0_h4_s-vol_1_h4_s)/vol_0_h4_s);
if(muv_h4_s>iOpen(Symbol(),PERIOD_H4,0) && sar_h4_s>iOpen(Symbol(),PERIOD_H4,0) && procent_h4_s>0.30) h4_sell=true;
//*******
double muv_h1_s=norm(iMA(Symbol(),PERIOD_H1,muv_trend_per,0,MODE_EMA,PRICE_CLOSE,0));
double sar_h1_s=norm(iSAR(Symbol(),PERIOD_H1,hag_parab,max_parab,0));
int vol_0_h1_s=iVolume(Symbol(),PERIOD_H1,0);
int vol_1_h1_s=iVolume(Symbol(),PERIOD_H1,1);
double procent_h1_s=norm((vol_0_h1_s-vol_1_h1_s)/vol_0_h1_s);
if(muv_h1_s>iOpen(Symbol(),PERIOD_H1,0) && sar_h1_s>iOpen(Symbol(),PERIOD_H1,0) && procent_h1_s>0.30) h1_sell=true;
//*******
double muv_m5_s=norm(iMA(Symbol(),PERIOD_M5,muv_trend_per,0,MODE_EMA,PRICE_CLOSE,0));
double sar_m5_s=norm(iSAR(Symbol(),PERIOD_M5,hag_parab,max_parab,0));
if(muv_m5_s>iOpen(Symbol(),PERIOD_M5,0) && sar_m5_s>iOpen(Symbol(),PERIOD_M5,0)) m5_sell=true;
//*******
if(h4_byk==true && h1_byk==true && m5_byk==true)
{
tik=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,NULL,NULL,"Открыт ордер на продажу по цене "+Open[0],222222,0,Blue);
h4_sell=false; h1_sell=false; m5_sell=false; tral=true;
}
//*******
}

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

if(OrdersTotal()!=0)
{
OrderSelect(tik,SELECT_BY_TICKET,MODE_TRADES);
if(OrderType()==OP_SELL)
{
if(tral==true)
{
RefreshRates();
if(OrderOpenPrice()-Ask>Point*150)
{
if(OrderStopLoss()>Ask+Point*150)
{
OrderModify(tik,OrderOpenPrice(),OrderOpenPrice()-spred*Point,OrderTakeProfit(),0,Yellow);
tral=false;
}
} 
}
}
//*******
if(OrderType()==OP_BUY)
{
if(tral==true)
{
RefreshRates();
if(Bid-OrderOpenPrice()>Point*150)
{
if(OrderStopLoss()<Bid-Point*150)
{
OrderModify(tik,OrderOpenPrice(),OrderOpenPrice()+spred*Point,OrderTakeProfit(),0,Yellow);
tral=false;
}
} 
}
}
} 
//----
return(0);
}
//+------------------------------------------------------------------+

//*******
double norm (double x)
{
return (NormalizeDouble(x,Digits));
}
 
jartmailru >>:

К счастью, проверка чисто клиентская- сервер пропускает


а можно пояснить если не трудно, не совсем понял ??

 

Мой совет: напишите индикатор, который будет в случае возникновения сигнала по H4, H1, M5 рисовать стрелочку.

Например, H4 рисует стрелочку на уровне 0.2, H1 на уровне 0.4, М5 на уровне 0.6 и т.д.

Тогда увидите расположение сигналов на графике.

 
evgenio >>:

а можно пояснить если не трудно, не совсем понял ??

Web-писатели, проверяющие данные на валидность, часто проверяют данные только

со стороны клиента- я имею в виду Java Script-проверки. 

Так что я зашел в код страницы и попросил результаты проверки длины кода игнорировать.

 
jartmailru >>:

Мой совет: напишите индикатор, который будет в случае возникновения сигнала по H4, H1, M5 рисовать стрелочку.

Например, H4 рисует стрелочку на уровне 0.2, H1 на уровне 0.4, М5 на уровне 0.6 и т.д.

Тогда увидите расположение сигналов на графике.

об этом уже думал, но так хочется сразу советник ))

а как вообще идея стоит или нет дальше копать в эту сторону ??

 
evgenio >>:

об этом уже думал, но так хочется сразу советник ))

а как вообще идея стоит или нет дальше копать в эту сторону ??

Ну вот... Ваш советник у меня уже есть- я думал, Вы сами скажете, ошиблись Вы или нет :-).

Копать ИМХО везде стоит. Вы учите и программирование Mql- и работаете с даными-

любой такой опыт, я думаю, лучше, чем просмотр TV.

.

А куда копать- если Вам поможет- можно- как вариант- посмотреть в обсуждениях 

победителей чемпионата https://championship.mql5.com/2012/en,

они часто пишут на чём основывается советник.

 
jartmailru >>:

Ну вот... Ваш советник у меня уже есть- я думал, Вы сами скажете, ошиблись Вы или нет :-).

Копать ИМХО везде стоит. Вы учите и программирование Mql- и работаете с даными-

любой такой опыт, я думаю, лучше, чем просмотр TV.

спасибо за поддержку в нашем трудном деле это тоже важно :-)

будем копать дальше

 
   //*******
   double muv_h4=norm(iMA(Symbol(),PERIOD_H4,muv_trend_per,0,MODE_EMA,PRICE_CLOSE,0));
   double sar_h4=norm(iSAR(Symbol(),PERIOD_H4,hag_parab,max_parab,0));
   int vol_0_h4=iVolume(Symbol(),PERIOD_H4,0);
   int vol_1_h4=iVolume(Symbol(),PERIOD_H4,1);
   double procent_h4=norm((vol_0_h4-vol_1_h4)/vol_0_h4);
   if(muv_h4<iOpen(Symbol(),PERIOD_H4,0) && sar_h4<iOpen(Symbol(),PERIOD_H4,0) && procent_h4>0.30) 
      {
      ObjectCreate("arrow"+Time[0],OBJ_ARROW,0,Time[0],sar_h4);
      h4_byk=true;
      }

почему-то не рисует стрелку, вроде все правильно ?

а есть ли разница на каком фрейме я запускаю тестирование на Н4 или М5, вроде не должно быть разницы ??

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