public UserControl GetSettingsUI() { myPosSizerControl ctrl_settings = new myPosSizerControl(); //MessageBox.Show("GetSettings:"+_maxRisk.ToString()); //ctrl_settings.MaxRisk = _maxRisk; if (_settings == null) _settings = new myPosSizerSettings(); _settings.MaxRiskSize = _maxRisk; InitializeSettings(_settings); //MessageBox.Show("GetSettings 2:" + _settings.MaxRiskSize.ToString()); _maxRisk = _settings.MaxRiskSize; ctrl_settings.MaxRisk = _maxRisk; return ctrl_settings; }
public override double SizePosition(Position currentPos, Bars bars, int bar, double basisPrice, PositionType pt, double riskStopLevel, double equity, double cash) { double risksizeprecent = Math.Abs((riskStopLevel - basisPrice) / basisPrice - 1); if (_settings == null) _settings = new myPosSizerSettings(); this.InitializeSettings(_settings); _maxRisk = _settings.MaxRiskSize; //MessageBox.Show("MaxRisk:"+_maxRisk,ToString()); double capfortrade = equity *0.99*_maxRisk/100; capfortrade = capfortrade/Math.Abs(riskStopLevel - basisPrice); if (capfortrade > equity) capfortrade = equity; return (int) (Math.Min(capfortrade,equity*0.99/basisPrice)); }