Update tg message for synthapi
This commit is contained in:
@@ -183,7 +183,7 @@ public static class ScenarioHelpers
|
||||
IndicatorType.EmaCross => SignalType.Signal,
|
||||
IndicatorType.DualEmaCross => SignalType.Signal,
|
||||
IndicatorType.ThreeWhiteSoldiers => SignalType.Signal,
|
||||
IndicatorType.SuperTrend => SignalType.Signal,
|
||||
IndicatorType.SuperTrend => SignalType.Trend,
|
||||
IndicatorType.ChandelierExit => SignalType.Signal,
|
||||
IndicatorType.EmaTrend => SignalType.Trend,
|
||||
IndicatorType.Composite => SignalType.Signal,
|
||||
|
||||
@@ -58,7 +58,7 @@ public static class TradingBox
|
||||
public static Signal GetSignal(HashSet<Candle> newCandles, HashSet<IIndicator> strategies,
|
||||
HashSet<Signal> previousSignal, IndicatorComboConfig config, int? loopbackPeriod = 1)
|
||||
{
|
||||
var signalOnCandles = new HashSet<Signal>();
|
||||
var signalOnCandles = new List<Signal>();
|
||||
var limitedCandles = newCandles.ToList().TakeLast(600).ToList();
|
||||
|
||||
foreach (var strategy in strategies)
|
||||
@@ -141,6 +141,8 @@ public static class TradingBox
|
||||
return signalOnCandles.Single();
|
||||
}
|
||||
|
||||
signalOnCandles = signalOnCandles.OrderBy(s => s.Date).ToHashSet();
|
||||
|
||||
// Check if all strategies produced signals - this is required for composite signals
|
||||
var strategyNames = strategies.Select(s => s.Name).ToHashSet();
|
||||
var signalIndicatorNames = signalOnCandles.Select(s => s.IndicatorName).ToHashSet();
|
||||
|
||||
@@ -38,14 +38,20 @@ public class MacdCrossIndicator : Indicator
|
||||
var previousCandle = macdCandle[0];
|
||||
foreach (var currentCandle in macdCandle.Skip(1))
|
||||
{
|
||||
if (previousCandle.Histogram > 0 && currentCandle.Histogram < 0 && currentCandle.Macd < 0)
|
||||
// Only trigger signals when Signal line is outside -100 to 100 range (extreme conditions)
|
||||
if (currentCandle.Signal < -200 || currentCandle.Signal > 200)
|
||||
{
|
||||
AddSignal(currentCandle, TradeDirection.Short, Confidence.Medium);
|
||||
}
|
||||
// Check for MACD line crossing below Signal line (bearish cross)
|
||||
if (previousCandle.Macd > previousCandle.Signal && currentCandle.Macd < currentCandle.Signal)
|
||||
{
|
||||
AddSignal(currentCandle, TradeDirection.Short, Confidence.Medium);
|
||||
}
|
||||
|
||||
if (previousCandle.Histogram < 0 && currentCandle.Histogram > 0 && currentCandle.Macd > 0)
|
||||
{
|
||||
AddSignal(currentCandle, TradeDirection.Long, Confidence.Medium);
|
||||
// Check for MACD line crossing above Signal line (bullish cross)
|
||||
if (previousCandle.Macd < previousCandle.Signal && currentCandle.Macd > currentCandle.Signal)
|
||||
{
|
||||
AddSignal(currentCandle, TradeDirection.Long, Confidence.Medium);
|
||||
}
|
||||
}
|
||||
|
||||
previousCandle = currentCandle;
|
||||
@@ -84,7 +90,8 @@ public class MacdCrossIndicator : Indicator
|
||||
Ticker = candle.Ticker,
|
||||
Exchange = candle.Exchange,
|
||||
Macd = currentMacd.Macd.Value,
|
||||
Histogram = currentMacd.Histogram.Value
|
||||
Histogram = currentMacd.Histogram.Value,
|
||||
Signal = currentMacd.Signal.Value
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,17 +38,26 @@ public class SuperTrendIndicator : Indicator
|
||||
var previousCandle = superTrendCandle[0];
|
||||
foreach (var currentCandle in superTrendCandle.Skip(1))
|
||||
{
|
||||
// Short
|
||||
if (currentCandle.Close < previousCandle.SuperTrend && previousCandle.Close > previousCandle.SuperTrend)
|
||||
{
|
||||
AddSignal(currentCandle, TradeDirection.Short, Confidence.Medium);
|
||||
}
|
||||
// // Short
|
||||
// if (currentCandle.Close < previousCandle.SuperTrend && previousCandle.Close > previousCandle.SuperTrend)
|
||||
// {
|
||||
// AddSignal(currentCandle, TradeDirection.Short, Confidence.Medium);
|
||||
// }
|
||||
//
|
||||
// // Long
|
||||
// if (currentCandle.Close > previousCandle.SuperTrend && previousCandle.Close < previousCandle.SuperTrend)
|
||||
// {
|
||||
// AddSignal(currentCandle, TradeDirection.Long, Confidence.Medium);
|
||||
// }
|
||||
|
||||
// Long
|
||||
if (currentCandle.Close > previousCandle.SuperTrend && previousCandle.Close < previousCandle.SuperTrend)
|
||||
if (currentCandle.SuperTrend < currentCandle.Close)
|
||||
{
|
||||
AddSignal(currentCandle, TradeDirection.Long, Confidence.Medium);
|
||||
}
|
||||
else if (currentCandle.SuperTrend > currentCandle.Close)
|
||||
{
|
||||
AddSignal(currentCandle, TradeDirection.Short, Confidence.Medium);
|
||||
}
|
||||
|
||||
previousCandle = currentCandle;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user