У вас в первом случае if (x1&&x2&&x3&&y1&&y2&&y3){} а во втором if((x1&&x2&&x3)&&(y1&&y2&&y3)){}
Хотя... что это мы с вами словами разговариваем?
Топикстартер, а выдайте публике результаты прогона вот этого скрипта:
int start() { int косяков = 0; for(int y = 0; y <= 255; y++) { string неДоверяю = "" + y + " | " + (y&1 != 0) + (y&2 != 0) + (y&4 != 0) + (y&8 != 0) + (y&16 != 0) + (y&32 != 0); Alert(неДоверяю); bool r1 = false; if( (y&1 != 0) && (y&2 != 0) && (y&4 != 0) && (y&8 != 0) && (y&16 != 0) && (y&32 != 0) ) r1 = true; bool r2 = false; int d1 = 0; int d2 = 0; if( (y&1 != 0) && (y&2 != 0) && (y&4 != 0)) d1 = 1; if( (y&8 != 0) && (y&16 != 0) && (y&32 != 0)) d2 = 1; if(d1 == 1 && d2 == 1) { r2 = true; } if(r1 != r2) { косяков++; Alert("Маймуно веришвили!!"); } } Alert("Герр программист, испытание закончил! Косяков " + косяков + " !"); }А какое у Вас рено?
Такое конечно же пробовал....... Вот почти весь блок советника..... Пытаюсь ОДНО "условие" разбить на несколько фильтров чтобы их подключать раздельно....
extern string block_05 = " блок управления фильтрами";
extern string st1="::: Первое торговое условие :::";
extern int filter_cci = 1; // Использовать ли первое условие в торговле
extern string st2="::: Второе торговое условие :::";
extern int filter_ss = 1; // Использовать ли первое условие в торговле
//***************************************************************************************************
//***************************************************************************************************
//------- Глобальные переменные советника -------------------------------------+
int fs_cci=0; int fs_ss=0; int fb_cci=0; int fb_ss=0;
// ========================================================
// ============ ИЩЕМ ВОЗМОЖНОСТЬ ОТКРЫТЬ ОРДЕР ============
// ========================================================
void raschet() {
RefreshRates();
//***************************************************************************************************
//****** ЗОНА ФИЛЬТРОВ *** ЗОНА ФИЛЬТРОВ *** ЗОНА ФИЛЬТРОВ *** ЗОНА ФИЛЬТРОВ *** ЗОНА ФИЛЬТРОВ ******
//***************************************************************************************************
// условие продажи
if(hcci[1]>-5 && hcci[2]>hcci[3] && hcci[1]>hcci[2] && hcci[0]<hcci[1]) fs_cci = filter_cci;
if(Open[2]<Close[2] && Open[1]<Close[1] && Open[0]>Close[0] && Open[1]>Close[0]) fs_ss = filter_ss;
if(fs_ss == 1 && fs_cci == 1) prodaza();
// условие покупки
if(lcci[1]<5 && lcci[2]<lcci[3] && lcci[1]<lcci[2] && lcci[0]>lcci[1]) fb_cci = filter_cci;
if(Open[2]>Close[2] && Open[1]>Close[1] && Open[0]<Close[0] && Open[1]<Close[0]) fb_ss = filter_ss;
if(fb_ss == 1 && fb_cci == 1) pokypka();
//***************************************************************************************************
// условие продажи
//if(hcci[1]>-5 && hcci[2]>hcci[3] && hcci[1]>hcci[2] && hcci[0]<hcci[1] &&
//Open[2]<Close[2] && Open[1]<Close[1] && Open[0]>Close[0] && Open[1]>Close[0]) prodaza();
// условие покупки
//if(lcci[1]<5 && lcci[2]<lcci[3] && lcci[1]<lcci[2] && lcci[0]>lcci[1] &&
//Open[2]>Close[2] && Open[1]>Close[1] && Open[0]<Close[0] && Open[1]<Close[0]) pokypka();
//***************************************************************************************************
return(0);
}
2jartmailru______ R25
renoshnik писал(а) >>
Такое конечно же пробовал....... Вот почти весь блок советника..... Пытаюсь ОДНО "условие" разбить на несколько фильтров чтобы их подключать раздельно
....
//------- Глобальные переменные советника -------------------------------------+
int fs_cci=0; int fs_ss=0; int fb_cci=0; int fb_ss=0;
Я думал вы меня поймете.
Результат вычисления условия может быть не только "True", как вы расчитывали,
поэтому правильно будет так:
// условие покупки
if(hcci[1]>-5 && hcci[2]>hcci[3] && hcci[1]>hcci[2] && hcci[0]<hcci[1]) fs_cci = filter_cci;
else fs_cci = 0;
...
и т.д. аналогично для остальных условий.
Я просто показал вам упрощенную запись, обнуляем перед расчетом условия, чтобы не писать "else ..."
// условие покупки
fs_cci = 0; fs_ss = 0;
if(hcci[1]>-5 && ...
Удачи!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
в советнике есть такое условие ....
if(hcci[1]>-5 && hcci[2]>hcci[3] && hcci[1]>hcci[2] && hcci[0]<hcci[1] &&
Open[2]<Close[2] && Open[1]<Close[1] && Open[0]>Close[0] && Open[1]>Close[0]) prodaza();
При этом в тестере советник показывает определенные результаты.
НО если это условие разбиваю на ДВЕ ЧАСТИ
if(hcci[1]>-5 && hcci[2]>hcci[3] && hcci[1]>hcci[2] && hcci[0]<hcci[1]) fs_cci = 1;
if(Open[2]<Close[2] && Open[1]<Close[1] && Open[0]>Close[0] && Open[1]>Close[0]) fs_ss = 1;
if(fs_ss == 1 && fs_cci == 1) prodaza();
то в тестере получаю совершенно ДРУГИЕ результаты при прочих равных условиях ?????