фиксация
test / deploy_trader_prod (push) Successful in 2m45s Details

dev
vlad zverzhkhovskiy 2025-09-24 16:18:18 +03:00
parent ac7c985019
commit 56a8b2534a
3 changed files with 20 additions and 11 deletions

View File

@ -61,7 +61,7 @@ namespace KLHZ.Trader.Core.Math.Declisions.Utils
var tmp = new List<Harmonic>(); var tmp = new List<Harmonic>();
for (int i = 0; i < result.Harmonics.Length; i++) for (int i = 0; i < result.Harmonics.Length; i++)
{ {
var per = CaclHarmonycPeriod(result.LastTime - result.StartTime, result.Length, i); var per = CaclHarmonycPeriod(result.LastTime - result.StartTime, result.Length, i+1);
if (per >= minPeriod && per <= maxPeriod) if (per >= minPeriod && per <= maxPeriod)
{ {
tmp.Add(result.Harmonics[i]); tmp.Add(result.Harmonics[i]);

View File

@ -540,12 +540,12 @@ INewPrice message, int windowMaxSize, decimal uptrendStartingDetectionMeanfullSt
//result = MergeResults(result, resTask2.Result.ToImmutableDictionary()); //result = MergeResults(result, resTask2.Result.ToImmutableDictionary());
//result = MergeResults(result, resTask3.Result.ToImmutableDictionary()); //result = MergeResults(result, resTask3.Result.ToImmutableDictionary());
result = MergeResultsMax(result, changeModeData); result = MergeResultsMax(result, changeModeData);
//result = MergeResultsMult(result, getFFTModsTask.Result); result = MergeResultsMult(result, getFFTModsTask.Result);
//////result = MergeResults(result, getAreasModsTask.Result); //////result = MergeResults(result, getAreasModsTask.Result);
//result = MergeResultsMult(result, getSellsDiffsModsTask.Result); //result = MergeResultsMult(result, getSellsDiffsModsTask.Result);
result = MergeResultsMult(result, getTradingModeModsTask.Result); result = MergeResultsMult(result, getTradingModeModsTask.Result);
if (result[TradingEvent.UptrendStart] > Constants.UppingCoefficient if (result[TradingEvent.UptrendStart] >= Constants.UppingCoefficient
&& !LongOpeningStops.ContainsKey(message.Figi) && !LongOpeningStops.ContainsKey(message.Figi)
&& state == ExchangeState.Open && state == ExchangeState.Open
) )
@ -720,17 +720,18 @@ INewPrice message, int windowMaxSize, decimal uptrendStartingDetectionMeanfullSt
private async Task<TradingMode> CalcTradingMode(string figi) private async Task<TradingMode> CalcTradingMode(string figi)
{ {
var res = TradingMode.None; var res = TradingMode.None;
var largeData = await _tradeDataProvider.GetData(figi, TimeSpan.FromMinutes(60)); var largeData = await _tradeDataProvider.GetData(figi, TimeSpan.FromMinutes(90));
var smallData = await _tradeDataProvider.GetData(figi, TimeSpan.FromMinutes(15)); var smallData = await _tradeDataProvider.GetData(figi, TimeSpan.FromMinutes(15));
if (!largeData.isFullIntervalExists && smallData.isFullIntervalExists) if (!largeData.isFullIntervalExists && smallData.isFullIntervalExists)
{ {
largeData = await _tradeDataProvider.GetData(figi, TimeSpan.FromMinutes(30)); largeData = await _tradeDataProvider.GetData(figi, TimeSpan.FromMinutes(45));
smallData = await _tradeDataProvider.GetData(figi, TimeSpan.FromMinutes(10)); smallData = await _tradeDataProvider.GetData(figi, TimeSpan.FromMinutes(10));
} }
if (!largeData.isFullIntervalExists && smallData.isFullIntervalExists) if (!largeData.isFullIntervalExists && smallData.isFullIntervalExists)
{ {
largeData = await _tradeDataProvider.GetData(figi, TimeSpan.FromMinutes(20)); largeData = await _tradeDataProvider.GetData(figi, TimeSpan.FromMinutes(15));
smallData = await _tradeDataProvider.GetData(figi, TimeSpan.FromMinutes(7));
} }
if (largeData.isFullIntervalExists && smallData.isFullIntervalExists) if (largeData.isFullIntervalExists && smallData.isFullIntervalExists)
{ {
@ -745,11 +746,19 @@ INewPrice message, int windowMaxSize, decimal uptrendStartingDetectionMeanfullSt
{ {
res = TradingMode.SlowDropping; res = TradingMode.SlowDropping;
} }
if ((largeDataRes > 5 && smallDataRes > 0) || smallDataRes > 7) if ((largeDataRes > 5 && smallDataRes > 0))
{ {
res = TradingMode.Growing; res = TradingMode.Growing;
} }
if ((largeDataRes < -5 && smallDataRes < 0) || smallDataRes < -7) if ((largeDataRes < -5 && smallDataRes < 0))
{
res = TradingMode.Dropping;
}
if (smallDataRes > 7)
{
res = TradingMode.Growing;
}
if (smallDataRes < - 7)
{ {
res = TradingMode.Dropping; res = TradingMode.Dropping;
} }
@ -916,7 +925,7 @@ INewPrice message, int windowMaxSize, decimal uptrendStartingDetectionMeanfullSt
{ {
//res[TradingEvent.UptrendEnd] = Constants.UppingCoefficient; //res[TradingEvent.UptrendEnd] = Constants.UppingCoefficient;
//res[TradingEvent.UptrendStart] = 1; //res[TradingEvent.UptrendStart] = 1;
//res[TradingEvent.DowntrendStart] = Constants.LowingCoefficient; res[TradingEvent.DowntrendStart] = Constants.LowingCoefficient;
//res[TradingEvent.DowntrendEnd] = Constants.UppingCoefficient; //res[TradingEvent.DowntrendEnd] = Constants.UppingCoefficient;
} }
if (mode == TradingMode.Growing) if (mode == TradingMode.Growing)
@ -936,7 +945,7 @@ INewPrice message, int windowMaxSize, decimal uptrendStartingDetectionMeanfullSt
if (mode == TradingMode.SlowDropping) if (mode == TradingMode.SlowDropping)
{ {
//res[TradingEvent.UptrendEnd] = Constants.PowerUppingCoefficient; //res[TradingEvent.UptrendEnd] = Constants.PowerUppingCoefficient;
res[TradingEvent.UptrendStart] = Constants.LowingCoefficient; //res[TradingEvent.UptrendStart] = Constants.LowingCoefficient;
res[TradingEvent.DowntrendStart] = Constants.UppingCoefficient; res[TradingEvent.DowntrendStart] = Constants.UppingCoefficient;
//res[TradingEvent.DowntrendEnd] = Constants.UppingCoefficient; //res[TradingEvent.DowntrendEnd] = Constants.UppingCoefficient;
} }

View File

@ -35,7 +35,7 @@ namespace KLHZ.Trader.Service.Controllers
var figi2 = "BBG004730N88"; var figi2 = "BBG004730N88";
//var figi2 = "FUTIMOEXF000"; //var figi2 = "FUTIMOEXF000";
var time1 = DateTime.UtcNow.AddDays(-shift ?? -7).Date; var time1 = DateTime.UtcNow.AddDays(-shift ?? -7).Date;
//var time1 = new DateTime(2025, 9, 24, 7, 00, 0, DateTimeKind.Utc); //var time1 = new DateTime(2025, 9, 24, 11, 00, 0, DateTimeKind.Utc);
//var time2 = DateTime.UtcNow.AddMinutes(18); //var time2 = DateTime.UtcNow.AddMinutes(18);
using var context1 = await _dbContextFactory.CreateDbContextAsync(); using var context1 = await _dbContextFactory.CreateDbContextAsync();
context1.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking; context1.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;