Ошибки, баги, вопросы - страница 647

 
Спасибо за сообщение, поправили это место. Будем тестировать у себя.
 

Товарищи-программисты! Нужна ваша помощь.


Мне надо сделать правку в коде МТ4. Советник-мартин выставляет серию ордеров по порядку через заданную дельту и, начиная с № какой-то нами задаваемой сделки (например с 4-ой), он начинает увеличивать эту дельту на коэффициент.
Мне нужно, чтобы эта дельта не растягивалась бесконечно, пока вся серия не закончится. А только до определенного уровня, который мы задаем в настройках (например Max_delta = 50 п.). И когда дельта станет >= Max_delta , она бы принимала это значение постоянно, пока не закончится серия. И потом все с начала.

Вот код программы, где дельта растягивается:


int Delta(int OrdNum){
if(Start_order_delta>1){
if(OrdNum>Start_order_delta){
int p=OrdNum-Start_order_delta;
return(Take_profit*MathPow(Delta_exp,p));
}
}
return(Take_profit);
}

Помогите, пожалуйста, в данный код ввести ограничение по дельте.
 

Свойство CHART_BRING_TO_TOP

Задать его можно, а вот определить текущее значение нельзя. 

ChartSetInteger(0,CHART_BRING_TO_TOP,true) - работает.

ChartGetInteger(0,CHART_BRING_TO_TOP,0) - не работает.

 
MoneyJinn:

Свойство CHART_BRING_TO_TOP

Задать его можно, а вот определить текущее значение нельзя. 

ChartSetInteger(0,CHART_BRING_TO_TOP,true) - работает.

ChartGetInteger(0,CHART_BRING_TO_TOP,0) - не работает.

Ну так все логично. Вызов ведь с тремя параметрами, или я ошибаюсь?

Используя второй вариант мы просто получим УСТАНОВКУ значения false, а не определим текущее значение.

По поводу получения значения - нужны четыре параметра (в последний и будет записано текущее значение).

bool  ChartGetInteger(
   long    chart_id,     // идентификатор графика
   int     prop_id,      // идентификатор свойства
   int     sub_window,      // номер подокна
   long&   long_var      // сюда примем значение свойства
   );
 
Interesting:

Ну так все логично. Вызов ведь с тремя параметрами, или я ошибаюсь?

Используя второй вариант мы просто получим УСТАНОВКУ значения false, а не определим текущее значение.

По поводу получения значения - нужны четыре параметра (в последний и будет записано текущее значение).


Да, вы ошибаетесь. Допустимы несколько форм записи ChartGetInteger.

Но независимо от формы записи ChartGetInteger получить текущее значение свойства CHART_BRING_TO_TOP невозможно. 

 
MoneyJinn:

Допустимы несколько форм записи ChartGetInteger.

Но независимо от формы записи ChartGetInteger получить текущее значение свойства CHART_BRING_TO_TOP невозможно. 

А какое значение возвращает второй вариант функции ChartGetInteger (4-параметрный)? И код  ошибки?

 
Yedelkin:

А какое значение возвращает второй вариант функции ChartGetInteger (4-параметрный)? И код  ошибки?

 

Значение 0; ошибка 4109 - т.е. такого свойства нет.
 
MoneyJinn:
Значение 0; ошибка 4109 - т.е. такого свойства нет.

Судя по Справочнику, данное свойство просто не поддерживается:

Для второго варианта вызова возвращает true, если данное свойство поддерживается и значение было помещено в переменную long_var, иначе возвращает false. 

 Код ошибки говорит о том же. Вопрос о том, почему свойство графика CHART_BRING_TO_TOP не поддерживается - на уровне  разработчиков.. А если свойство фактически  поддерживается, то вопрос опять же на их уровне: почему в таком случае функция ChartGetInteger возвращает  false?

 
Почему в тестере стратегий не происходит  событие OnTick. Билд 586. Я сначала думал, что ошибка у меня проге. Запустил на отладку пример Moving Average.mq5. Точку останова установил на первый оператор события OnTick. Реакции не дождался в течении часа.
 
tor30515:

Почему в тестере стратегий не происходит  событие OnTick. Билд 586. Я сначала думал, что ошибка у меня проге. Запустил на отладку пример Moving Average.mq5. Точку останова установил на первый оператор события OnTick. Реакции не дождался в течении часа.

а тестер в дебаг выгружается?
Причина обращения: