Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 730

 

Добрый день всем присутсвующим. Мой вопрос скорее не к трейдерам, а к программистам МКЛ4, потому что двое так и не смогли мне помочь, в том числе и сам разработчик кода.

Суть такова: нашел вроде бы неплохой шаблон советника для торговли на новостях, который запрещает торговлю в задаваемые периоды до и после выхода новости. Я захотел его переделать так, чтобы он наоборот, открывал позицию только через некоторое время после выхода новости. Вроде не так уж сложно даже для меня - ввел дополнительный флаг, который запрещает торговлю всегда, кроме оговоренного момента после выхода новости. Все временные промежутки задаются в настройках.

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

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

Спасибо.

 
novichok2018:

Добрый день всем присутсвующим. Мой вопрос скорее не к трейдерам, а к программистам МКЛ4, потому что двое так и не смогли мне помочь, в том числе и сам разработчик кода.

Суть такова: нашел вроде бы неплохой шаблон советника для торговли на новостях, который запрещает торговлю в задаваемые периоды до и после выхода новости. Я захотел его переделать так, чтобы он наоборот, открывал позицию только через некоторое время после выхода новости. Вроде не так уж сложно даже для меня - ввел дополнительный флаг, который запрещает торговлю всегда, кроме оговоренного момента после выхода новости. Все временные промежутки задаются в настройках.

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

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

Спасибо.

Либо зосоряете эфир, либо во фриланс.
 

Приветствую. 

Есть индикатор DivergenceSolution, который создает объекты "arrow", те стрелка на графике, с которых нужно получить данные

Можно ли нормально включить его для тестирования, и если да, то как? 

input-параметры индикатора неизвестны, а при начале тестирования отображается только их малая часть. А при такой записи 

b0 = iCustom(NULL, 0, "DivergenceSolution", 0, 1);

выдает ошибки 


 
Artyom Trishkin:
Либо зосоряете эфир, либо во фриланс.

Означает ли это, что вы беретесь решить задачку?

 

Люди, такое дело, есть небольшой опыт работы с ООП на java, процедуркой пользовался только на C++ на уровне "Hello, world!".

Необходимо раздробить программу на несколько частей, точнее отделить некоторые большие функции, чтобы не читать макаронину 1000+ строк, я так понял необходимо создать отдельные файлы, из которых потом импортировать эти функции, но есть одна деталь. Эти функции я писал с использованием(и возможным изменением) глобальных переменных своего експерта, а без их инициализации обособленная функция, понятное дело, компилиться не станет. 

Так вот вопрос в чем: как решить проблему красиво, как это обычно делается в С++?

1) Тупо задать все глобальные переменные входящими параметрами в функции по ссылке? Это будет пипец громоздко.

2)А если обьявить все те же глобальные переменные в отельном файле этой функции, а потом импортировать ее(функцию) и использовать в основной программе, то она будет корректно работать?

 

День добрый. Решил выводить в советнике на экран атр и спред. Подскажите, пожалуйста, как сделать спред в 2 знака, а атр соответственно  паре

int Spread=(int)MarketInfo(Symbol(),MODE_SPREAD);
double atr1440=iATR(Symbol(),1440,22,0);
Comment(      
           "atr1440 = " + DoubleToString(atr1440)+ "\n" +
           "Spread = " + DoubleToString(Spread));


 

 
Carcass77:

День добрый. Решил выводить в советнике на экран атр и спред. Подскажите, пожалуйста, как сделать спред в 2 знака, а атр соответственно  паре


 

Через запятую вторым параметром. Ведь есть же подсказки при написании кода в редакторе. 
 
Artyom Trishkin:
Через запятую вторым параметром. Ведь есть же подсказки при написании кода в редакторе. 

Спасибо. Я правильно понимаю, что в данном виде я не размер знаков, ни цвет изменить не могу?

 
Carcass77:

Спасибо. Я правильно понимаю, что в данном виде я не размер знаков, ни цвет изменить не могу?

Размер знаков можете, цвет нет.



string  DoubleToString

        double  value,      // число 

        int     digits=8    // кол-во знаков после запятой 

        );

 
Alekseu Fedotov:

Размер знаков можете, цвет нет.



string  DoubleToString( 

        double  value,      // число 

        int     digits=8    // кол-во знаков после запятой 

        );

Простите, я имел ввиду, размер шрифта