Skip to content

Commit

Permalink
Converted some OHLCV return types to ZigZag;
Browse files Browse the repository at this point in the history
  • Loading branch information
przemyslawbak committed Dec 4, 2024
1 parent f8cea04 commit 3c1a198
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 40 deletions.
16 changes: 8 additions & 8 deletions Candlestick_Patterns/ISignals.cs
Original file line number Diff line number Diff line change
Expand Up @@ -117,16 +117,16 @@ public interface ISignals
/// </summary>
/// <param name="dataOhlcv">OHLC object list</param>
/// <param name="fiboName">Selected formation</param>
/// <returns>OHLC list with updated signal values</returns>
List<OhlcvObject> GetFormationsOhlcvWithSignals(List<OhlcvObject> dataOhlcv, string fiboName);
/// <returns>ZigZag list with updated signal values</returns>
List<ZigZagObject> GetFormationsZigZagWithSignals(List<OhlcvObject> dataOhlcv, string fiboName);

/// <summary>
/// Calculates signals for selected multiply formation
/// </summary>
/// <param name="dataOhlcv">OHLC object list</param>
/// <param name="formationsNames">Selected formation</param>
/// <returns>List of OHLC lists with updated signal values</returns>
List<List<OhlcvObject>> GetMultipleFormationsOhlcvWithSignals(List<OhlcvObject> dataOhlcv, string[] formationsNames);
/// <returns>List of ZigZag lists with updated signal values</returns>
List<List<ZigZagObject>> GetMultipleFormationsZigZagWithSignals(List<OhlcvObject> dataOhlcv, string[] formationsNames);

/// <summary>
/// Counts the number of fibonacci patterns appearing in the OHLC list for a selected single fibonacci pattern
Expand Down Expand Up @@ -188,15 +188,15 @@ public interface ISignals
/// </summary>
/// <param name="dataOhlcv">OHLC object list</param>
/// <param name="fiboName">Selected formation</param>
/// <returns>OHLC list with updated signal values</returns>
List<OhlcvObject> GetFiboOhlcvWithSignals(List<OhlcvObject> dataOhlcv, string fiboName);
/// <returns>ZigZag list with updated signal values</returns>
List<ZigZagObject> GetFiboZigZagWithSignals(List<OhlcvObject> dataOhlcv, string fiboName);

/// <summary>
/// Calculates signals for selected multiply fibonacci patterns
/// </summary>
/// <param name="dataOhlcv">OHLC object list</param>
/// <param name="fiboNames">Selected fibonacci patterns</param>
/// <returns>List of OHLC lists with updated signal values</returns>
List<List<OhlcvObject>> GetMultipleFiboOhlcvWithSignals(List<OhlcvObject> dataOhlcv, string[] fiboNames);
/// <returns>List of ZigZag lists with updated signal values</returns>
List<List<ZigZagObject>> GetMultipleFiboZigZagWithSignals(List<OhlcvObject> dataOhlcv, string[] fiboNames);
}
}
32 changes: 8 additions & 24 deletions Candlestick_Patterns/Signals.cs
Original file line number Diff line number Diff line change
Expand Up @@ -174,18 +174,14 @@ public decimal GetMultipleFormationsSignalsIndex(List<OhlcvObject> dataOhlcv, Di
return count.Sum(x => x);
}

public List<OhlcvObject> GetFormationsOhlcvWithSignals(List<OhlcvObject> dataOhlcv, string formationName)
public List<ZigZagObject> GetFormationsZigZagWithSignals(List<OhlcvObject> dataOhlcv, string formationName)
{
_formations = new Formations(dataOhlcv);

return _formations.GetFormationsSignalsList(formationName).Select(x => new OhlcvObject()
{
Close = x.Close,
Signal = x.Signal,
}).ToList();
return _formations.GetFormationsSignalsList(formationName);
}

public List<List<OhlcvObject>> GetMultipleFormationsOhlcvWithSignals(List<OhlcvObject> dataOhlcv, string[] formationsNames)
public List<List<ZigZagObject>> GetMultipleFormationsZigZagWithSignals(List<OhlcvObject> dataOhlcv, string[] formationsNames)
{
_formations = new Formations(dataOhlcv);

Expand All @@ -196,11 +192,7 @@ public List<List<OhlcvObject>> GetMultipleFormationsOhlcvWithSignals(List<OhlcvO
list.Add(_formations.GetFormationsSignalsList(methodName));
}

return list.Select(x => x.Select(y => new OhlcvObject()
{
Close = y.Close,
Signal = y.Signal,
}).ToList()).ToList();
return list;
}

public int GetFibonacciSignalsCount(List<OhlcvObject> dataOhlcv, string formationName)
Expand Down Expand Up @@ -282,18 +274,14 @@ public decimal GetMultipleFiboSignalsIndex(List<OhlcvObject> dataOhlcv, Dictiona
return count.Sum(x => x);
}

public List<OhlcvObject> GetFiboOhlcvWithSignals(List<OhlcvObject> dataOhlcv, string fiboName)
public List<ZigZagObject> GetFiboZigZagWithSignals(List<OhlcvObject> dataOhlcv, string fiboName)
{
_fibonacci = new Fibonacci(dataOhlcv);

return _fibonacci.GetFibonacciSignalsList(fiboName).Select(x => new OhlcvObject()
{
Close = x.Close,
Signal = x.Signal,
}).ToList();
return _fibonacci.GetFibonacciSignalsList(fiboName);
}

public List<List<OhlcvObject>> GetMultipleFiboOhlcvWithSignals(List<OhlcvObject> dataOhlcv, string[] fiboNames)
public List<List<ZigZagObject>> GetMultipleFiboZigZagWithSignals(List<OhlcvObject> dataOhlcv, string[] fiboNames)
{
_fibonacci = new Fibonacci(dataOhlcv);

Expand All @@ -304,11 +292,7 @@ public List<List<OhlcvObject>> GetMultipleFiboOhlcvWithSignals(List<OhlcvObject>
list.Add(_fibonacci.GetFibonacciSignalsList(methodName));
}

return list.Select(x => x.Select(y => new OhlcvObject()
{
Close = y.Close,
Signal = y.Signal,
}).ToList()).ToList();
return list;
}
}
}
8 changes: 4 additions & 4 deletions Examples_Fibonacci/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -59,11 +59,11 @@ static async Task Main(string[] args)
var signalsCountSingleWeightened = _signals.GetFiboSignalsIndex(dataOhlcv, "BearishABCD", 0.5M);
Console.WriteLine("Weightened index for selected single fibo: {0}", signalsCountSingleWeightened);

var ohlcSingleSignals = _signals.GetFiboOhlcvWithSignals(dataOhlcv, "BearishABCD");
Console.WriteLine("Signals for single fibo: {0}", ohlcSingleSignals.Where(x => x.Signal == true).Count());
var zigZagSingleSignals = _signals.GetFiboZigZagWithSignals(dataOhlcv, "BearishABCD");
Console.WriteLine("Signals for single fibo: {0}", zigZagSingleSignals.Where(x => x.Signal == true).Count());

var ohlcMultiSignals = _signals.GetMultipleFiboOhlcvWithSignals(dataOhlcv, new string[] { "BearishABCD", "Bearish 3 Drive" });
Console.WriteLine("Number of lists returned: {0}", ohlcMultiSignals.Count());
var zigZagMultiSignals = _signals.GetMultipleFiboZigZagWithSignals(dataOhlcv, new string[] { "BearishABCD", "Bearish 3 Drive" });
Console.WriteLine("Number of lists returned: {0}", zigZagMultiSignals.Count());

//END
Console.WriteLine("END");
Expand Down
8 changes: 4 additions & 4 deletions Examples_Formations/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -59,11 +59,11 @@ static async Task Main(string[] args)
var signalsCountSingleWeightened = _signals.GetFormationSignalsIndex(dataOhlcv, "Bearish Double Tops", 0.5M);
Console.WriteLine("Weightened index for selected single formation: {0}", signalsCountSingleWeightened);

var ohlcSingleSignals = _signals.GetFormationsOhlcvWithSignals(dataOhlcv, "Bearish Double Tops");
Console.WriteLine("Signals for single formation: {0}", ohlcSingleSignals.Where(x => x.Signal == true).Count());
var zigZagSingleSignals = _signals.GetFormationsZigZagWithSignals(dataOhlcv, "Bearish Double Tops");
Console.WriteLine("Signals for single formation: {0}", zigZagSingleSignals.Where(x => x.Signal == true).Count());

var ohlcMultiSignals = _signals.GetMultipleFormationsOhlcvWithSignals(dataOhlcv, new string[] { "Bearish Double Tops", "Bearish Head And Shoulders" });
Console.WriteLine("Number of lists returned: {0}", ohlcMultiSignals.Count());
var zigZagMultiSignals = _signals.GetMultipleFormationsZigZagWithSignals(dataOhlcv, new string[] { "Bearish Double Tops", "Bearish Head And Shoulders" });
Console.WriteLine("Number of lists returned: {0}", zigZagMultiSignals.Count());

//END
Console.WriteLine("END");
Expand Down

0 comments on commit 3c1a198

Please sign in to comment.