Rename strategy to indicators
This commit is contained in:
@@ -4,9 +4,9 @@ using Skender.Stock.Indicators;
|
||||
|
||||
namespace Managing.Domain.Strategies.Base;
|
||||
|
||||
public abstract class EmaBaseStrategy : Strategy
|
||||
public abstract class EmaBaseIndicator : Indicator
|
||||
{
|
||||
protected EmaBaseStrategy(string name, Enums.StrategyType type) : base(name, type)
|
||||
protected EmaBaseIndicator(string name, Enums.IndicatorType type) : base(name, type)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ using Skender.Stock.Indicators;
|
||||
|
||||
namespace Managing.Domain.Strategies.Base;
|
||||
|
||||
public class StrategiesResultBase
|
||||
public class IndicatorsResultBase
|
||||
{
|
||||
public List<EmaResult> Ema { get; set; }
|
||||
public List<EmaResult> FastEma { get; set; }
|
||||
@@ -7,11 +7,11 @@ using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Strategies.Context;
|
||||
|
||||
public class StDevContext : Strategy
|
||||
public class StDevContext : Indicator
|
||||
{
|
||||
public List<Signal> Signals { get; set; }
|
||||
|
||||
public StDevContext(string name, int period) : base(name, StrategyType.StDev)
|
||||
public StDevContext(string name, int period) : base(name, IndicatorType.StDev)
|
||||
{
|
||||
Signals = new List<Signal>();
|
||||
Period = period;
|
||||
@@ -73,9 +73,9 @@ public class StDevContext : Strategy
|
||||
}
|
||||
}
|
||||
|
||||
public override StrategiesResultBase GetStrategyValues()
|
||||
public override IndicatorsResultBase GetStrategyValues()
|
||||
{
|
||||
var test = new StrategiesResultBase()
|
||||
var test = new IndicatorsResultBase()
|
||||
{
|
||||
StdDev = Candles.GetStdDev(Period.Value).ToList()
|
||||
};
|
||||
|
||||
@@ -5,10 +5,10 @@ using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Strategies
|
||||
{
|
||||
public interface IStrategy
|
||||
public interface IIndicator
|
||||
{
|
||||
string Name { get; set; }
|
||||
StrategyType Type { get; set; }
|
||||
IndicatorType Type { get; set; }
|
||||
SignalType SignalType { get; set; }
|
||||
int? Period { get; set; }
|
||||
int? FastPeriods { get; set; }
|
||||
@@ -17,7 +17,7 @@ namespace Managing.Domain.Strategies
|
||||
FixedSizeQueue<Candle> Candles { get; set; }
|
||||
|
||||
List<Signal> Run();
|
||||
StrategiesResultBase GetStrategyValues();
|
||||
IndicatorsResultBase GetStrategyValues();
|
||||
void UpdateCandles(HashSet<Candle> newCandles);
|
||||
string GetName();
|
||||
}
|
||||
@@ -8,9 +8,9 @@ using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Strategies
|
||||
{
|
||||
public class Strategy : IStrategy
|
||||
public class Indicator : IIndicator
|
||||
{
|
||||
public Strategy(string name, StrategyType type)
|
||||
public Indicator(string name, IndicatorType type)
|
||||
{
|
||||
Name = name;
|
||||
Type = type;
|
||||
@@ -20,7 +20,7 @@ namespace Managing.Domain.Strategies
|
||||
|
||||
public string Name { get; set; }
|
||||
[JsonIgnore] public FixedSizeQueue<Candle> Candles { get; set; }
|
||||
public StrategyType Type { get; set; }
|
||||
public IndicatorType Type { get; set; }
|
||||
public SignalType SignalType { get; set; }
|
||||
public int MinimumHistory { get; set; }
|
||||
public int? Period { get; set; }
|
||||
@@ -38,9 +38,9 @@ namespace Managing.Domain.Strategies
|
||||
return new List<Signal>();
|
||||
}
|
||||
|
||||
public virtual StrategiesResultBase GetStrategyValues()
|
||||
public virtual IndicatorsResultBase GetStrategyValues()
|
||||
{
|
||||
return new StrategiesResultBase();
|
||||
return new IndicatorsResultBase();
|
||||
}
|
||||
|
||||
public void UpdateCandles(HashSet<Candle> newCandles)
|
||||
@@ -18,12 +18,12 @@ namespace Managing.Domain.Strategies
|
||||
[Required] public string Identifier { get; }
|
||||
[Required] public Ticker Ticker { get; }
|
||||
[Required] public TradingExchanges Exchange { get; set; }
|
||||
[Required] public StrategyType StrategyType { get; set; }
|
||||
[Required] public IndicatorType IndicatorType { get; set; }
|
||||
[Required] public SignalType SignalType { get; set; }
|
||||
public User User { get; set; }
|
||||
|
||||
public Signal(Ticker ticker, TradeDirection direction, Confidence confidence, Candle candle, DateTime date,
|
||||
TradingExchanges exchange, StrategyType strategyType, SignalType signalType, User user = null)
|
||||
TradingExchanges exchange, IndicatorType indicatorType, SignalType signalType, User user = null)
|
||||
{
|
||||
Direction = direction;
|
||||
Confidence = confidence;
|
||||
@@ -32,10 +32,11 @@ namespace Managing.Domain.Strategies
|
||||
Ticker = ticker;
|
||||
Exchange = exchange;
|
||||
Status = SignalStatus.WaitingForPosition;
|
||||
StrategyType = strategyType;
|
||||
IndicatorType = indicatorType;
|
||||
User = user;
|
||||
|
||||
Identifier = $"{StrategyType}-{direction}-{ticker}-{candle?.Close.ToString(CultureInfo.InvariantCulture)}-{date:yyyyMMdd-HHmmss}";
|
||||
Identifier =
|
||||
$"{IndicatorType}-{direction}-{ticker}-{candle?.Close.ToString(CultureInfo.InvariantCulture)}-{date:yyyyMMdd-HHmmss}";
|
||||
SignalType = signalType;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,11 +7,12 @@ using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Strategies.Signals;
|
||||
|
||||
public class ChandelierExitStrategy : Strategy
|
||||
public class ChandelierExitIndicator : Indicator
|
||||
{
|
||||
public List<Signal> Signals { get; set; }
|
||||
|
||||
public ChandelierExitStrategy(string name, int period, double multiplier) : base(name, StrategyType.ChandelierExit)
|
||||
public ChandelierExitIndicator(string name, int period, double multiplier) : base(name,
|
||||
IndicatorType.ChandelierExit)
|
||||
{
|
||||
Signals = new List<Signal>();
|
||||
Period = period;
|
||||
@@ -39,9 +40,9 @@ public class ChandelierExitStrategy : Strategy
|
||||
}
|
||||
}
|
||||
|
||||
public override StrategiesResultBase GetStrategyValues()
|
||||
public override IndicatorsResultBase GetStrategyValues()
|
||||
{
|
||||
return new StrategiesResultBase()
|
||||
return new IndicatorsResultBase()
|
||||
{
|
||||
ChandelierLong = Candles.GetChandelier(Period.Value, Multiplier.Value, ChandelierType.Long).ToList(),
|
||||
ChandelierShort = Candles.GetChandelier(Period.Value, Multiplier.Value, ChandelierType.Short).ToList()
|
||||
@@ -7,11 +7,11 @@ using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Strategies.Signals;
|
||||
|
||||
public class DualEmaCrossStrategy : EmaBaseStrategy
|
||||
public class DualEmaCrossIndicator : EmaBaseIndicator
|
||||
{
|
||||
public List<Signal> Signals { get; set; }
|
||||
|
||||
public DualEmaCrossStrategy(string name, int fastPeriod, int slowPeriod) : base(name, StrategyType.DualEmaCross)
|
||||
public DualEmaCrossIndicator(string name, int fastPeriod, int slowPeriod) : base(name, IndicatorType.DualEmaCross)
|
||||
{
|
||||
Signals = new List<Signal>();
|
||||
FastPeriods = fastPeriod;
|
||||
@@ -19,9 +19,9 @@ public class DualEmaCrossStrategy : EmaBaseStrategy
|
||||
MinimumHistory = Math.Max(fastPeriod, slowPeriod) * 2;
|
||||
}
|
||||
|
||||
public override StrategiesResultBase GetStrategyValues()
|
||||
public override IndicatorsResultBase GetStrategyValues()
|
||||
{
|
||||
return new StrategiesResultBase()
|
||||
return new IndicatorsResultBase()
|
||||
{
|
||||
FastEma = Candles.GetEma(FastPeriods.Value).ToList(),
|
||||
SlowEma = Candles.GetEma(SlowPeriods.Value).ToList()
|
||||
@@ -6,19 +6,19 @@ using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Strategies.Signals;
|
||||
|
||||
public class EmaCrossStrategy : EmaBaseStrategy
|
||||
public class EmaCrossIndicator : EmaBaseIndicator
|
||||
{
|
||||
public List<Signal> Signals { get; set; }
|
||||
|
||||
public EmaCrossStrategy(string name, int period) : base(name, StrategyType.EmaCross)
|
||||
public EmaCrossIndicator(string name, int period) : base(name, IndicatorType.EmaCross)
|
||||
{
|
||||
Signals = new List<Signal>();
|
||||
Period = period;
|
||||
}
|
||||
|
||||
public override StrategiesResultBase GetStrategyValues()
|
||||
public override IndicatorsResultBase GetStrategyValues()
|
||||
{
|
||||
return new StrategiesResultBase()
|
||||
return new IndicatorsResultBase()
|
||||
{
|
||||
Ema = Candles.GetEma(Period.Value).ToList()
|
||||
};
|
||||
@@ -14,12 +14,12 @@ namespace Managing.Domain.Strategies.Signals;
|
||||
/// 2. Long signals on STC rebound from oversold (25- → ≥25) with recent compressed volatility (max <11)
|
||||
/// 3. Avoids look-ahead bias through proper rolling window implementation
|
||||
/// </summary>
|
||||
public class LaggingSTC : Strategy
|
||||
public class LaggingSTC : Indicator
|
||||
{
|
||||
public List<Signal> Signals { get; set; }
|
||||
|
||||
public LaggingSTC(string name, int cyclePeriods, int fastPeriods, int slowPeriods) : base(name,
|
||||
StrategyType.LaggingStc)
|
||||
IndicatorType.LaggingStc)
|
||||
{
|
||||
Signals = new List<Signal>();
|
||||
FastPeriods = fastPeriods;
|
||||
@@ -89,10 +89,10 @@ public class LaggingSTC : Strategy
|
||||
}
|
||||
}
|
||||
|
||||
public override StrategiesResultBase GetStrategyValues()
|
||||
public override IndicatorsResultBase GetStrategyValues()
|
||||
{
|
||||
var stc = Candles.GetStc(FastPeriods.Value, FastPeriods.Value, SlowPeriods.Value).ToList();
|
||||
return new StrategiesResultBase
|
||||
return new IndicatorsResultBase
|
||||
{
|
||||
Stc = stc
|
||||
};
|
||||
|
||||
@@ -7,12 +7,12 @@ using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Strategies.Signals;
|
||||
|
||||
public class MacdCrossStrategy : Strategy
|
||||
public class MacdCrossIndicator : Indicator
|
||||
{
|
||||
public List<Signal> Signals { get; set; }
|
||||
|
||||
public MacdCrossStrategy(string name, int fastPeriods, int slowPeriods, int signalPeriods) :
|
||||
base(name, StrategyType.MacdCross)
|
||||
public MacdCrossIndicator(string name, int fastPeriods, int slowPeriods, int signalPeriods) :
|
||||
base(name, IndicatorType.MacdCross)
|
||||
{
|
||||
Signals = new List<Signal>();
|
||||
FastPeriods = fastPeriods;
|
||||
@@ -59,9 +59,9 @@ public class MacdCrossStrategy : Strategy
|
||||
}
|
||||
}
|
||||
|
||||
public override StrategiesResultBase GetStrategyValues()
|
||||
public override IndicatorsResultBase GetStrategyValues()
|
||||
{
|
||||
return new StrategiesResultBase()
|
||||
return new IndicatorsResultBase()
|
||||
{
|
||||
Macd = Candles.GetMacd(FastPeriods.Value, SlowPeriods.Value, SignalPeriods.Value).ToList()
|
||||
};
|
||||
@@ -7,11 +7,11 @@ using Candle = Managing.Domain.Candles.Candle;
|
||||
|
||||
namespace Managing.Domain.Strategies.Signals;
|
||||
|
||||
public class RsiDivergenceConfirmStrategy : Strategy
|
||||
public class RsiDivergenceConfirmIndicator : Indicator
|
||||
{
|
||||
public List<Signal> Signals { get; set; }
|
||||
|
||||
public RsiDivergenceConfirmStrategy(string name, int period) : base(name, StrategyType.RsiDivergenceConfirm)
|
||||
public RsiDivergenceConfirmIndicator(string name, int period) : base(name, IndicatorType.RsiDivergenceConfirm)
|
||||
{
|
||||
Period = period;
|
||||
Signals = new List<Signal>();
|
||||
@@ -49,9 +49,9 @@ public class RsiDivergenceConfirmStrategy : Strategy
|
||||
}
|
||||
}
|
||||
|
||||
public override StrategiesResultBase GetStrategyValues()
|
||||
public override IndicatorsResultBase GetStrategyValues()
|
||||
{
|
||||
return new StrategiesResultBase()
|
||||
return new IndicatorsResultBase()
|
||||
{
|
||||
Rsi = Candles.GetRsi(Period.Value).ToList()
|
||||
};
|
||||
@@ -7,14 +7,14 @@ using Candle = Managing.Domain.Candles.Candle;
|
||||
|
||||
namespace Managing.Domain.Strategies.Signals;
|
||||
|
||||
public class RsiDivergenceStrategy : Strategy
|
||||
public class RsiDivergenceIndicator : Indicator
|
||||
{
|
||||
public List<Signal> Signals { get; set; }
|
||||
public TradeDirection Direction { get; set; }
|
||||
private const int UpperBand = 70;
|
||||
private const int LowerBand = 30;
|
||||
|
||||
public RsiDivergenceStrategy(string name, int period) : base(name, StrategyType.RsiDivergence)
|
||||
public RsiDivergenceIndicator(string name, int period) : base(name, IndicatorType.RsiDivergence)
|
||||
{
|
||||
Period = period;
|
||||
Signals = new List<Signal>();
|
||||
@@ -52,9 +52,9 @@ public class RsiDivergenceStrategy : Strategy
|
||||
}
|
||||
}
|
||||
|
||||
public override StrategiesResultBase GetStrategyValues()
|
||||
public override IndicatorsResultBase GetStrategyValues()
|
||||
{
|
||||
return new StrategiesResultBase()
|
||||
return new IndicatorsResultBase()
|
||||
{
|
||||
Rsi = Candles.GetRsi(Period.Value).ToList()
|
||||
};
|
||||
@@ -7,11 +7,11 @@ using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Strategies.Signals;
|
||||
|
||||
public class StcStrategy : Strategy
|
||||
public class StcIndicator : Indicator
|
||||
{
|
||||
public List<Signal> Signals { get; set; }
|
||||
|
||||
public StcStrategy(string name, int cyclePeriods, int fastPeriods, int slowPeriods) : base(name, StrategyType.Stc)
|
||||
public StcIndicator(string name, int cyclePeriods, int fastPeriods, int slowPeriods) : base(name, IndicatorType.Stc)
|
||||
{
|
||||
Signals = new List<Signal>();
|
||||
FastPeriods = fastPeriods;
|
||||
@@ -64,12 +64,12 @@ public class StcStrategy : Strategy
|
||||
}
|
||||
}
|
||||
|
||||
public override StrategiesResultBase GetStrategyValues()
|
||||
public override IndicatorsResultBase GetStrategyValues()
|
||||
{
|
||||
if (FastPeriods != null && SlowPeriods != null)
|
||||
{
|
||||
var stc = Candles.GetStc(FastPeriods.Value, FastPeriods.Value, SlowPeriods.Value).ToList();
|
||||
return new StrategiesResultBase
|
||||
return new IndicatorsResultBase
|
||||
{
|
||||
Stc = stc
|
||||
};
|
||||
@@ -7,11 +7,11 @@ using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Strategies.Signals;
|
||||
|
||||
public class SuperTrendCrossEma : Strategy
|
||||
public class SuperTrendCrossEma : Indicator
|
||||
{
|
||||
public List<Signal> Signals { get; set; }
|
||||
|
||||
public SuperTrendCrossEma(string name, int period, double multiplier) : base(name, StrategyType.SuperTrendCrossEma)
|
||||
public SuperTrendCrossEma(string name, int period, double multiplier) : base(name, IndicatorType.SuperTrendCrossEma)
|
||||
{
|
||||
Signals = new List<Signal>();
|
||||
Period = period;
|
||||
@@ -157,9 +157,9 @@ public class SuperTrendCrossEma : Strategy
|
||||
return superTrends;
|
||||
}
|
||||
|
||||
public override StrategiesResultBase GetStrategyValues()
|
||||
public override IndicatorsResultBase GetStrategyValues()
|
||||
{
|
||||
return new StrategiesResultBase()
|
||||
return new IndicatorsResultBase()
|
||||
{
|
||||
SuperTrend = Candles.GetSuperTrend(Period.Value, Multiplier.Value).Where(s => s.SuperTrend.HasValue)
|
||||
.ToList()
|
||||
|
||||
@@ -7,11 +7,11 @@ using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Strategies.Signals;
|
||||
|
||||
public class SuperTrendStrategy : Strategy
|
||||
public class SuperTrendIndicator : Indicator
|
||||
{
|
||||
public List<Signal> Signals { get; set; }
|
||||
|
||||
public SuperTrendStrategy(string name, int period, double multiplier) : base(name, StrategyType.SuperTrend)
|
||||
public SuperTrendIndicator(string name, int period, double multiplier) : base(name, IndicatorType.SuperTrend)
|
||||
{
|
||||
Signals = new List<Signal>();
|
||||
Period = period;
|
||||
@@ -61,9 +61,9 @@ public class SuperTrendStrategy : Strategy
|
||||
}
|
||||
}
|
||||
|
||||
public override StrategiesResultBase GetStrategyValues()
|
||||
public override IndicatorsResultBase GetStrategyValues()
|
||||
{
|
||||
return new StrategiesResultBase()
|
||||
return new IndicatorsResultBase()
|
||||
{
|
||||
SuperTrend = Candles.GetSuperTrend(Period.Value, Multiplier.Value).Where(s => s.SuperTrend.HasValue)
|
||||
.ToList()
|
||||
@@ -6,10 +6,10 @@ using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Strategies.Signals
|
||||
{
|
||||
public class ThreeWhiteSoldiersStrategy : Strategy
|
||||
public class ThreeWhiteSoldiersIndicator : Indicator
|
||||
{
|
||||
public ThreeWhiteSoldiersStrategy(string name, int period)
|
||||
: base(name, StrategyType.ThreeWhiteSoldiers)
|
||||
public ThreeWhiteSoldiersIndicator(string name, int period)
|
||||
: base(name, IndicatorType.ThreeWhiteSoldiers)
|
||||
{
|
||||
Period = period;
|
||||
}
|
||||
@@ -52,7 +52,7 @@ namespace Managing.Domain.Strategies.Signals
|
||||
}
|
||||
}
|
||||
|
||||
public override StrategiesResultBase GetStrategyValues()
|
||||
public override IndicatorsResultBase GetStrategyValues()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
@@ -6,11 +6,11 @@ using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Strategies.Trends;
|
||||
|
||||
public class EmaTrendStrategy : EmaBaseStrategy
|
||||
public class EmaTrendIndicator : EmaBaseIndicator
|
||||
{
|
||||
public List<Signal> Signals { get; set; }
|
||||
|
||||
public EmaTrendStrategy(string name, int period) : base(name, StrategyType.EmaTrend)
|
||||
public EmaTrendIndicator(string name, int period) : base(name, IndicatorType.EmaTrend)
|
||||
{
|
||||
Signals = new List<Signal>();
|
||||
Period = period;
|
||||
@@ -54,9 +54,9 @@ public class EmaTrendStrategy : EmaBaseStrategy
|
||||
}
|
||||
}
|
||||
|
||||
public override StrategiesResultBase GetStrategyValues()
|
||||
public override IndicatorsResultBase GetStrategyValues()
|
||||
{
|
||||
return new StrategiesResultBase()
|
||||
return new IndicatorsResultBase()
|
||||
{
|
||||
Ema = Candles.GetEma(Period.Value).ToList()
|
||||
};
|
||||
@@ -7,16 +7,16 @@ using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Strategies.Trends;
|
||||
|
||||
public class StochRsiTrendStrategy : Strategy
|
||||
public class StochRsiTrendIndicator : Indicator
|
||||
{
|
||||
public List<Signal> Signals { get; set; }
|
||||
|
||||
public StochRsiTrendStrategy(
|
||||
public StochRsiTrendIndicator(
|
||||
string name,
|
||||
int period,
|
||||
int stochPeriod,
|
||||
int signalPeriod,
|
||||
int smoothPeriods) : base(name, StrategyType.StochRsiTrend)
|
||||
int smoothPeriods) : base(name, IndicatorType.StochRsiTrend)
|
||||
{
|
||||
Signals = new List<Signal>();
|
||||
StochPeriods = stochPeriod;
|
||||
@@ -65,9 +65,9 @@ public class StochRsiTrendStrategy : Strategy
|
||||
}
|
||||
}
|
||||
|
||||
public override StrategiesResultBase GetStrategyValues()
|
||||
public override IndicatorsResultBase GetStrategyValues()
|
||||
{
|
||||
return new StrategiesResultBase()
|
||||
return new IndicatorsResultBase()
|
||||
{
|
||||
StochRsi = Candles.GetStochRsi(Period.Value, StochPeriods.Value, SignalPeriods.Value, SmoothPeriods.Value)
|
||||
.ToList()
|
||||
Reference in New Issue
Block a user