Наведите на Мысль

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Yevheniy Kopanitskyy
1135
Yevheniy Kopanitskyy  

Всем привет. Генерирую сигнал на вход по трём цифрам из так называемого каталога.

Пример

double   S1=44;                                 double   S1_1=44;             double      S1_1_1=43;
double   S2= 20.66666666666667;      double   S1_2   =   62;        double      S1_1_2   =   59;
double   S3= 20.2;                             double   S1_3   =   101;     double      S1_1_3   =   96;
double   S4= 58.5;                             double   S1_4   =   117;     double      S1_1_4   =   115;
double   S5= 33.66666666666666;      double   S1_5   =   101;     double      S1_1_5   =   98;


Сигналов намного больше. Далее генерирую открытие позиции 

if( (   S1==Level1      &&      S1_1==one_BE    &&      S1_1_1==zero_BE)        ||(     S2==Level1      &&      S1_2==one_BE    &&      S1_1_2==zero_BE)        ||(     S3==Level1      &&      S1_3==one_BE    &&      S1_1_3==zero_BE)        ||(     S4==Level1      &&      S1_4==one_BE    &&      S1_1_4==zero_BE)        ||(     S5==Level1      &&      S1_5==one_BE    &&      S1_1_5==zero_BE))     

              TPBuy1=TPBUY;
               SLBuy1=STLOLBUY;
               RefreshRates();
               ticketBuy1=OrderSend(Symbol(),OP_BUY,LotsVolumen,Bid,Slippage,SLBuy1,TPBuy1,"Мой Ордер на покупку",MagicBUYSTOP,0,clrCyan);

              }

Проблема в колличестве сигналов. Мне нужно  сократить  if Щетчик не подходит так как должно соответствавать все 3 цифры серии.


заранее спасибо

Taras Slobodyanik
38487
Taras Slobodyanik  

Брать, по очереди, из "каталога" по три значения, сравнивать их, и так в цикле до конца "каталога".
При совпадении, открываем ордер и прерываем цикл.

Victor Ziborov
3629
Victor Ziborov  

Евгений, Вы сами сможете решить эту задачу, если чётко её сформулируете. Ведь из того, что Вы написали понять постановку задачи невозможно. Так что не верьте в чудо, что Вам подскажут, как решить некорректно поставленную задачу. Начните с чёткой постановки задачи.

Yevheniy Kopanitskyy
1135
Yevheniy Kopanitskyy  
Victor Ziborov:

Евгений, Вы сами сможете решить эту задачу, если чётко её сформулируете. Ведь из того, что Вы написали понять постановку задачи невозможно. Так что не верьте в чудо, что Вам подскажут, как решить некорректно поставленную задачу. Начните с чёткой постановки задачи.

Учюсь Учюсь и ещо раз Учюс. 
elmucon
1086
elmucon  
Yevheniy Kopanitskyy:
Учюсь Учюсь и ещо раз Учюс. 

ага - именно учюсь ... и ещо ... учюсь


Alexey Viktorov
28141
Alexey Viktorov  
Yevheniy Kopanitskyy:

Всем привет. Генерирую сигнал на вход по трём цифрам из так называемого каталога.

Пример

double   S1=44;                                 double   S1_1=44;             double      S1_1_1=43;
double   S2= 20.66666666666667;      double   S1_2   =   62;        double      S1_1_2   =   59;
double   S3= 20.2;                             double   S1_3   =   101;     double      S1_1_3   =   96;
double   S4= 58.5;                             double   S1_4   =   117;     double      S1_1_4   =   115;
double   S5= 33.66666666666666;      double   S1_5   =   101;     double      S1_1_5   =   98;


Сигналов намного больше. Далее генерирую открытие позиции 

Проблема в колличестве сигналов. Мне нужно  сократить  if Щетчик не подходит так как должно соответствавать все 3 цифры серии.


заранее спасибо

Если я правильно понял задачу, то можно так:

double S1 = 44, S1_1 = 44, S1_1_1 = 43;
double S2 = 20.66666666666667, S1_2 = 62, S1_1_2 =  59;
bool sb_1 = S1 == Level1 && S1_1 == one_BE && S1_1_1 == zero_BE;
bool sb_2 = S2 == Level1 && S1_2 == one_BE && S1_1_2 == zero_BE;
if(sb_1 || sb_2)

Но самое главное ставь побольше пробелов тогда строка растянется ещё больше. Компилятору до лампочки все пробелы, зато читать никто не захочет.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий