Новый клиентский терминал MetaTrader 4 build 202 - страница 3

 
Если значения индикатора нужны в эксперте, то и вызывайте индикатор из эксперта, не надо никаких глобальных переменных. Не надо сильно мудрить.

Возьмём Ваш коммент:
Comment(iWPR(NULL,60,9,iBarShift(NULL,60,Time[0])));

Смею предположить, что эксперт тестируется на таймфрейме, большем чем H1 (иначе зачем смещение вычислять через iBarShift?). То есть, при визуальном тестировании на графике присутствует индикатор, значения которого Вы визуально сравниваете с комментом. Вы точно на часовке тестируете?

Да, совершенно верно, на другом ТФ. Только не большем, а меньшем, чем Н1. На М5. И сначала я визуально сравнивал с периодом Н1, а потом написал индикатор "часовой для М5", что б всё "под руками" было. Ну и всякие непонятки в тестере происходят. Алгоритм торговли совершенно не соответствует линии индикатора. Например, в алгоритме написано покупать, когда значение индикатора больше 70. А советник покупает, когда линия почти на нуле лежит. Отсюда и появился коммент. У себя я не вставлял вызов индикатора в коммент. Значение через iCustom() присваивается переменной. Её я собственно, и вывел на экран, чтоб сличить значения самого индикатора с значениями индикатора, которые эксперт получает. Это только здесь я засунул вызов индикатора в коммент. Для краткости. Извините за некорректность.

А глобальную переменную я на всякий случай попробовал. Только для сравнения.
 
Получается, что для принятия решения Вы используете стандартный iWPR (только с часовки), а для визуального анализа свой индикатор "часовой для M5"?

Может, этот индикатор с ошибками написан? Тогда надо было сразу представить код здесь. И сразу описать условия использования. Это - гораздо более эффективно, чем беспредметно препираться (я не сразу и понял о чём действительно речь).
 
Да в эксперте используется стандартный, только с часовки. А свой написан только для визуализации.

    double w0[2];
    w0[1]=iWPR(NULL,60,9,iBarShift(NULL,60,Time[1]))+100;
    w0[0]=iWPR(NULL,60,9,iBarShift(NULL,60,Time[0]))+100;



И дальше просто условия: больше 70 - бай, меньше 30 - селл. И поведение советника совершенно не соответствует значению индикатора (в окне индикатора). Т.е. повторю, линия индикатора лежит почти на нуле, значение индикатора 3.2371, а советник покупает. И наоборот. Я вывел значения переменных в коммент и увидел - бары на М5 телепаются, значения в комменте летают, а линия индикатора (и значение индикатора в окне индикатора) в это время не меняются.

 
Ну и ещё дополнительный вопрос возник. В формуле расчёта WPR присутствует цена закрытия. И, собссно, на нулевом баре, поскольку цена меняется, значения индикатора тоже должно хоть немного, но меняться. А индикатор на нулевом баре стоит, как припаянный. Как это делается? Может я просто использую эту фишку у себя? Меня и такой вариант устроит.
 
А это сам индикатор, который используется на М5. И который используется только для визуализации (чтоб не прыгать с одного ТФ на другой).
#property  indicator_separate_window
#property  indicator_buffers 1
#property  indicator_color1  Lime
#property indicator_maximum 100
#property indicator_minimum 0
#property indicator_level1 70
#property indicator_level2 50
#property indicator_level3 30
//---- indicator parameters
extern int per=60;
//---- indicator buffers
double WPR[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
  SetIndexStyle (0,DRAW_LINE);
  SetIndexBuffer(0,WPR);
  SetIndexLabel (0,"iWPR");

  IndicatorShortName("iWPR(9)");

  return(0);
}
//+------------------------------------------------------------------+
int start()
{
  int limit,i,counted_bars=IndicatorCounted();
  limit=Bars-counted_bars;
  if(counted_bars>0) limit++;
  for(i=limit-1; i>=0; i--)
  { WPR[i]=iWPR(NULL,per,9,iBarShift(NULL,per,Time[i]))+100; }

  return(0);
}
//+------------------------------------------------------------------+
int deinit() { return; }
//+------------------------------------------------------------------+



 
Компания WHC использует Ваш терминал (у меня там счет).
При открытии позиции с маркета выдается ошибка "Неверный SL или TP" если в поля SL и/или TP введены значения.
После открытия ордера без SL и TP его можно модифицировать и ввести те самые "неверные" значения.

Не могли бы разработчики устранить эту ошибку?

С отложенными ордерами проблем нет.
 
Компания WHC использует Ваш терминал (у меня там счет).
При открытии позиции с маркета выдается ошибка "Неверный SL или TP" если в поля SL и/или TP введены значения.
После открытия ордера без SL и TP его можно модифицировать и ввести те самые "неверные" значения.

Не могли бы разработчики устранить эту ошибку?

С отложенными ордерами проблем нет.

Da net, vse rabotaet kak nado. Vi uvereni 4to vistavliaete pravilnie zna4eniya v polia SL i TP? Vot Vi poprobuyte vistavity SL pri pokupke VISHE ceni, pokaget osibku, ili pri prodage SL nige ceni, toge budet Vam osibka. A esli delaty vse kak nado, i rabotaet vse kak nado :)
 
Нельзя заранее выставить стопы для ордера Market Execution, так как неизвестно, по какой цене он будет открыт. После того, как ордер открыт, уже можно выставлять стопы.

Это - не ошибка. Это - особенность Market Execution
 
Нельзя заранее выставить стопы для ордера Market Execution, так как неизвестно, по какой цене он будет открыт. После того, как ордер открыт, уже можно выставлять стопы.

Это - не ошибка. Это - особенность Market Execution

Ясно. Тогда почему у Альпари можно выставить? Разные настройки серверной части?
 
OLD, а Вы не путаете Market Execution с Request Execution или Instant Execution?
Причина обращения: