break в цикле

 

Не могу понять что тут не работает. Задача такая : определение оптимального уровня кол-ва доливок при заданном стоплосе, решил сделать с помощью двойного цикла и его прерыванием при достижении оптимального уровня, но он почему-то не прерывается - в конце выдает результат полного цикла! Может кто увидит в чем тут баг ?

string AddsCounter() {
int Step1, a1=0, b=0, c=0, DrawDown1=0, StepUp, AddsUp;
string AddsC;
StepUp=(Ask-StopLossLevel)/Point;
for (Step1=10;Step1<=StepUp;Step1++) {
    AddsUp=(Ask-StopLossLevel)/Step1/Point;
    for (a1=0;a1<=AddsUp;a1++) {
        DrawDown1=DrawDown1+Step1*(AddsUp+1-a1)*0.1*10;
        b=a1;
        if (DrawDown1>AccountBalance()) break;
    }
    if (b<=AddsUp && b+1>=AddsUp) {c=b; break;}
}
AddsC="a1 = "+a1+" b = "+b+" c = "+c+" DrawDown = "+DrawDown1+" Step = "+Step1+" Bal = "+AccountBalance();
return(AddsC);
}

надо чтоб "с" была равна оптимальному кол-ву доливок

 
Наверно из внтуреннего цикла выходите, а наружний продолжает работать.