Низкий и высокий - страница 2

 

Как далеко уходит i? Что такое число Барс-1?

 
if(Hour() == 17 && gethighlows == true)
{
gethighlows = false;
HighValue=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 8 баров M15 между 15.00-17.00
LowValue=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 8 M15 баров между 15.00-17.00
}
 
fxcourt:
if(Hour() == 17 && gethighlows == true)
{
gethighlows = false;
HighValue=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 8 баров M15 между 15.00-17.00
LowValue=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 8 M15 баров между 15.00-17.00
}

Не работает! Я действительно не знаю, что делать...

 
01005379:

[...]

Это не работает! Я действительно не знаю, что делать...

Каким образом это не работает? Значения неправильные? Они вообще не вычисляются?

 
jjc:

Каким образом это не работает? Значения неправильные? Они вообще не вычисляются?

Не могу разобраться. У меня есть ордер на открытие покупки, когда цена больше HighValue и наоборот для продажи.

Как записать эти значения на монитор? With Print("High value: ",HighValue);

Я думаю, что это единственный способ узнать, что это за значения, но они не высокие/низкие между 15.00 и 17.00.

 
используете ли вы график m15?
 

Да. Я думаю, что лучше всего поместить код здесь, и тогда, возможно, кто-то найдет решение.


if(Hour() == 17 && gethighlows == true)
{
gethighlows = false;
TopRange=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 8 баров M15 между 15.00-17.00
LowRange=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 8 M15 баров между 15.00-17.00
}

//-----

if (Hour() ==0 && (Minute()==0 && (Seconds()==1)))
{
TopRange=0;
LowRange=0;
bought=false;
sold=false;
sessionfound=false;
}
//-----
bool TradeDayOK=(DayOfWeek()>=1) && (DayOfWeek()<=5);
if ((DayOfWeek()==1) && (Trade_on_Monday==true)) TradeDayOK=true;

//-----
total=OrdersTotal();
if(total<1)
{
if(AccountFreeMargin()<(1000*Lots))
{
Print("У нас нет денег. Свободная маржа = ", AccountFreeMargin());
return(0);
}
if(newbar==Time[0])return(0);
else newbar=Time[0];

if(TradeDayOK)
{
if(sessionfound && ( (Hour()>=17) && (Minute()>15) && Hour()<=23)
{
if ((bought==false) && (Low[1] > (TopRange+Point*3)))
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-(StopLoss*Point),Ask+(TakeProfit*Point),0,0,Blue);
bought=true;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Открыт ордер BUY : ",OrderOpenPrice());
}
else Print("Ошибка при открытии ордера BUY : ",GetLastError());
return(0);
}
if ((sold==false) && (High[1] < (LowRange-Point*3) ))
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+(StopLoss*Point),Bid-(TakeProfit*Point),0,0,Red);
sold=true;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print(" Открытордер SELL: ",OrderOpenPrice());
}
else Print("Ошибка при открытии ордера SELL : ",GetLastError());
return(0);
}
return(0);
}
return(0);
}
}

 
Что происходит, когда вы запускаете ea
 
Он открывает позиции на покупку и продажу, но не на нужных уровнях.
 
01005379:

Да. Я думаю, что лучше всего поместить код здесь, и тогда, возможно, кто-то найдет решение.


if(Hour() == 17 && gethighlows == true)
{
gethighlows = false;
TopRange=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 8 баров M15 между 15.00-17.00
LowRange=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 8 M15 баров между 15.00-17.00
}

//-----

if (Hour() ==0 && (Minute()==0 && (Seconds()==1)))
{
TopRange=0;
LowRange=0;
bought=false;
sold=false;
sessionfound=false;
}
//-----
bool TradeDayOK=(DayOfWeek()>=1) && (DayOfWeek()<=5);
if ((DayOfWeek()==1) && (Trade_on_Monday==true)) TradeDayOK=true;

//-----
total=OrdersTotal();
if(total<1)
{
if(AccountFreeMargin()<(1000*Lots))
{
Print("У нас нет денег. Свободная маржа = ", AccountFreeMargin());
return(0);
}
if(newbar==Time[0])return(0);
else newbar=Time[0];

if(TradeDayOK)
{
if(sessionfound && ( (Hour()>=17) && (Minute()>15) && Hour()<=23)
{
if ((bought==false) && Ask >= TopRange)

{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-(StopLoss*Point),Ask+(TakeProfit*Point),0,0,Blue);
bought=true;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Открыт ордер BUY : ",OrderOpenPrice());
}
else Print("Ошибка при открытии ордера BUY : ",GetLastError());
return(0);
}
if ((sold==false) && Bid <= LowRange)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+(StopLoss*Point),Bid-(TakeProfit*Point),0,0,Red);
sold=true;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Открыт ордер SELL : ",OrderOpenPrice());
}
else Print("Ошибка при открытии ордера SELL : ",GetLastError());
return(0);
}
return(0);
}
return(0);
}
}

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