Спрашивайте! - страница 80

 

простой вопрос по кодированию; у меня есть:

Step0=iCustom(NULL,0, "StepChoppy_v1[1].3",0,lookupidx);

Step1=iCustom(NULL,0, "StepChoppy_v1[1].3",1,lookupidx);

Step2=iCustom(NULL,0, "StepChoppy_v1[1].3",2,lookupidx);

Step3=iCustom(NULL,0, "StepChoppy_v1[1].3",3,lookupidx);

if (Step0>=1 | Step1>=1 | Step2>=1 |Step3>=1)

maval=1;

else

maval= 0;

Проблема в том, что при компиляции я получаю сообщение об ошибке: '|' - побитовые операторы должны применяться только к целым значениям.

если я использую только

if (Step0>=1)

maval=1;

else

maval= 0;

Это работает, но я хочу использовать и другие 3 переменные!

Есть какие-нибудь подсказки?

 
camisa:
простой вопрос по кодированию; у меня есть:

Step0=iCustom(NULL,0, "StepChoppy_v1[1].3",0,lookupidx);

Step1=iCustom(NULL,0, "StepChoppy_v1[1].3",1,lookupidx);

Step2=iCustom(NULL,0, "StepChoppy_v1[1].3",2,lookupidx);

Step3=iCustom(NULL,0, "StepChoppy_v1[1].3",3,lookupidx);

if (Step0>=1 | Step1>=1 | Step2>=1 |Step3>=1)

maval=1;

else

maval= 0;

Проблема в том, что при компиляции я получаю сообщение об ошибке: '|' - побитовые операторы должны применяться только к целым значениям.

если я использую только

if (Step0>=1)

maval=1;

else

maval= 0;

Это работает, но я хочу использовать и другие 3 переменные!

Есть какие-нибудь подсказки?

Вы должны использовать

if (Step0>=1 || Step1>=1 || Step2>=1 || Step3>=1)

Оператор "OR" между двумя булевыми выражениями - " || ".

 
Файлы:
buy.bmp  954 kb
 
Michel:
Вы должны использовать
if (Step0>=1 || Step1>=1 || Step2>=1 || Step3>=1)
Оператор "OR" между двумя булевыми выражениями - это " || ".

Черт, я знал, что это что-то простое lol

Спасибо! Теперь работает 5*****!

 

Я хотел бы, чтобы вы написали мне код из учебника о советнике(Ваш первый советник), который

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

работают

Например. Мы играем на 4 парах: GBPUSD, GBPCHF, AUDUSD и EURUSD и у нас есть

открыты первые три. Если функция 'isCrossed' равна 1 или 2, советник будет покупать или продавать EURUSD, потому что остальные пары просто открыты.

Извините за мой английский :]

 

Любопытный вопрос?

Когда вы используете return(0); в операторах "if"????

Дэйв

 

Как сделать временной блок на этой утилите удаления????

Разобрался!

 
if (UseHourTrade==true)

/////////////////////////////////////////////////////////

{

if(!(Hour()>=EndHour && Hour()>>> EndHour=17 / StartHour=0

{

Comment("PROGRAM SYSTEM IN HIBERNATION!");

}

}

Мне нужно разъяснение: Текущее время - 14 GMT, однако ea отображает "ПРОГРАММНАЯ СИСТЕМА В ГИБЕРНАЦИИ!". Почему он отображается?

Дэйв

 
1Dave7:
if (UseHourTrade==true)

/////////////////////////////////////////////////////////

{

if(!(Hour()>=EndHour && Hour()>>> EndHour=17 / StartHour=0

{

Comment("PROGRAM SYSTEM IN HIBERNATION!");

}

}

Мне нужно разъяснение: Текущее время - 14 GMT, но ea отображает "ПРОГРАММНАЯ СИСТЕМА В ГИБЕРНАЦИИ!". Почему она отображает?

Дэйв

Все дело в (!). Помещая логический тест в() с символом ! перед ним, вы говорите компьютеру, что если логический тест дает результат "false", то переходите к выполнению процедуры.

 

bool

Привет всем,

всегда изучаю mql и следующий код для меня очень неоднозначен (stepMa Ea от Igorad).

// ------------

if ( FilterPeriod > 0 )

{

bool BuyFilter = false;

BuyFilter = ( Close[1]>iMA(NULL,0,FilterPeriod,0,MODE_EMA,0,1));

bool SellFilter = false;

SellFilter =( Close[1]<iMA(NULL,0,FilterPeriod,0,MODE_EMA,0,1));

}

else

{ BuyFilter = true; SellFilter = true; }

// ------------

Я не понимаю, как мы можем объявить и инициализировать переменную bool и присвоить ей целочисленную переменную int в следующей строке

//пример

bool BuyFilter = false;

BuyFilter = ( Close[1]>iMA(NULL,0,FilterPeriod,0,MODE_EMA,0,1));

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

Спасибо

Edit: ND, я не знаю, подходящее ли это место для сообщения.