[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 387

 
Dimka-novitsek:
Извините,я не могу перейти по ссылке,у меня что-то не палучаецца.
int OrdersHistoryTotal( )
Возвращает количество закрытых позиций и удаленных ордеров в истории текущего счета, загруженной в клиентском терминале. Размер списка истории зависит от текущих настроек вкладки "История счета" терминала.
Пример:
  // retrieving info from trade history
  int i,accTotal=OrdersHistoryTotal();
  for(i=0;i<accTotal;i++)
    {
     //---- check selection result
     if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
       {
        Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
        break;
       }
     // работа с ордером ...
    }
 
Спасибо!!
 

Подскажите пожалуйста, как правильно указать в условии наименование инструмента уже открытого ордера? Если открыт ордер EURUSD_bay, то надо чтобы открылся ордер EURJPY_sell. По моему тут что то не правильно. Если убрать из строчки OrderSymbol()=="EURUSD", ордер откроется, но для открытия третьего ордера все равно придется решать этот вопрос.

if((OrdersTotal()==1)&&(OrderType()==OP_BUY && OrderSymbol()=="EURUSD"))
     {
     TimeBar=Time[0];
     OPENORDER2("Sell");
     }
 

Ребята может кто проконсультируете если не трудно как написать код что бы сделки в определенное время совершались. Смотрел в FAQ ни чего не понял. Я хоть и программер но с этим языком сплошной конфликт.

Если по подробнее то нужно следующее в 8-00 каждый день нужно брать часовой бар и от него открывать отложники. Закрывать отложники надо либо по истечению срока либо по TP. и опять в 8-00 брать бар и т.д. Код ниже. Гемер в том что первая сделка работает четко по критериям а вот потом что зря получается. Если не трудно помогите....

//Учет закрытых ордеров-----------------------------------------------
  if (OrderSelect(Ticket,SELECT_BY_TICKET,MODE_HISTORY)==true) or_cl=OrderCloseTime();
   else or_cl=StrToTime(TimeToStr((TimeCurrent()+24*60*60), TIME_DATE)+" "+17+":"+59);
     
   // Предварит.обработка
  
  time_op=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+8+":"+0);
  time_bar=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+7+":"+0);
  Cur_time=StrToTime(TimeToStr(TimeCurrent(), TIME_SECONDS));
 
 if (Cur_time>or_cl)
   {time_op+=24*60*60;
      time_bar+=24*60*60;}
    else {time_op-=24*60*60;
          time_bar-=24*60*60;}  
  
  if (Cur_time<=time_op && Total==0)return;
  // Определяем часовой квадрат--------------------------------------------------------------
   Hit=NormalizeDouble(High[iBarShift(NULL,PERIOD_H1,time_bar)],5);
   Lo=NormalizeDouble(Low[iBarShift(NULL,PERIOD_H1,time_bar)],5); 


 
coolon:

Ребята может кто проконсультируете если не трудно как написать код что бы сделки в определенное время совершались. Смотрел в FAQ ни чего не понял. Я хоть и программер но с этим языком сплошной конфликт.

Если по подробнее то нужно следующее в 8-00 каждый день нужно брать часовой бар и от него открывать отложники. Закрывать отложники надо либо по истечению срока либо по TP. и опять в 8-00 брать бар и т.д. Код ниже. Гемер в том что первая сделка работает четко по критериям а вот потом что зря получается. Если не трудно помогите....



https://www.mql5.com/ru/forum/130550

 

Извините,я тут чушь какую-то написал,если можно,покажите,в каком месте я совсем баранн.

Позы вроде совсем не открываются,ничего не происходит.

//+------------------------------------------------------------------+
//| для лавин.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern double stoploss=0; extern double takeprofit=20;extern int otstup=20; extern datetime expiration=0;

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int tiket,tikett;double volume=0.1;int i=0,R1,R2,A=1 ;double price=PRICE_OPEN;
R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss;


int start()
{
//----

OrderSelect( tiket,SELECT_BY_TICKET, MODE_TRADES );
if(OrderSymbol()==Symbol()){
if (OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 ){i=OrdersTotal() ;
if (i<2){
tiket= OrderSend( Symbol(), OP_BUYSTOP, volume*A, price +otstup*Point, Point* 3, R1, PRICE_OPEN+takeprofit*Point+otstup, "OP_BUYSTOP", 1000, expiration, Red);
Alert ("OP_BUYSTOP", GetLastError( ));
tikett= OrderSend( Symbol(), OP_SELLSTOP, volume*A, price -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP", 2000, expiration,C'0,128,255' );
Alert ("OP_SELLSTOP", GetLastError( ));
i=OrdersTotal() ; } } }

//----
return(0);
}
//+------------------------------------------------------------------+

 
double stoploss=0
На ноль делить нельзя.
 
Люди добрые помогите!!!!!! Нужен скрипт закрывающий позиции любые на средней линии Боллинджера!!!!! Пожалуйста!!!!
 
alexr7:
Люди добрые помогите!!!!!! Нужен скрипт закрывающий позиции любые на средней линии Боллинджера!!!!! Пожалуйста!!!!
А что для вас является критерием того, что позиция на средней линии боллинджера?
 
artmedia70:
А что для вас является критерием того, что позиция на средней линии боллинджера?
Огромное спасибо за быстрый отклик!!!!!!!!!!!!!! Критерий - стандартный индикатор Bollinger Bands с параметрами: период 20, сдвиг 0, отклонение 2, Weighted Close(HLCC/4)!!!!!!!
Причина обращения: