Скачать MetaTrader 5

После перекомпиляции индикатора Метатрейдер его не пересчитывает

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Делай скриншоты в MetaTrader и управляй ими в галерее!
Forex Trader
114257
Forex Trader 2006.10.15 00:39 
В Метатрейдере к графику прикреплен индикатор, который открыт в Метаэдиторе. После изменения индикатора и компиляции, изменения (в индикаторе) в Метатрейдере не появляются. Приходится удалять индикатор и прикреплять его заново. Очень неудобно.
Для примера, вот индикатор. Меняю тестовые Print'ы в функции Init() и Start(), компилирую, а реакции никакой -- в логе выдается только, что "loaded successfully". Но когда я удаляю и кидаю снова индикатор на график, то принты в логе видны.

#property indicator_color1 Red
#property indicator_chart_window

double SignalBuffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
    SetIndexBuffer(0, SignalBuffer);
    SetIndexStyle(0, DRAW_ARROW);
    IndicatorShortName("Divergence Indicator");
    for(int i = 0; i < Bars; i++)
        SignalBuffer[i] = 0.0;

Print("init2");
    return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
{
    ObjectsDeleteAll(0);
    return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{
    int counted_bars = IndicatorCounted();
    int i, limit;

    limit = Bars - counted_bars;
    
	for(i = limit; i >= 0; i--) 
	{

        if (Close[i] > Open[i])
            SignalBuffer[i] = Close[i] + Point*20;
        else
            SignalBuffer[i] = 0.0;
       // i--;
    }
    Print(counted_bars);
//----
    return(0);
  }
//+------------------------------------------------------------------+
Forex Trader
114257
Forex Trader 2006.10.16 12:20  
Ситуация очень похожа на то, что вы компилируете индикатор "чужим" редактором. Открытый клиентский терминал - из другого директория и не получает сообщений от чужого редактора
Forex Trader
114257
Forex Trader 2006.10.16 23:17  
Нет. И редактор, и терминал из одного каталога. Свойства ярлыков:
"D:\Program Files\MetaTrader 4\MetaEditor.exe"
"D:\Program Files\MetaTrader 4\terminal.exe"
Forex Trader
114257
Forex Trader 2006.10.16 23:33  
Нет. И редактор, и терминал из одного каталога. Свойства ярлыков:
"D:\Program Files\MetaTrader 4\MetaEditor.exe"
"D:\Program Files\MetaTrader 4\terminal.exe"


Фишка в том, что MetaEditor запросто может хватать "неродные" коды(если стоит несколько копий терминалов в разных директориях). Чтобы убедиться в правильности, я делаю "Сохранить как" и только потом компилю - это дает 100% гарантию. Иначе никак, несколько раз как дурак искал баги и не мог понять , почему советник не меняется после компиляции :( , искал блох там, где их нет.
Forex Trader
114257
Forex Trader 2006.10.16 23:53  
Нет, Rosh, SaveAs сохраняет в то же дерево каталога, где стоит и терминал, и эдитор. И эдитор я запускаю с того же каталога, где стоит терминал.

PS. Я работаю в отделе качества одной компании, занимающейся разработкой ПО и всегда удивляюсь -- почему разработчики задают столько вопросов перед тем, как воспроизвести ошибку и исправить ее. Неужели так сложно воспроизвести ее у себя и убедиться, а не бегать по n раз к тестерам и удивляться "почему же оно не работает"? :-)
Forex Trader
114257
Forex Trader 2006.10.17 10:21  
Daniil, а как дело обстоит с экспертами? Они перезагружаются после перекомпиляции?

PS Я работал в нескольких компаниях по разработке ПО. И везде у нас была служба quality & assurance (отдел технического контроля), которые воспроизводили клиентские баги (либо самостоятельно находили). Их инструкции по воспроизведению багов были исчерпывающими. И это - очень тяжёлый и неблагодарный труд. Вы сами работали тестером?

У нас есть несколько специальных тестеров, но они не могут воспроизвести проблему, к сожалению.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий