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

 
Я опять Димку видел!! Он ленточку прицепил к машине. А теперь газует, газует, лампочка моргает, а на спидометре нет ничего! Переживает, что завтра на работу не сможет выехать! Какие мнения?
 
villy:
Я опять Димку видел!! Он ленточку прицепил к машине. А теперь газует, газует, лампочка моргает, а на спидометре нет ничего! Переживает, что завтра на работу не сможет выехать! Какие мнения?

Лечиться не пробовали?
 
Может, кто решал и возможно ли такое решение в мт4. Не нашел. Нужен советник или скрипт, который следит за торговлей другова советника (советник торгует на разных парах с одинаковым магиком). И после закрытия каждого ордера производилась проверка на достижение прибыли по магику (предварительно введённых в настройки следящего советника). При прибыли большей или равной, следящий советник должен останавливать торговлю Советником. Кроме этого торгующего советника, на счете торгуют и другие. Т.к. нашел Советник EquityLimits(_http://mtexperts.narod.ru/files/EquityLimits_EA.ex4) следит за текущей разницей между балансом и средствами счёта и в случае достижения указанных ограничений он закрывает все ордера и отключает все советники (нажимает кнопку "Советники" на панели инструментов). Этот момент не устраивает.
 
granit77:

42
доброго время суток. у меня тут очень странное дело не поможете. Я тестирую советника на историй с 2004 по 2012 и результат один, положительный, а потом делаю тест на периоде с 2009 по 2012 и он просто совершенно другой. большое количество ордеров, более 20000 за период 8 лет. когда при тесте  большом, то по гистограмме прибыльности видно что с 2009 по 2012 прибыль чистая и красивая а когда тестируешь любое расстояние меньше 2009 то просто ХАОС.  вы случайно не в курсе что это может быть. Заранее спасибо ребята :)


Ну сразгону сказал бы что у Вас советник переоптимизорован... Но  если с 2004 по 2012 а потом с 2009 по 2012 то скорее всего в промежутке с 2004 по 2008 включительно какой ордер завис незакрытый, который удачно( а может неудачно) закрывается по окончанию тестирования.
 
evgenGX:
Может, кто решал и возможно ли такое решение в мт4. Не нашел. Нужен советник или скрипт, который следит за торговлей другова советника (советник торгует на разных парах с одинаковым магиком). И после закрытия каждого ордера производилась проверка на достижение прибыли по магику (предварительно введённых в настройки следящего советника). При прибыли большей или равной, следящий советник должен останавливать торговлю Советником. Кроме этого торгующего советника, на счете торгуют и другие. Т.к. нашел Советник EquityLimits(_http://mtexperts.narod.ru/files/EquityLimits_EA.ex4) следит за текущей разницей между балансом и средствами счёта и в случае достижения указанных ограничений он закрывает все ордера и отключает все советники (нажимает кнопку "Советники" на панели инструментов). Этот момент не устраивает.

Во первых достигнуть прибыли по магику... это что-то новое))) Ну а если куча советников почему бы каждому из них не использовать глобальные переменные
 

помогитееее!!!!

как получить количество убыточных ордеров(закрытых в истории) из 10 последних закрытых ордеров ???

есть конечно функция, но ищет определенный один ордер

вот:

double WW1(int stop,int mn=-1, string sy="", int op=-1 ) {
  datetime t;
  double   ocp, osl;
  int      dg, i, j=-1, k=OrdersHistoryTotal()  -1 ;    <-- здесь можно менять порядковый номер ордера с конца(-1 это предпоследний, если вооще -1 убрать это последний, и т.д.)

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
  if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
   
    double rr=OrderProfit();
   
   
  }
  return(rr);
}


с помощью этой функции естественно определяю типа убыт или приб 

может есть у кого функции которые сразу читает последние 10 ордеров, и дает кол-во убыт.ордеров из них??

 

есть конечно предложение, из этой функции сделать тип функции bool , получать ответы true или false,

но тогда нужно будет 10 таких функций с разными номерами (от-1 до -9) и тогда получать количество ложей и правды

тогда может кто подскажет как получать кол-во фал и лож?

но это куча операций и формул,я считаю это извращением

 
evgenGX:
Может, кто решал и возможно ли такое решение в мт4. Не нашел. Нужен советник или скрипт, который следит за торговлей другова советника (советник торгует на разных парах с одинаковым магиком). И после закрытия каждого ордера производилась проверка на достижение прибыли по магику (предварительно введённых в настройки следящего советника). При прибыли большей или равной, следящий советник должен останавливать торговлю Советником. Кроме этого торгующего советника, на счете торгуют и другие. Т.к. нашел Советник EquityLimits(_http://mtexperts.narod.ru/files/EquityLimits_EA.ex4) следит за текущей разницей между балансом и средствами счёта и в случае достижения указанных ограничений он закрывает все ордера и отключает все советники (нажимает кнопку "Советники" на панели инструментов). Этот момент не устраивает.
Два советника могут м\у собой "общаться" через глобальные переменные терминала. Следящий советник после наступления означенного события (закрытия всех ордеров) создаёт GV-переменную, например, "Symbol_STOP", и присваивает ей значение 1. А торгующий советник мониторит наличие этой переменной, и если обнаруживает её и значение у неё 1, то ВЫХОД (return).
 
gheka:

помогитееее!!!!

как получить количество убыточных ордеров(закрытых в истории) из 10 последних закрытых ордеров ???

с помощью этой функции естественно определяю типа убыт или приб 

может есть у кого функции которые сразу читает последние 10 ордеров, и дает кол-во убыт.ордеров из них??


вот так это решается
int num_losed,tt,check=10;
for(tt=OrdersHistoryTotal()-1;tt>=0;tt--) if(OrderSelect(tt,SELECT_BY_POS,MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
   if(OrderProfit()<0) num_losed++;
   check--;
   if(check<=0) break;

   }

 

 
keep87:


когда код перешагивает за over 1000 строк, начинаешь писать компактно )

также в MT4 страдает быстродействие, особенно когда проводишь тесты. Лаконичный вариант исполняется быстрее.  


 На сколько я слышал, компилятор всё " пустоты " убирает при компиляции кода. По логике должно быть фиолетово какой вариант написать для быстродействия, ведь на выходе в скомпилируемом файле будет тоже самое " без пустот ".

 Разве не так? 

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