protected void Init( bool takeLongsParameter, bool takeShortsParameter, MaCrossRuleValues maCrossRule, LotSizingRuleValues lotSizingRule, double dynamicRiskPercentage) { _takeLongsParameter = takeLongsParameter; _takeShortsParameter = takeShortsParameter; _maCrossRule = maCrossRule; _lotSizingRule = lotSizingRule; _dynamicRiskPercentage = dynamicRiskPercentage; var lotSizing = (LotSizingRuleValues)lotSizingRule; if (lotSizing == LotSizingRuleValues.Dynamic && (dynamicRiskPercentage <= 0 || dynamicRiskPercentage >= 10)) { throw new ArgumentOutOfRangeException($"Dynamic Risk value is out of range - it is a percentage (e.g. 2)"); } _canOpenPosition = true; Positions.Opened += OnPositionOpened; Positions.Closed += OnPositionClosed; Print("Symbol.TickSize: {0}, Symbol.Digits: {1}, Symbol.PipSize: {2}", Symbol.TickSize, Symbol.Digits, Symbol.PipSize); }
protected void Init( bool takeLongsParameter, bool takeShortsParameter, int initialStopLossRule, int initialStopLossInPips, int trailingStopLossRule, int trailingStopLossInPips, int lotSizingRule, int takeProfitRule, int takeProfitInPips = 0, int minutesToWaitAfterPositionClosed = 0, bool moveToBreakEven = false, bool closeHalfAtBreakEven = false, double dynamicRiskPercentage = 2, int barsToAllowTradeToDevelop = 0, int maCrossRule = 0) { ValidateParameters(takeLongsParameter, takeShortsParameter, initialStopLossRule, initialStopLossInPips, trailingStopLossRule, trailingStopLossInPips, lotSizingRule, takeProfitRule, takeProfitInPips, minutesToWaitAfterPositionClosed, moveToBreakEven, closeHalfAtBreakEven, dynamicRiskPercentage, barsToAllowTradeToDevelop, maCrossRule); _takeLongsParameter = takeLongsParameter; _takeShortsParameter = takeShortsParameter; _initialStopLossRule = (InitialStopLossRuleValues)initialStopLossRule; _initialStopLossInPips = initialStopLossInPips; _trailingStopLossRule = (TrailingStopLossRuleValues)trailingStopLossRule; _trailingStopLossInPips = trailingStopLossInPips; _lotSizingRule = (LotSizingRuleValues)lotSizingRule; _takeProfitRule = (TakeProfitRuleValues)takeProfitRule; _takeProfitInPips = takeProfitInPips; _minutesToWaitAfterPositionClosed = minutesToWaitAfterPositionClosed; _moveToBreakEven = moveToBreakEven; _closeHalfAtBreakEven = closeHalfAtBreakEven; _dynamicRiskPercentage = dynamicRiskPercentage; _barsToAllowTradeToDevelop = barsToAllowTradeToDevelop; _maCrossRule = (MaCrossRuleValues)maCrossRule; _canOpenPosition = true; Positions.Opened += OnPositionOpened; Positions.Closed += OnPositionClosed; Positions.Modified += OnPositionModified; Print("Symbol.TickSize: {0}, Symbol.Digits: {1}, Symbol.PipSize: {2}", Symbol.TickSize, Symbol.Digits, Symbol.PipSize); }