function [ofloor,opercent]=sortie_variable(current_profit,nb_echelon,b_inf_prof,b_sup_prof,b_inf_pour,b_sup_pour,type_fonc_prof,alpha_prof,beta_prof,type_fonc_pour,alpha_pour,beta_pour)

% current_profit		// profit de la position courante
% nb_echelon			// nombre d'echelons entre les bornes suivantes pour les sorties progressives max 20
% b_inf_prof			// borne inferieure de l'intervalle de profit en pip
% b_sup_prof			// borne superieure de l'intervalle de profit en pip
% b_inf_pour			// borne inferieure de l'intervalle de pourcentage du trailing stop
% b_sup_pour			// borne superieure de l'intervalle de pourcentage du trailing stop
% type_fonc_prof		// type de fonction pour la taille de l'echelon liee au profit : 1=alpha (constant) ; 2=x^alpha*(sin(x))^beta
% alpha_prof			// alpha pour la fonction lie au profit selon la fonction choisie
% beta_prof             // beta pour a fonction lie au profit selon la fonction choisie
% type_fonc_pour		// type de fontcion pour la taille de l'echelon liee au pourcentage : 1=alpha (constant) ; 2=x^alpha*(sin(x))^beta
% alpha_pour			// alpha pour a fonction lie au pourcentage selon la fonction choisie
% beta_pour         	// beta pour a fonction lie au pourcentage selon la fonction choisie
% ofloor				// sortie : seuil de declenchement du trailing stop en pip
% opercent				// sortie : pourcentage de perte du profit pour le trailing stop

max_coef_prof=0;
min_coef_prof=100;
max_coef_pour=0;
min_coef_pour=100;
coef_prof=zeros(nb_echelon+1,1);
coef_pour=zeros(nb_echelon+1,1);

for value1=1:nb_echelon
    if type_fonc_prof==1
        coef_prof(value1)=alpha_prof;
    end;
    if type_fonc_prof==2
        coef_prof(value1)=(0.25+2.65*((value1-1)/(nb_echelon-1)))^alpha_prof;                           % on norme x entre .25 et 2.90
        coef_prof(value1)=coef_prof(value1)*(sin(0.25+2.65*((value1-1)/(nb_echelon-1))))^beta_prof;     % sine veut x en deg
        max_coef_prof=max(max_coef_prof,coef_prof(value1));
        min_coef_prof=min(min_coef_prof,coef_prof(value1));
    end;
    if type_fonc_pour==1 
        coef_pour(value1)=alpha_pour;
    end;
    if type_fonc_pour==2
        coef_pour(value1)=(0.25+2.65*((value1-1)/(nb_echelon-1)))^alpha_pour;                           % on norme x entre .25 et 2.90
        coef_pour(value1)=coef_pour(value1)*(sin(0.25+2.65*((value1-1)/(nb_echelon-1))))^beta_pour;     % sine veut x en deg
        max_coef_pour=max(max_coef_pour,coef_pour(value1));
        min_coef_pour=min(min_coef_pour,coef_pour(value1));
    end;
end;
nb_inter_prof=0;
nb_inter_pour=0;
for value2=1:nb_echelon 
    if type_fonc_pour==2
        if (max_coef_prof-min_coef_prof)~=0
            coef_prof(value2)=0.6+0.9*(coef_prof(value2)-min_coef_prof)/(max_coef_prof-min_coef_prof);      %on norme le coef entre .6 et 1.5
        else 
            coef_prof(value2)=1;
        end;
        if (max_coef_pour-min_coef_pour)~=0
            coef_pour(value2)=0.6+0.9*(coef_pour(value2)-min_coef_pour)/(max_coef_pour-min_coef_pour);      %on norme le coef entre .6 et 1.5
        else 
            coef_pour(value2)=1;
        end;
    end;
    nb_inter_prof=nb_inter_prof+(coef_prof(value2))^(value2-1);
    nb_inter_pour=nb_inter_pour+(coef_pour(value2))^(value2-1);
end;
num_inter_prof=0;
num_inter_pour=0;
ofloor=0;
opercent=0;
for value3=1:nb_echelon+1
    seuils=round(b_inf_prof+num_inter_prof*(b_sup_prof-b_inf_prof)/nb_inter_prof);
    if current_profit>=seuils
        ofloor=seuils;
        opercent=round(b_sup_pour-num_inter_pour*(b_sup_pour-b_inf_pour)/nb_inter_pour);
    end;
    num_inter_prof=num_inter_prof+(coef_prof(value3))^(value3-1);
    num_inter_pour=num_inter_pour+(coef_pour(value3))^(value3-1);
end;





