/// <summary> /// Returns the candle setting for the requested type /// </summary> /// <param name="type">The candle setting type</param> public static CandleSetting Get(CandleSettingType type) { CandleSetting setting; DefaultSettings.TryGetValue(type, out setting); return(setting); }
/// <summary> /// Returns the average range of the previous candles /// </summary> /// <param name="type">The type of setting to use</param> /// <param name="sum">The sum of the previous candles ranges</param> /// <param name="tradeBar">The input candle</param> protected static double GetCandleAverage(CandleSettingType type, double sum, DoubleArray tradeBar) { var defaultSetting = CandleSettings.Get(type); return(defaultSetting.Factor * (defaultSetting.AveragePeriod != 0 ? sum / defaultSetting.AveragePeriod : GetCandleRange(type, tradeBar)) / (defaultSetting.RangeType == CandleRangeType.Shadows ? 2.0d : 1.0d)); }
/// <summary> /// Returns the average range of the previous candles /// </summary> /// <param name="type">The type of setting to use</param> /// <param name="sum">The sum of the previous candles ranges</param> /// <param name="tradeBar">The input candle</param> protected static decimal GetCandleAverage(CandleSettingType type, decimal sum, DataPointBar tradeBar) { var defaultSetting = CandleSettings.Get(type); return(defaultSetting.Factor * (defaultSetting.AveragePeriod != 0 ? sum / defaultSetting.AveragePeriod : GetCandleRange(type, tradeBar)) / (defaultSetting.RangeType == CandleRangeType.Shadows ? 2.0m : 1.0m)); }
protected double GetCandleRange(CandleSettingType candleSettingType, int index) { return(GetCandleRangeType(candleSettingType) switch { RangeType.RealBody => GetRealBody(index), RangeType.HighLow => GetHighLowRange(index), RangeType.Shadows => GetUpperShadow(index) + GetLowerShadow(index), _ => 0.0 });
private static double TA_CandleRange(IReadOnlyList <double> open, IReadOnlyList <double> high, IReadOnlyList <double> low, IReadOnlyList <double> close, CandleSettingType set, int idx) { return(TA_CandleRangeType(set) switch { RangeType.RealBody => TA_RealBody(close, open, idx), RangeType.HighLow => TA_HighLowRange(high, low, idx), RangeType.Shadows => TA_UpperShadow(high, close, open, idx) + TA_LowerShadow(close, open, low, idx), _ => 0 });
public static RetCode SetCandleSettings(CandleSettingType settingType, RangeType rangeType, int avgPeriod, double factor) { if (settingType >= CandleSettingType.AllCandleSettings) { return(RetCode.BadParam); } Globals.candleSettings[(int)settingType].settingType = settingType; Globals.candleSettings[(int)settingType].rangeType = rangeType; Globals.candleSettings[(int)settingType].avgPeriod = avgPeriod; Globals.candleSettings[(int)settingType].factor = factor; return(RetCode.Success); }
/// <summary> /// Returns the range of a candle /// </summary> /// <param name="type">The type of setting to use</param> /// <param name="tradeBar">The input candle</param> protected static double GetCandleRange(CandleSettingType type, DoubleArray tradeBar) { switch (CandleSettings.Get(type).RangeType) { case CandleRangeType.RealBody: return(GetRealBody(tradeBar)); case CandleRangeType.HighLow: return(GetHighLowRange(tradeBar)); case CandleRangeType.Shadows: return(GetUpperShadow(tradeBar) + GetLowerShadow(tradeBar)); default: return(0d); } }
/// <summary> /// Returns the range of a candle /// </summary> /// <param name="type">The type of setting to use</param> /// <param name="tradeBar">The input candle</param> protected static decimal GetCandleRange(CandleSettingType type, DataPointBar tradeBar) { switch (CandleSettings.Get(type).RangeType) { case CandleRangeType.RealBody: return(GetRealBody(tradeBar)); case CandleRangeType.HighLow: return(GetHighLowRange(tradeBar)); case CandleRangeType.Shadows: return(GetUpperShadow(tradeBar) + GetLowerShadow(tradeBar)); default: return(0m); } }
public static RetCode RestoreCandleDefaultSettings(CandleSettingType settingType) { switch (settingType) { case CandleSettingType.BodyLong: SetCandleSettings(CandleSettingType.BodyLong, RangeType.RealBody, 10, 1.0); break; case CandleSettingType.BodyVeryLong: SetCandleSettings(CandleSettingType.BodyVeryLong, RangeType.RealBody, 10, 3.0); break; case CandleSettingType.BodyShort: SetCandleSettings(CandleSettingType.BodyShort, RangeType.RealBody, 10, 1.0); break; case CandleSettingType.BodyDoji: SetCandleSettings(CandleSettingType.BodyDoji, RangeType.HighLow, 10, 0.1); break; case CandleSettingType.ShadowLong: SetCandleSettings(CandleSettingType.ShadowLong, RangeType.RealBody, 0, 1.0); break; case CandleSettingType.ShadowVeryLong: SetCandleSettings(CandleSettingType.ShadowVeryLong, RangeType.RealBody, 0, 2.0); break; case CandleSettingType.ShadowShort: SetCandleSettings(CandleSettingType.ShadowShort, RangeType.Shadows, 10, 1.0); break; case CandleSettingType.ShadowVeryShort: SetCandleSettings(CandleSettingType.ShadowVeryShort, RangeType.HighLow, 10, 0.1); break; case CandleSettingType.Near: SetCandleSettings(CandleSettingType.Near, RangeType.HighLow, 5, 0.2); break; case CandleSettingType.Far: SetCandleSettings(CandleSettingType.Far, RangeType.HighLow, 5, 0.6); break; case CandleSettingType.Equal: SetCandleSettings(CandleSettingType.Equal, RangeType.HighLow, 5, 0.05); break; case CandleSettingType.AllCandleSettings: SetCandleSettings(CandleSettingType.BodyLong, RangeType.RealBody, 10, 1.0); SetCandleSettings(CandleSettingType.BodyVeryLong, RangeType.RealBody, 10, 3.0); SetCandleSettings(CandleSettingType.BodyShort, RangeType.RealBody, 10, 1.0); SetCandleSettings(CandleSettingType.BodyDoji, RangeType.HighLow, 10, 0.1); SetCandleSettings(CandleSettingType.ShadowLong, RangeType.RealBody, 0, 1.0); SetCandleSettings(CandleSettingType.ShadowVeryLong, RangeType.RealBody, 0, 2.0); SetCandleSettings(CandleSettingType.ShadowShort, RangeType.Shadows, 10, 1.0); SetCandleSettings(CandleSettingType.ShadowVeryShort, RangeType.HighLow, 10, 0.1); SetCandleSettings(CandleSettingType.Near, RangeType.HighLow, 5, 0.2); SetCandleSettings(CandleSettingType.Far, RangeType.HighLow, 5, 0.6); SetCandleSettings(CandleSettingType.Equal, RangeType.HighLow, 5, 0.05); break; } return(RetCode.Success); }
private static double TA_CandleFactor(CandleSettingType set) { return(Globals.CandleSettings[(int)set].Factor); }
private static int TA_CandleAvgPeriod(CandleSettingType set) { return(Globals.CandleSettings[(int)set].AvgPeriod); }
private static RangeType TA_CandleRangeType(CandleSettingType set) { return(Globals.CandleSettings[(int)set].RangeType); }
/// <summary> /// Changes the default candle setting for the requested type /// </summary> /// <param name="type">The candle setting type</param> /// <param name="setting">The candle setting</param> public static void Set(CandleSettingType type, CandleSetting setting) { DefaultSettings[type] = setting; }
protected double GetCandleFactor(CandleSettingType candleSettingType) => TACore.Globals.candleSettings[(int)candleSettingType].factor;
protected int GetCandleAvgPeriod(CandleSettingType candleSettingType) => TACore.Globals.candleSettings[(int)candleSettingType].avgPeriod;
protected RangeType GetCandleRangeType(CandleSettingType candleSettingType) => TACore.Globals.candleSettings[(int)candleSettingType].rangeType;
/// <summary> /// Returns the candle setting for the requested type /// </summary> /// <param name="type">The candle setting type</param> public static CandleSetting Get(CandleSettingType type) { CandleSetting setting; DefaultSettings.TryGetValue(type, out setting); return setting; }