Как можно програмно запретить тестеру проход по истории при определенных условиях?

 

Есть два параметра : x, y

Условие x>y, при не выполнении этого условия смысл работы советника теряется.

Как сделать так чтобы тестер проходил по истории только при исполнении данного условия?

 
В начале кода ввести строку: if(x<=y) return(0);
 
FION >>:
В начале кода ввести строку: if(x<=y) return(0);

Если эта строка в блоках start() или init(), то все равно прогоняет по истории и получает сделок 0 и это бешенное время.


PS. И если в init() вставить строку: if(x<=y) deinit() тоже гонит по истории.

 
BoraBo >>:

Есть два параметра : x, y

Условие x>y, при не выполнении этого условия смысл работы советника теряется.

Как сделать так чтобы тестер проходил по истории только при исполнении данного условия?

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

extern int y=15;
extern int delta=3;
........................
int x=y+delta;
 
granit77 >>:

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

Согласен, тоже думал над заданием зависимостей, а не заданием явных значений.

Условие, похоже, некорректно упростил. У х тоже есть свой предел например 100 и с простой дельтой опять большое количество ненужных проходов.

Ибо дельту прогоняем от 1 до 99, и при у=99 нужен только один проход (тк х<=100), а будет 99.

Реальное условие такое :

z=480

x*3<z

y*2<x

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

 
BoraBo >>:

Можно в extern задавать количество проходов, т.е. оптимизация по одному параметру)

В init() задать каждому проходу свои значения переменных.

 
Swan >>:

Можно в extern задавать количество проходов, т.е. оптимизация по одному параметру)

В init() задать каждому проходу свои значения переменных.

+1

 
Swan >>:

Можно в extern задавать количество проходов, т.е. оптимизация по одному параметру)

В init() задать каждому проходу свои значения переменных.

Иными словами в extern задаем индекс по которому осуществляется проход, а в init() осуществляем заполнение массива корректными данными ?


ЗЫ. И в start() уже используем элемент данного массива в качестве входных параметров.

 
BoraBo >>:

Иными словами в extern задаем индекс по которому осуществляется проход, а в init() осуществляем заполнение массива корректными данными ?


ЗЫ. И в start() уже используем элемент данного массива в качестве входных параметров.

Да.

Проще наверное, через switch(индекс) задать значения переменных.

Если проходов многа, входные параметры желательно расчитывать, а то не эстетично получиться :)

 

Спасибо.

Уже делаю.

Удачи.

Причина обращения: