Ответ
 
Опции темы
31.12.2013, 19:06
Аватар для Dersu
Dersu Почётный гражданин
Регистрация: 08.11.2010 / Сообщений: 279
Поблагодарили 443 раз(а) / Репутация: 445
  • Отправить сообщение для Dersu с помощью Skype™
С наступающим всех.
Программистам для розвлечения:
Вложения:
Тип файла: rar TRUE RANDOM CANDLESTICK GENERATOR V2.rar (139.3 Кб, 18 просмотров)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Люди делятся на три категории: живые, мёртвые и плавающие по морям. (Анахарсис, III век до н. э.)
Dersu вне форума Ответить с цитированиемОтветить с цитированием  
02.01.2014, 08:22
Аватар для Milord
Milord Местный знаток
Регистрация: 26.03.2011 / Сообщений: 596
Поблагодарили 702 раз(а) / Репутация: 705

По умолчанию Как написать алгоритм???


Уважаемые программеры профи, поздравляю вас с Новым Годом и вопросик вам?
например есть 2 переключателя, которые активны при 1 и неактивны при 0
PHP код:
extern int Q1=1;
extern int Q2=1
как написать алгоритм их работы, чтобы условия по оператору if ,были активны(или неактивны)
например
PHP код:
if(A>B&&C<D&&E>F)
{
OrderSend(...);

нужно чтобы при Q1=1 и Q2=1, все 3 условия проверялись, то есть были активны, если Q1=0, то первое условие неактивно(будто его и нету), аналогично при Q2=0, второе условие неактивно(не проверяется),третье условие E>F всегда активно...
ЗАРАНЕЕ СПАСИБО!

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)

Последний раз редактировалось Milord; 02.01.2014 в 08:25.
Milord вне форума Ответить с цитированиемОтветить с цитированием  
02.01.2014, 08:38
Регистрация: 13.03.2009 / Сообщений: 2,324
Поблагодарили 1,945 раз(а) / Репутация: 2018
Сообщение от Milord Посмотреть сообщение
Уважаемые программеры профи, поздравляю вас с Новым Годом и вопросик вам?
например есть 2 переключателя, которые активны при 1 и неактивны при 0
PHP код:
extern int Q1=1;
extern int Q2=1
как написать алгоритм их работы, чтобы условия по оператору if ,были активны(или неактивны)
например
PHP код:
if(A>B&&C<D&&E>F)
{
OrderSend(...);

нужно чтобы при Q1=1 и Q2=1, все 3 условия проверялись, то есть были активны, если Q1=0, то первое условие неактивно(будто его и нету), аналогично при Q2=0, второе условие неактивно(не проверяется),третье условие E>F всегда активно...
ЗАРАНЕЕ СПАСИБО!
Странный вопрос. Это же простая логика.
if((Q1==0 || A>B) && (Q2==0 || C<D) && E>F)
{
OrderSend(...);
}

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
AlexeyVik (02.01.2014), Milord (02.01.2014)
02.01.2014, 08:45
Аватар для AlexeyVik
AlexeyVik Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Сообщение от Milord Посмотреть сообщение
Уважаемые программеры профи, поздравляю вас с Новым Годом и вопросик вам?
например есть 2 переключателя, которые активны при 1 и неактивны при 0
PHP код:
extern int Q1=1;
extern int Q2=1
как написать алгоритм их работы, чтобы условия по оператору if ,были активны(или неактивны)
например
PHP код:
if(A>B&&C<D&&E>F)
{
OrderSend(...);

нужно чтобы при Q1=1 и Q2=1, все 3 условия проверялись, то есть были активны, если Q1=0, то первое условие неактивно(будто его и нету), аналогично при Q2=0, второе условие неактивно(не проверяется),третье условие E>F всегда активно...
ЗАРАНЕЕ СПАСИБО!
Во первых для флагов грамотней использовать переменные типа bool
А написать очень просто.
if((!Q1 || A > B) && (!Q2 || C < D) && E > F)
Вот так, если я правильно понял вопрос.
AlexeyVik вне форума Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Milord (02.01.2014)
02.01.2014, 09:00
Аватар для Milord
Milord Местный знаток
Регистрация: 26.03.2011 / Сообщений: 596
Поблагодарили 702 раз(а) / Репутация: 705
Сообщение от AlexeyVik Посмотреть сообщение
Во первых для флагов грамотней использовать переменные типа bool
А написать очень просто.
if((!Q1 || A > B) && (!Q2 || C < D) && E > F)
Вот так, если я правильно понял вопрос.
преимущество переключателя(int) в возможности оптимизации настроек и переключателей в одном потоке...спасибо за ответ и Ugar-u тоже спасибо,пошел переваривать ответы...)
кажется вы оба меня неправильно поняли...позже напишу.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)

Последний раз редактировалось Milord; 02.01.2014 в 09:10.
Milord вне форума Ответить с цитированиемОтветить с цитированием  
02.01.2014, 09:12
Регистрация: 13.03.2009 / Сообщений: 2,324
Поблагодарили 1,945 раз(а) / Репутация: 2018
Сообщение от Milord Посмотреть сообщение
кажется вы оба меня неправильно поняли...позже напишу.
Если оба одинаково неправильно поняли, скорее всего, проблема в изложении вопроса.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме Ответить с цитированиемОтветить с цитированием  
02.01.2014, 09:30
Аватар для Milord
Milord Местный знаток
Регистрация: 26.03.2011 / Сообщений: 596
Поблагодарили 702 раз(а) / Репутация: 705

По умолчанию Задам вопрос по другому???


спасибо за ответы, но кажется вы меня не так поняли, или я вапще ниче не понимаю))
поэтому изменю формулировку вопроса в другом виде, есть переключатели:

PHP код:

extern int Q1
=1;//при 1 включен, при 0 - выключен
extern int Q2=1;//при 1 включен, при 0 - выключен 
нужно написать код, чтобы при Q1=1 и Q2=1, логика работы такая:
PHP код:
if(A>B&&C<D&&E>F)
{
OrderSend(...);

при Q1=0,и Q2=1,логика работы такая(выключено первое условие)
PHP код:
if(C<D&&E>F)
{
OrderSend(...);

при Q1=1,и Q2=0,логика работы такая(выключено второе условие)
PHP код:
if(A>B&&E>F)
{
OrderSend(...);

при Q1=0,и Q2=0,логика работы такая(выключено первое и второе условие)
PHP код:
if(E>F)
{
OrderSend(...);


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)
Milord вне форума Ответить с цитированиемОтветить с цитированием  
02.01.2014, 09:32
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,017
Поблагодарили 855 раз(а) / Репутация: 841
Milord
Тебе так и написали, оба решения рабочие и практически не отличаются. Будет работать именно так, как написано
ansol на форуме Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Milord (02.01.2014)
02.01.2014, 10:03
Аватар для Milord
Milord Местный знаток
Регистрация: 26.03.2011 / Сообщений: 596
Поблагодарили 702 раз(а) / Репутация: 705

По умолчанию Спасибо за помощь,еще вопросик?


Сообщение от ansol Посмотреть сообщение
Milord
Тебе так и написали, оба решения рабочие и практически не отличаются. Будет работать именно так, как написано
спасибо за ответы всем, еще вопросик похожий, не могу сообразить..)
есть переключатель
PHP код:
extern int Revers=0;//при 1 включен реверс условия, при 0 выключен реверс 
нужно написать код чтобы при Revers=0; логика работы была
PHP код:

if(A>B)
{
OrderSend(...);

при Revers=1; логика работы была
PHP код:

if(A<B)
{
OrderSend(...);


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)
Milord вне форума Ответить с цитированиемОтветить с цитированием  
02.01.2014, 10:10
Аватар для AlexeyVik
AlexeyVik Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Сообщение от Ugar Посмотреть сообщение
Странный вопрос. Это же простая логика.
if((Q1==0 || A>B) && (Q2==0 || C<D) && E>F)
{
OrderSend(...);
}
Как это я не увидел твой ответ???
Наверное долго писал...

Последний раз редактировалось AlexeyVik; 02.01.2014 в 10:23.
AlexeyVik вне форума Ответить с цитированиемОтветить с цитированием  
02.01.2014, 10:21
Аватар для AlexeyVik
AlexeyVik Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Сообщение от Milord Посмотреть сообщение
спасибо за ответы, но кажется вы меня не так поняли, или я вапще ниче не понимаю))
поэтому изменю формулировку вопроса в другом виде, есть переключатели:

PHP код:

extern int Q1
=1;//при 1 включен, при 0 - выключен
extern int Q2=1;//при 1 включен, при 0 - выключен 
нужно написать код, чтобы при Q1=1 и Q2=1, логика работы такая:
PHP код:
if(A>B&&C<D&&E>F)
{
OrderSend(...);

при Q1=0,и Q2=1,логика работы такая(выключено первое условие)
PHP код:
if(C<D&&E>F)
{
OrderSend(...);

при Q1=1,и Q2=0,логика работы такая(выключено второе условие)
PHP код:
if(A>B&&E>F)
{
OrderSend(...);

при Q1=0,и Q2=0,логика работы такая(выключено первое и второе условие)
PHP код:
if(E>F)
{
OrderSend(...);

Ты просто пойми порядок работы такой части условия (Q1 == 0 || A > B) Если в настройках поставить Q1 = 0, то вторая часть практически будет выключена. Потому, что это условие будет истиной при любом А и В. А вот если поставить Q1 = 1, то истинным это выражение будет только если A > B то есть включаем эту часть условия.
Надеюсь понятно объяснил.
AlexeyVik вне форума Ответить с цитированиемОтветить с цитированием  
02.01.2014, 10:26
Аватар для Milord
Milord Местный знаток
Регистрация: 26.03.2011 / Сообщений: 596
Поблагодарили 702 раз(а) / Репутация: 705
Сообщение от AlexeyVik Посмотреть сообщение
Ты просто пойми порядок работы такой части условия (Q1 == 0 || A > B) Если в настройках поставить Q1 = 0, то вторая часть практически будет выключена. Потому, что это условие будет истиной при любом А и В. А вот если поставить Q1 = 1, то истинным это выражение будет только если A > B то есть включаем эту часть условия.
Надеюсь понятно объяснил.
спасибо, буду переваривать..)
интуитивно ощущаю что это все проще пареной репы, а мозг выключается пока что, сложновато после бейсика перейти на С++(MQL4), все равно что с запорожца сесть за штурвал МИГ-31)))

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)

Последний раз редактировалось Milord; 02.01.2014 в 10:29.
Milord вне форума Ответить с цитированиемОтветить с цитированием  
02.01.2014, 10:33
Аватар для AlexeyVik
AlexeyVik Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Сообщение от Milord Посмотреть сообщение
спасибо, буду переваривать..)
интуитивно ощущаю что это все проще пареной репы, а мозг выключается пока что, тяжко после бейсика перейти на С++, все равно что с запорожца сесть за штурвал МИГ-31)))
Да что ты всё про бейсик вспоминаешь? Может ты будешь удивлён, но я ни одной программы не написал на С или С++. И вообще не пытался. И до изучения mql тоже работал только с бейсиком. Ничего сложного в этом нет, это условие такое-же как и в бейсике if((Q1 = 0 or A > B) and (Q2 = 0 or C < D) and Е > F)
Очень хотелось-бы чтобы не-было в этом примере грубых синтаксических ошибок. Всё-таки уже несколько лет не вспоминал о бейсике.
AlexeyVik вне форума Ответить с цитированиемОтветить с цитированием  
02.01.2014, 10:43
Аватар для Milord
Milord Местный знаток
Регистрация: 26.03.2011 / Сообщений: 596
Поблагодарили 702 раз(а) / Репутация: 705
Сообщение от AlexeyVik Посмотреть сообщение
Да что ты всё про бейсик вспоминаешь? Может ты будешь удивлён, но я ни одной программы не написал на С или С++. И вообще не пытался. И до изучения mql тоже работал только с бейсиком. Ничего сложного в этом нет, это условие такое-же как и в бейсике if((Q1 = 0 or A > B) and (Q2 = 0 or C < D) and Е > F)
Очень хотелось-бы чтобы не-было в этом примере грубых синтаксических ошибок. Всё-таки уже несколько лет не вспоминал о бейсике.
ну да, удивлен!))
не только я мучаюсь оказывается с переходом...)
можешь подсказать как с реверсом написать код?)вижу светлая голова, приятно видеть умных людей на сайте...)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)
Milord вне форума Ответить с цитированиемОтветить с цитированием  
02.01.2014, 10:55
Аватар для qqmber
qqmber Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Сообщение от Milord Посмотреть сообщение
спасибо за ответы всем, еще вопросик похожий, не могу сообразить..)
есть переключатель
PHP код:
extern int Revers=0;//при 1 включен реверс условия, при 0 выключен реверс 
нужно написать код чтобы при Revers=0; логика работы была
PHP код:

if(A>B)
{
OrderSend(...);

при Revers=1; логика работы была
PHP код:

if(A<B)
{
OrderSend(...);

int R=2*Revers-1;
if(R*A<B*R) {}
qqmber вне форума Ответить с цитированиемОтветить с цитированием  
02.01.2014, 10:59
Аватар для Milord
Milord Местный знаток
Регистрация: 26.03.2011 / Сообщений: 596
Поблагодарили 702 раз(а) / Репутация: 705
Сообщение от qqmber Посмотреть сообщение
int R=2*Revers-1;
if(R*A<B*R) {}
хотите взорвать мой мозг?))
а если серьезно - ничего не понял...торможу седня видимо..

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)
Milord вне форума Ответить с цитированиемОтветить с цитированием  
02.01.2014, 11:05
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,017
Поблагодарили 855 раз(а) / Репутация: 841
Типа, если А>В, то это аналогично -А<-В
Превращаем ваш реверс(0 и 1) в -1 и +1 и умножаем неравенство на это безобоазие == получится неравенство "наоборот"
Если А и В - это числовые значения, конечно
ansol на форуме Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Milord (02.01.2014)
02.01.2014, 11:08
Регистрация: 13.03.2009 / Сообщений: 2,324
Поблагодарили 1,945 раз(а) / Репутация: 2018
Сообщение от Milord Посмотреть сообщение
спасибо за ответы всем, еще вопросик похожий, не могу сообразить..)
есть переключатель
PHP код:
extern int Revers=0;//при 1 включен реверс условия, при 0 выключен реверс 
нужно написать код чтобы при Revers=0; логика работы была
PHP код:

if(A>B)
{
OrderSend(...);

при Revers=1; логика работы была
PHP код:

if(A<B)
{
OrderSend(...);

Так сам же уже написал
if((Revers==0 && A>B) || (Revers==1 && A<B))
{

}

или вот варинт аналогичный прошлому примеру
if((Revers==1 || A>B) && (Revers==0 || A<B))
{

}

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!

Последний раз редактировалось Ugar; 02.01.2014 в 11:19.
Ugar на форуме Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Milord (02.01.2014)
02.01.2014, 11:15
Аватар для qqmber
qqmber Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Сообщение от Milord Посмотреть сообщение
хотите взорвать мой мозг?))
Конечно хочу, у нас Новый Год или нет?!
Код 100% рабочий, но в реале я бы не стал так делать, а написал бы как Ugar выше показал.
qqmber вне форума Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
Milord (02.01.2014), Ugar (02.01.2014)
02.01.2014, 11:18
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,017
Поблагодарили 855 раз(а) / Репутация: 841
Сообщение от qqmber Посмотреть сообщение
Конечно хочу, у нас Новый Год или нет?!
Код 100% рабочий, но в реале я бы не стал так делать, а написал бы как Ugar выше показал.
Это почему? Пусть бы так и было, чем плохо-то?
Комментировать только строчки такие надо, чтоб потом было поятно, что сделать хотел, а так - все пучком!
ansol на форуме Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Milord (02.01.2014)
Ответ

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 07:00. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO