Низкий и высокий - страница 2 12345 Новый комментарий jurcekmpt 2009.08.25 10:16 #11 Как далеко уходит i? Что такое число Барс-1? raphael 2009.08.25 11:51 #12 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} jurcekmpt 2009.08.25 13:36 #13 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} Не работает! Я действительно не знаю, что делать... JC 2009.08.25 13:56 #14 01005379: [...] Это не работает! Я действительно не знаю, что делать... Каким образом это не работает? Значения неправильные? Они вообще не вычисляются? jurcekmpt 2009.08.25 14:06 #15 jjc: Каким образом это не работает? Значения неправильные? Они вообще не вычисляются? Не могу разобраться. У меня есть ордер на открытие покупки, когда цена больше HighValue и наоборот для продажи. Как записать эти значения на монитор? With Print("High value: ",HighValue); Я думаю, что это единственный способ узнать, что это за значения, но они не высокие/низкие между 15.00 и 17.00. Скрипты: StopAndTake MT5 Сырые идеи Обсуждение статьи "Автоматический поиск raphael 2009.08.25 14:11 #16 используете ли вы график m15? jurcekmpt 2009.08.25 14:13 #17 Да. Я думаю, что лучше всего поместить код здесь, и тогда, возможно, кто-то найдет решение. 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); } } Спрашивайте! Как кодировать? Как одолеть OrdersTotal(); raphael 2009.08.25 14:15 #18 Что происходит, когда вы запускаете ea jurcekmpt 2009.08.25 14:20 #19 Он открывает позиции на покупку и продажу, но не на нужных уровнях. raphael 2009.08.25 14:28 #20 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); } } 12345 Новый комментарий
Как далеко уходит i? Что такое число Барс-1?
Не работает! Я действительно не знаю, что делать...
[...]
Это не работает! Я действительно не знаю, что делать...
Каким образом это не работает? Значения неправильные? Они вообще не вычисляются?
Каким образом это не работает? Значения неправильные? Они вообще не вычисляются?
Не могу разобраться. У меня есть ордер на открытие покупки, когда цена больше HighValue и наоборот для продажи.
Как записать эти значения на монитор? With Print("High value: ",HighValue);
Я думаю, что это единственный способ узнать, что это за значения, но они не высокие/низкие между 15.00 и 17.00.
Да. Я думаю, что лучше всего поместить код здесь, и тогда, возможно, кто-то найдет решение.
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);
}
}
Да. Я думаю, что лучше всего поместить код здесь, и тогда, возможно, кто-то найдет решение.
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);
}
}