double lot_f(string Sym, bool ysl_kol_order, double SL, double spread, double otlowka, double slin, double depozit, double LotVal, double min_order, double kol_order, double risk, double minlot){ string str; str = " ## Sym="+Sym+" ysl_kol_order="+ysl_kol_order+" SL="+SL+" spread="+spread+ " otlowka="+otlowka+" slin="+slin+" depozit="+depozit+ " LotVal="+LotVal+" min_order="+min_order+" kol_order="+kol_order+ " risk="+risk+" minlot="+minlot; save(str); if (symvol_proverka(Sym)==false) return (0.01); if (SL == 0 || spread == 0 || otlowka == 0 || slin == 0 || depozit == 0 || depozit == 0 || LotVal == 0 || min_order == 0 || kol_order == 0 || risk == 0 || minlot == 0) { save(" один из параметров равен нулю "); return (minlot); } SL = SL + spread + otlowka + slin; if ( depozit == 0 ) { save(" на ноль делить нельзя "); return (minlot); } double sum = depozit / 100; sum = sum * risk; if ( sum == 0 || SL == 0 ) { save(" на ноль делить нельзя "); return (minlot); } sum = sum / SL; if ( sum == 0 || LotVal == 0 ) { save(" на ноль делить нельзя "); return (minlot); } double lot = sum / LotVal; double prochent; if (lot == 0) { save(" на ноль делить нельзя "); return (minlot); } //if (min_order == kol_order) // min_order= min_order - 1; if (ysl_kol_order == true) { prochent = ( min_order / kol_order ) * 100; lot = lot / 100 * ( 100 + prochent ); } lot = NormalizeDouble(lot, 2); if (lot <= minlot) { save("лот получился слишко маленький "); lot = minlot; } save(" return lot=>> "+lot ); return (lot); }