42 lines
1.8 KiB
C#
42 lines
1.8 KiB
C#
using KLHZ.Trader.Core.Contracts.Declisions.Dtos;
|
|
using KLHZ.Trader.Core.Contracts.Declisions.Interfaces;
|
|
using KLHZ.Trader.Core.Declisions.Utils;
|
|
|
|
namespace KLHZ.Trader.Core.Declisions.Services
|
|
{
|
|
public class TradingEventsDetector : ITradingEventsDetector
|
|
{
|
|
public async ValueTask<TradingEventsDto> Detect(IPriceHistoryCacheUnit data)
|
|
{
|
|
await Task.Delay(0);
|
|
float meanfullDiff;
|
|
if (data.Figi == "BBG004730N88")
|
|
{
|
|
meanfullDiff = 0.05f;
|
|
}
|
|
else if (data.Figi == "FUTIMOEXF000")
|
|
{
|
|
meanfullDiff = 1f;
|
|
}
|
|
else
|
|
{
|
|
return TradingEventsDto.Empty;
|
|
}
|
|
|
|
//var downtrendStarts = data.CheckDowntrendStarting(TimeSpan.FromSeconds(30), TimeSpan.FromSeconds(7), meanfullDiff);
|
|
var uptrendStarts = data.CheckLongOpen(TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(7), meanfullDiff, 8, 3);
|
|
var uptrendStarts2 = data.CheckLongOpen(TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(3), meanfullDiff, 15, 2);
|
|
var downtrendEnds = data.CheckLongOpen(TimeSpan.FromSeconds(120), TimeSpan.FromSeconds(10), meanfullDiff, 15, 5);
|
|
uptrendStarts |= downtrendEnds;
|
|
uptrendStarts |= uptrendStarts2;
|
|
//var downtrendEnds = data.CheckDowntrendEnding(TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(15), meanfullDiff);
|
|
|
|
var uptrendEnds = data.CheckLongClose(TimeSpan.FromSeconds(15), TimeSpan.FromSeconds(20), meanfullDiff * 1.5f, 8, 8);
|
|
var uptrendEnds2 = data.CheckLongClose(TimeSpan.FromSeconds(120), TimeSpan.FromSeconds(30), meanfullDiff, 15, 8);
|
|
uptrendEnds |= uptrendEnds2;
|
|
|
|
return new TradingEventsDto(uptrendEnds, uptrendStarts);
|
|
}
|
|
}
|
|
}
|