Скачать MetaTrader 5

Помогите исправить ошибки. (Хеджирование+Фрактал)

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Публикуй статьи и увеличивай свой рейтинг!
Arseniy Suharev
282
Arseniy Suharev 2015.04.09 08:55 
extern double Lot        = 8.0;    // открываемый лот
 
extern int TakeProfit    = 15;
extern int Slippage      = 2;      // проскальзывание
extern int Magic         = 6666;

extern string s1= "EURUSD";
extern string s2= "GBRUSD";

int start()

{

   if (DayOfWeek()==5) return(0);
  
  
//-----double Buy=iFractals(s1,240,MODE_LOWER,2);
//-----  double Sell=iFractals(s2,240,MODE_UPPER,2);
 
  double Sell=iCustom(s1,240,"iFractals",240,MODE_LOWER,2);
  double Buy=iCustom(s1,240,"iFractals",240,MODE_LOWER,2);
  double Sell=iCustom(s2,240,"iFractals",240,MODE_UPPER,2);
  double Buy=iCustom(s2,240,"iFractals",240,MODE_UPPER,2);
  if (Sell>0 &&  Buy==0 && Volume[0]<2)
  {
     MarketInfo(s1,MODE_BID);
     OrderSend(s1,OP_SELL,Lot,Bid,Slippage,0,NormalizeDouble(Bid-TakeProfit*Point,Digits),NULL,Magic,0,clrRed);
  }
  if (Sell>0 &&  Buy==0 && Volume[0]<2)
  {
     MarketInfo(s2,MODE_BID);
     OrderSend(s2,OP_SELL,Lot,Bid,Slippage,0,NormalizeDouble(Bid-TakeProfit*Point,Digits),NULL,Magic,0,clrRed);
  }
  if (Sell==0 && Buy>0 && Volume[0]<2)
  {
     MarketInfo(s1,MODE_ASK);
     OrderSend(s1,OP_BUY,Lot,Ask,Slippage,0,NormalizeDouble(Ask+TakeProfit*Point,Digits),NULL,Magic,0,clrBlue);   
  }
    if (Sell==0 && Buy>0 && Volume[0]<2)
  {
     MarketInfo(s2,MODE_ASK);
     OrderSend(s2,OP_BUY,Lot,Ask,Slippage,0,NormalizeDouble(Ask+TakeProfit*Point,Digits),NULL,Magic,0,clrBlue);   
  }
   return(0);
}
Как отладить советник, чтобы он при появлении фракталов в одну сторону на двух и более символах открывал по ним сделки. MQL4
Gulnaz Akhtyamova
10620
Gulnaz Akhtyamova 2015.04.09 17:43  
Arsen_Syharev:
Как отладить советник, чтобы он при появлении фракталов в одну сторону на двух и более символах открывал по ним сделки. MQL4

а почему у Вас переменные называются одинаково? Они случаем не накладываются друг на друга? Ну хотя бы надо обозвать Селл1, Селл2 и т.д....

  double Sell=iCustom(s1,240,"iFractals",240,MODE_LOWER,2);
  double Buy=iCustom(s1,240,"iFractals",240,MODE_LOWER,2);
  double Sell=iCustom(s2,240,"iFractals",240,MODE_UPPER,2);
  double Buy=iCustom(s2,240,"iFractals",240,MODE_UPPER,2);
Arseniy Suharev
282
Arseniy Suharev 2015.04.10 08:33  
_new-rena:

а почему у Вас переменные называются одинаково? Они случаем не накладываются друг на друга? Ну хотя бы надо обозвать Селл1, Селл2 и т.д....

Надо чтобы советник открывал сделки, когда фрактал при появлении в одно время и в одну сторону на 2 и более графиках. Например на паре EURUSD и GBRUSD в 4:00 открылись фракталы на покупку или продажу, то только тогда открывались сделки, а если фрактал открылся на одном графике или они в разные стороны, то сделки не открываются.
Gulnaz Akhtyamova
10620
Gulnaz Akhtyamova 2015.04.10 08:36  
Arsen_Syharev:
Надо чтобы советник открывал сделки, когда фрактал при появлении в одно время и в одну сторону на 2 и более графиках. Например на паре EURUSD и GBRUSD в 4:00 открылись фракталы на покупку или продажу, то только тогда открывались сделки, а если фрактал открылся на одном графике или они в разные стороны, то сделки не открываются.

у меня нет слов. еще раз прочитайте мой пост внимательно.

селл=1000

селл=2.

Чему будет равен селл?

Arseniy Suharev
282
Arseniy Suharev 2015.04.10 11:32  
extern double Lot        = 8.0;    // открываемый лот   
extern int TakeProfit    = 15;
extern int Slippage      = 2;      // проскальзывание
extern int Magic         = 6666;

extern string s1= "EURUSD";
extern string s2= "GBRUSD";

int start()

{
  if (DayOfWeek()==5) return(0);
  
  double Sell=iFractals(s1,240,MODE_LOWER,2);
  double Buy=iFractals(s1,240,MODE_LOWER,2);
  double Sell2=iFractals(s2,240,MODE_UPPER,2);
  double Buy2=iFractals(s2,240,MODE_UPPER,2);
  if (Sell>0 &&  Buy==0 && Volume[0]<2)
  {
     MarketInfo(s1,MODE_BID);
     OrderSend(s1,OP_SELL,Lot,Bid,Slippage,0,NormalizeDouble(Bid-TakeProfit*Point,Digits),NULL,Magic,0,clrRed);
  }
  if (Sell2>0 &&  Buy2==0 && Volume[0]<2)
  {
     MarketInfo(s2,MODE_BID);
     OrderSend(s2,OP_SELL,Lot,Bid,Slippage,0,NormalizeDouble(Bid-TakeProfit*Point,Digits),NULL,Magic,0,clrRed);
  }
  if (Sell==0 && Buy>0 && Volume[0]<2)
  {
     MarketInfo(s1,MODE_ASK);
     OrderSend(s1,OP_BUY,Lot,Ask,Slippage,0,NormalizeDouble(Ask+TakeProfit*Point,Digits),NULL,Magic,0,clrBlue);   
  }
    if (Sell2==0 && Buy2>0 && Volume[0]<2)
  {
     MarketInfo(s2,MODE_ASK);
     OrderSend(s2,OP_BUY,Lot,Ask,Slippage,0,NormalizeDouble(Ask+TakeProfit*Point,Digits),NULL,Magic,0,clrBlue);   
  }
   return(0);
}
Arseniy Suharev
282
Arseniy Suharev 2015.04.10 11:33  
_new-rena:

у меня нет слов. еще раз прочитайте мой пост внимательно.

селл=1000

селл=2.

Чему будет равен селл?

Добавил исправленный код. 
Alekseu Fedotov
819
Alekseu Fedotov 2015.04.10 12:24  
Arsen_Syharev:
Добавил исправленный код. 
 double BID = MarketInfo(s1,MODE_BID);
Должно быть как-то так.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий