[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 337

 

Все я разобрался нашел файл. Там надо было программе дать права администратора чтобы она могла в файл сохранять.

Сейчас встал другой вопрос.

Как определить последний номер операции чтобы вставить в OrderSelect()?

Я делаю так

 int total=OrdersHistoryTotal();

Print("total " + total);
OrderSelect(total,SELECT_BY_POS,MODE_HISTORY);
FileWrite(handle,"OrderTicket : " + OrderTicket(),", OrderLots : " + OrderLots(),", OrderType : " + OrderType(),", OrderClosePrice : " + OrderClosePrice());

Пишет что тотал = 322

Но в файле нули

 

Я сделал так

OrderSelect(total-1,SELECT_BY_POS,MODE_HISTORY);

И все заработало ))

Это правильно или может вызвать ошибку со временем?

Т.е. может случайно выдать значение не именно последнего ордера в истории, а какого нибудь другого?

 
перебор ордеров site:mql4.com
 

подскажите, есть ли разница, если писать

if(условие)
{
   if(условие)
   {
      if(условие)
      {
         ...
      }
   }
}

или

if(условие && условие && условие)
{
   ...
}
 
быстродействие сложных условий site:mql4.com
 

Почему у этого "трала" в тестере ежесекундно и в больших количествах возникает ошибка " OrderModify error 1" ? Логи просто разбухают до гигабайтов... Что нужно исправить?

void Stop() {

 int    i, o=OrdersTotal();
 for (i=0; i<o; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
     if (OrderType()==OP_BUY) {
        if (OrderOpenPrice()>OrderStopLoss()&&OrderOpenPrice()-OrderStopLoss()>StopLoss*Point) {
           OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-StopLoss*Point,OrderTakeProfit(),0,CLR_NONE);
          }
         }
      if (OrderType()==OP_SELL) {
         if (OrderOpenPrice()<OrderStopLoss()&&OrderStopLoss()-OrderOpenPrice()>StopLoss*Point) {
            OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+StopLoss*Point,OrderTakeProfit(),0,CLR_NONE);
          }
      }
      }
      }
 
  return(0);
}
 
Google:
быстродействие сложных условий site:mql4.com
Есть конечно и здравый смысл в намёках на поиск, но уж тут-то можно было просто написать: да, есть. И в двух словах объяснить, что использование логического сравнения в 4-ке организовано неоптимально.
 
artmedia70:
Есть конечно и здравый смысл в намёках на поиск, но уж тут-то можно было просто написать: да, есть. И в двух словах объяснить, что использование логического сравнения в 4-ке организовано неоптимально.
А может Google хочет стать модератором?
 
Shniperson:

Почему у этого "трала" в тестере ежесекундно и в больших количествах возникает ошибка " OrderModify error 1" ? Логи просто разбухают до гигабайтов... Что нужно исправить?

Нужно не пытаться модифицировать ту же самую величину. Если, например, Стоп находится на 1.2300 и вы его модифицируете на 1.2300, то будет вам такая ошибочка - модифицировать-то нечего. Делайте проверку на равенство модифицируемых значений
 
snail09:
А может Google хочет стать модератором?
Иль президентом Всея-Руси??? :)