[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 464

 
Mepkypuu писал(а) >>
Подскажите пожаулуйста, почему эта функция не работает? Она должна возвратить количество слитых ордеров с момента последнего успешного ордера.

Если предположить что одновременно открыто не более одной позиции, то можно сделать так

  int GetLosses ()
   {  
      int Out       = 0;
      int Counter;
      for (Counter=OrdersHistoryTotal()-1;Counter >=0 ;Counter--)
      {
         OrderSelect(Counter, SELECT_BY_POS, MODE_TRADES);
         if (OrderProfit() > 0)  break;
         Out++;
      }  
      return (Out);
   }
 
Vinin >>:

Если предположить что одновременно открыто не более одной позиции, то можно сделать так


К сожалению, не работает: просто считает открытые ордера. Сам не понимаю в чем проблема, но скорее всего, не в коде.
 
Mepkypuu писал(а) >>

К сожалению, не работает: просто считает открытые ордера. Сам не понимаю в чем проблема, но скорее всего, не в коде.

Сорри

  int GetLosses ()
   {  
      int Out       = 0;
      int Counter;
      for (Counter=OrdersHistoryTotal()-1;Counter >=0 ;Counter--)
      {
         OrderSelect(Counter, SELECT_BY_POS, MODE_HISTORY);
         if (OrderProfit() > 0)  break;
         Out++;
      }  
      return (Out);
   }
 
При исчезновении истории сделок предложили мне поставить в настройках *показывать всю историю* а там такой настройки нет, терминал 4ый метатрэйдер, используеться несколькими дц. ну ненашёл такой настройки чтоб на историю повлияло.
 
kraizislot писал(а) >>
При исчезновении истории сделок предложили мне поставить в настройках *показывать всю историю* а там такой настройки нет, терминал 4ый метатрэйдер, используеться несколькими дц. ну ненашёл такой настройки чтоб на историю повлияло.

в окне история счета жмешь правую клавишу мышки и выбираешь вся история

 
Добрый день! У меня следующий вопрос. Функция start() в эксперте выполняется после каждого тика. Что будет, если я послал запрос OrderSend(), но ответ пришел минуты через две, а в это время пришло несколько тиков? Я так понимаю, пока функция start() не завершится, по новой выполнение не пойдет, ну, например, в другом потоке и т.п? Это я к тому, что не будет ситуации, когда за эти 2 минуты я пошлю еще десяток запросов? Или выполнить несколько раз OrderSend() не получится, будет занят торговый поток или еще чего? Спасибо
 
Maxim_M писал(а) >>
Добрый день! У меня следующий вопрос. Функция start() в эксперте выполняется после каждого тика. Что будет, если я послал запрос OrderSend(), но ответ пришел минуты через две, а в это время пришло несколько тиков? Я так понимаю, пока функция start() не завершится, по новой выполнение не пойдет, ну, например, в другом потоке и т.п? Это я к тому, что не будет ситуации, когда за эти 2 минуты я пошлю еще десяток запросов? Или выполнить несколько раз OrderSend() не получится, будет занят торговый поток или еще чего? Спасибо

пока выполнение функции start не завершится, эксперт не будет ожидать тиков, так что новые тики, которые проскочют до завершения обработки текущего запроса - будут не обработаны.

 
Vinin >>:

Сорри

  int GetLosses ()
   {  
      int Out       = 0;
      int Counter;
      for (Counter=OrdersHistoryTotal()-1;Counter >=0 ;Counter--)
      {
         OrderSelect(Counter, SELECT_BY_POS, MODE_HISTORY);
         if (OrderProfit() > 0)  break;
         Out++;
      }  
      return (Out);
   }



ААА! Точно! Спасибо большое! Теперь работает.

 
в индикаторе Fractals фракталы выводятся на определенном расстояни от экстремумов, как такое сделать в пользовательском индикаторе?
 
sanyooooook писал(а) >>
в индикаторе Fractals фракталы выводятся на определенном расстояни от экстремумов, как такое сделать в пользовательском индикаторе?

ну на 3 или 4 свечку вешаешь в индикаторном буфере фрактал, если условия выполняются

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