English

## Ciclo For: no error but...

 99 fly7680 2016.09.17 14:47   I inserted a for loop, after a cross candle condition on Moving Average 50.With the for loop, I have to try the first cross of the Moving Average 5 on 50 by 9 candles and when the cross was found, I get out of the loop and finish with buffer 1The code does not error but does not work as I have studied.How could I solve?Thank you all for your patience and help.bool c= iMA(NULL, PERIOD_CURRENT, 5, 0, MODE_SMA, PRICE_CLOSE, 2+i) > iMA(NULL, PERIOD_CURRENT, 30, 0, MODE_SMA, PRICE_CLOSE, 2+i)      && iMA(NULL, PERIOD_CURRENT, 5, 0, MODE_SMA, PRICE_CLOSE, 1+i) < iMA(NULL, PERIOD_CURRENT, 30, 0, MODE_SMA, PRICE_CLOSE, 1+i);                     //Indicator Buffer 1       if(Open [1+i] < iMA(NULL, PERIOD_CURRENT, 30, 0, MODE_SMA, PRICE_CLOSE, 1+i)       && Close[1+i] > iMA(NULL, PERIOD_CURRENT, 30, 0, MODE_SMA, PRICE_CLOSE, 1+i))              for (int b=2; b<=10; b++)       {       if (c) break;       }                   {                    Buffer1[i] = High[i] + 1 * myPoint;                 }
 Moderator3517 GumRai 2016.09.17 14:58 #   What is the point of this loop?      for (int b=2; b<=10; b++)       {       if (c) break;       }    It does nothing!
 99 fly7680 2016.09.17 15:04 #   for (int b=2; b<=10; b++) { if (c) break; } /* b        begin number canldes 2 b<=10    is number max candles b++      increase if (c) break; condition to be searched */I thought I had understood the cycle could you give me a help please!
 Moderator3517 GumRai 2016.09.17 16:01 #   fly7680: I thought I had understood the cycle could you give me a help please!I can't help because I have no idea what you are hoping to achieve.IF c is true, the for loop is broken and does nothingIf c is false the loop runs full cycle and does nothing.2 possibilities and both possibilities means that it is code that executes and achieves nothing.
 99 fly7680 2016.09.17 16:29 #   I entered "break" because when there is true it exits the loop and I visualize the buffer.The first time that c is true, I go out of the loop and I visualize the buffer.I do not understand my mistake ... I apologize.bool c= iMA(NULL, PERIOD_CURRENT, 5, 0, MODE_SMA, PRICE_CLOSE, 2+i) > iMA(NULL, PERIOD_CURRENT, 30, 0, MODE_SMA, PRICE_CLOSE, 2+i)      && iMA(NULL, PERIOD_CURRENT, 5, 0, MODE_SMA, PRICE_CLOSE, 1+i) < iMA(NULL, PERIOD_CURRENT, 30, 0, MODE_SMA, PRICE_CLOSE, 1+i);                     //Indicator Buffer 1       if(Open [1+i] < iMA(NULL, PERIOD_CURRENT, 30, 0, MODE_SMA, PRICE_CLOSE, 1+i)       && Close[1+i] > iMA(NULL, PERIOD_CURRENT, 30, 0, MODE_SMA, PRICE_CLOSE, 1+i)) // 1° step, Cross Candle in the Moving average              for (int b=2; b<=10; b++) // 2° step, count the candles up to 10 and if "c" is true I get out of the loop       {       if (c) break;       }                    {                    Buffer1[i] = High[i] + 1 * myPoint;   // 3° step Display the buffer in the graph
 99 fly7680 2016.09.17 16:45 #   The "break" function does not mean that if "c" is true I left the loop to go to the next code? if I delete "break", the code return erro "empty controlled statement found"
 99 fly7680 2016.09.17 16:54 #   Candle 1: cross the candle on the moving average 30the next step is to search through the cycle for loop of the cross moving average  5 on the 30... end of the code that return buffer1 in the graph
 99 fly7680 2016.09.17 20:12 #   I need to continue with the code when the "c" condition is true.help me please
 13127 WHRoeder 2016.09.18 18:58 #   for (int b=2; b<=10; b++) // 2° step, count the candles up to 10 and if "c" is true I get out of the loop {    if (c) break; }   You don't need to continue - the code does nothing. If c is true, then exit the loop. otherwise the for loop continues incrementing until b is 11 and the loop exits. Nothing.Delete the for/if/break.
 99 fly7680 2016.09.19 20:58 #   Thanks for your help, this step I'll have to study better!