public AlgoMetaDataBuilder WithAlgoParams(AlgoParamsDTO algoParams) { algoMetaDataInformation.Parameters = GetParamBuilder().CreateParameters() .WithParameterStartFrom(algoParams.StartFrom.ToString(GlobalConstants.ISO_8601_DATE_FORMAT)) .WithParameterEndOn(algoParams.EndOn.ToString(GlobalConstants.ISO_8601_DATE_FORMAT)) .WithParameterAssetPair(algoParams.AssetPair) .WithParameterTradedAsset(algoParams.TradedAsset) .WithParameterVolume(algoParams.Volume) .WithParameterCandleInterval(algoParams.CandleInterval) .Build(); return(this); }
private static AlgoMetaDataInformation BuildAlgoMetaDataInformation(InstanceParameters instanceParameters, DaysOffsetDTO daysOffsetDTO) { FunctionParamsDTO smaShortFunctionParamsDTO = null; FunctionParamsDTO smaLongFunctionParamsDTO = null; FunctionParamsDTO adxFunctionParamsDTO = null; FunctionParamsDTO macdFunctionParamsDTO = null; AlgoParamsDTO algoParamsDTO = new AlgoParamsDTO(daysOffsetDTO.AlgoStartOffset, daysOffsetDTO.AlgoEndOffset, instanceParameters.AssetPair, instanceParameters.TradedAsset, instanceParameters.InstanceTradeVolume, instanceParameters.InstanceCandleInterval); // Create SMA_SHORT function parameters if (instanceParameters.InstanceFunctions.Contains(FunctionType.SMA_Short)) { smaShortFunctionParamsDTO = new FunctionParamsDTO(FunctionType.SMA_Short, daysOffsetDTO.SmaShortStartOffset, daysOffsetDTO.SmaShortEndOffset, instanceParameters.AssetPair, instanceParameters.FunctionPeriod, instanceParameters.FunctionCandleOperationMode, instanceParameters.FunctionCandleInterval); // Add the function params to the functionsDictionary AddToFunctionsDictionary(FunctionType.SMA_Short, smaShortFunctionParamsDTO); } // Create SMA_Long function parameters if (instanceParameters.InstanceFunctions.Contains(FunctionType.SMA_Long)) { smaLongFunctionParamsDTO = new FunctionParamsDTO(FunctionType.SMA_Long, daysOffsetDTO.SmaLongStartOffset, daysOffsetDTO.SmaLongEndOffset, instanceParameters.AssetPair, instanceParameters.FunctionPeriod, instanceParameters.FunctionCandleOperationMode, instanceParameters.FunctionCandleInterval); // Add the function params to the functionsDictionary AddToFunctionsDictionary(FunctionType.SMA_Long, smaLongFunctionParamsDTO); } // Create ADX function parameters if (instanceParameters.InstanceFunctions.Contains(FunctionType.ADX)) { throw new NotImplementedException("Creating parameters for ADX function is not yet implemented"); // Add the function params to the functionsDictionary //AddToFunctionsDictionary(FunctionType.ADX, adxFunctionParamsDTO); } // Create MACD function parameters if (instanceParameters.InstanceFunctions.Contains(FunctionType.MACD)) { throw new NotImplementedException("Creating parameters for MACD function is not yet implemented"); // Add the function params to the functionsDictionary //AddToFunctionsDictionary(FunctionType.MACD, macdFunctionParamsDTO); } // Build Algo Metadata return(GetAlgoMetaDataBuilder() .CreateAlgoMetaData() .WithAlgoParams(algoParamsDTO) .WithFunction(smaShortFunctionParamsDTO, FunctionType.SMA_Short) .WithFunction(smaLongFunctionParamsDTO, FunctionType.SMA_Long) .WithFunction(adxFunctionParamsDTO, FunctionType.ADX) .WithFunction(macdFunctionParamsDTO, FunctionType.MACD) .Build()); }