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

 
Fox_RM:

Да вот именно в том и проблема, что я не знаю как перебор по дням или часам сделать. PERIOD_D1 выберет новый день, а время как извлечь?

Я еще пробовал конкретное присвоение времени делать D'00:00:00', в справочнике написано, что по времени можно, но почему-то не прошло?


Я показал как выбрать время открытия дня
 

Есть проблемка.

Хочу в советнике во время тестирования прорисовывать кое-какие линии, в частности на индикаторе Accumulation/Distribution

В модуле программы вызывается этот индикатор

double myAD = iAD(Symbol(), 0, 1);

Сама проблема в следующем

int iWin_IDx = WindowFind("A/D");

- не находится окно индикатора, в данном случае iWin_IDx=-1;

Пробовал вставлять код в функцию init() результат тот же

Функция WindowsTotal() возвращает 1, показывая тем самым, что имеется только одно окно, - окно с котировками валюты.

Я думаю, что проблема в том, что окно индикатора появляется уже после выполнения советника – как сделать так чтобы оно появилось до выполнения тестирования.

 
LuckyStrike:

Что-то не хочет, выдает ошибку 138( Пытаюсь трейлинг сделать)


138 - Новые цены (реквот)

В Вашем коде

int start()
 {
    if (OrdersTotal()==0 && Open>Bid)
      OrderSend (Symbol(),OP_SELL,Lots,Ask,3,Bid+150*Point,Bid-150*Point,0,Red);//Если пятизначные котировки, тройку измените на 30 
      
         if(OrderSelect(OrdersTotal()-1, SELECT_BY_POS, MODE_TRADES))
           if (Bid-(Bid+150*Point)<-150)//От бид отнимаем бид? Упрощаем выражение и от бида вообще ничего не осталось, т.е. так if(150*Point<-150) ?
          {
            OrderModify(OrderTicket(),OrderOpenPrice(),Bid+150*Point,Bid-150*Point,0,Red);
          }
 }
 
Спасибо, там и правда нужно было 30 поставить. Но OrderModify почему-то не срабатывает, по идее стоп-лосс должен двигаться за ценой.
 
LuckyStrike:
Спасибо, там и правда нужно было 30 поставить. Но OrderModify почему-то не срабатывает, по идее стоп-лосс должен двигаться за ценой.


Потому, что не выполняется условие if (150*Point<-150).

 
Так выполняется же, но не работает) Там от бид отнимаем стоп-лосс, и если разница меньше -150, то по идее OrderModify должен подвигать спол-лосс в след за ценой, но этого не происходит)
 
LuckyStrike:
Так выполняется же, но не работает)


У Вас Point отрицательное значение, меньше -1? В любом другом случае условие невыполнимо.

И даже в первом случае условие невыполнимо - Point предопределенная переменная и присвоить ей свое значение (в том числе отрицательное) у Вас не получится.

--------

Вывод: Ваше условие невыполнимо :)

 

доброго времени суток!есть mt4 одного ДЦ и mt4 другого.Перенести сервера(.srv)в папке \Program Files\MetaTrader 4\config невопрос а вот с mt4 и mt4Мультитерминал(ДЦ тоже разные) нефурычит......

изменял IPСерва в .srv/пробывал много ДЦ/пробовал переименовывать НЕПОЛУЧАЕТЬСЯ................АК. НЕАКТИВЕН И НЕТ ГРАФИКА

как это сделать??????

 
Vinin:

Я показал как выбрать время открытия дня
пОнято! Спасибо. Вопрос снят.
 
Snik75I:

Есть проблемка.

Хочу в советнике во время тестирования прорисовывать кое-какие линии, в частности на индикаторе Accumulation/Distribution

В модуле программы вызывается этот индикатор

double myAD = iAD(Symbol(), 0, 1);

Сама проблема в следующем

int iWin_IDx = WindowFind("A/D");

- не находится окно индикатора, в данном случае iWin_IDx=-1;

Пробовал вставлять код в функцию init() результат тот же

Функция WindowsTotal() возвращает 1, показывая тем самым, что имеется только одно окно, - окно с котировками валюты.

Я думаю, что проблема в том, что окно индикатора появляется уже после выполнения советника – как сделать так чтобы оно появилось до выполнения тестирования.

А вы повесьте на график теста индикатор до начала тестирования
Причина обращения: