изменение равнодействующей
parent
0aad9297d9
commit
8c8327c905
|
@ -3,8 +3,10 @@
|
||||||
internal static class Constants
|
internal static class Constants
|
||||||
{
|
{
|
||||||
internal const string _1minCacheKey = "1min";
|
internal const string _1minCacheKey = "1min";
|
||||||
|
internal const string _15minSellCacheKey = "5min_sell";
|
||||||
internal const string _5minSellCacheKey = "5min_sell";
|
internal const string _5minSellCacheKey = "5min_sell";
|
||||||
internal const string _5minBuyCacheKey = "5min_buy";
|
internal const string _5minBuyCacheKey = "5min_buy";
|
||||||
|
internal const string _15minBuyCacheKey = "5min_buy";
|
||||||
internal const string _1minSellCacheKey = "1min_sell";
|
internal const string _1minSellCacheKey = "1min_sell";
|
||||||
internal const string _1minBuyCacheKey = "1min_buy";
|
internal const string _1minBuyCacheKey = "1min_buy";
|
||||||
|
|
||||||
|
|
|
@ -338,6 +338,11 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
||||||
Time = message.Time,
|
Time = message.Time,
|
||||||
Value = (decimal)message.Count
|
Value = (decimal)message.Count
|
||||||
});
|
});
|
||||||
|
await _tradeDataProvider.AddDataTo15MinuteWindowCache(message.Figi, Constants._15minBuyCacheKey, new Contracts.Declisions.Dtos.CachedValue()
|
||||||
|
{
|
||||||
|
Time = message.Time,
|
||||||
|
Value = (decimal)message.Count
|
||||||
|
});
|
||||||
await _tradeDataProvider.AddDataTo1MinuteWindowCache(message.Figi, Constants._1minBuyCacheKey, new Contracts.Declisions.Dtos.CachedValue()
|
await _tradeDataProvider.AddDataTo1MinuteWindowCache(message.Figi, Constants._1minBuyCacheKey, new Contracts.Declisions.Dtos.CachedValue()
|
||||||
{
|
{
|
||||||
Time = message.Time,
|
Time = message.Time,
|
||||||
|
@ -351,6 +356,11 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
||||||
Time = message.Time,
|
Time = message.Time,
|
||||||
Value = (decimal)message.Count
|
Value = (decimal)message.Count
|
||||||
});
|
});
|
||||||
|
await _tradeDataProvider.AddDataTo15MinuteWindowCache(message.Figi, Constants._15minSellCacheKey, new Contracts.Declisions.Dtos.CachedValue()
|
||||||
|
{
|
||||||
|
Time = message.Time,
|
||||||
|
Value = (decimal)message.Count
|
||||||
|
});
|
||||||
await _tradeDataProvider.AddDataTo1MinuteWindowCache(message.Figi, Constants._1minSellCacheKey, new Contracts.Declisions.Dtos.CachedValue()
|
await _tradeDataProvider.AddDataTo1MinuteWindowCache(message.Figi, Constants._1minSellCacheKey, new Contracts.Declisions.Dtos.CachedValue()
|
||||||
{
|
{
|
||||||
Time = message.Time,
|
Time = message.Time,
|
||||||
|
@ -531,12 +541,12 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
||||||
private async Task<ImmutableDictionary<TradingEvent, decimal>> GetSpeedResultantMods(INewPrice message)
|
private async Task<ImmutableDictionary<TradingEvent, decimal>> GetSpeedResultantMods(INewPrice message)
|
||||||
{
|
{
|
||||||
var res = GetInitDict(1);
|
var res = GetInitDict(1);
|
||||||
var buys5min = await _tradeDataProvider.GetDataFrom5MinuteWindowCache(message.Figi, Constants._5minBuyCacheKey);
|
var buys5min = await _tradeDataProvider.GetDataFrom15MinuteWindowCache(message.Figi, Constants._15minBuyCacheKey);
|
||||||
var sells5min = await _tradeDataProvider.GetDataFrom5MinuteWindowCache(message.Figi, Constants._5minSellCacheKey);
|
var sells5min = await _tradeDataProvider.GetDataFrom15MinuteWindowCache(message.Figi, Constants._15minSellCacheKey);
|
||||||
var buysSpeed5min = buys5min.Sum(p => p.Value) / 300;
|
var buysSpeed5min = buys5min.Sum(p => p.Value) / 300;
|
||||||
var sellsSpeed5min = sells5min.Sum(p => p.Value) / 300;
|
var sellsSpeed5min = sells5min.Sum(p => p.Value) / 300;
|
||||||
var diff5min = buysSpeed5min - sellsSpeed5min;
|
var diff5min = buysSpeed5min - sellsSpeed5min;
|
||||||
await LogPrice(message, "speed_diff_5min", diff5min);
|
await LogPrice(message, "speed_diff_15min", diff5min);
|
||||||
|
|
||||||
if (diff5min < 0)
|
if (diff5min < 0)
|
||||||
{
|
{
|
||||||
|
@ -967,7 +977,7 @@ INewPrice message, int windowMaxSize, decimal uptrendStartingDetectionMeanfullSt
|
||||||
}
|
}
|
||||||
if (mode == TradingMode.SlowDropping && type == PositionType.Short)
|
if (mode == TradingMode.SlowDropping && type == PositionType.Short)
|
||||||
{
|
{
|
||||||
takeProfitShift = 4m;
|
|
||||||
}
|
}
|
||||||
if (mode == TradingMode.SlowDropping && type == PositionType.Long)
|
if (mode == TradingMode.SlowDropping && type == PositionType.Long)
|
||||||
{
|
{
|
||||||
|
|
|
@ -146,6 +146,16 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
||||||
await _historyCash[figi].AddDataToTimeWindowCache(key, data, TimeWindowCacheType._5_Minutes);
|
await _historyCash[figi].AddDataToTimeWindowCache(key, data, TimeWindowCacheType._5_Minutes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async ValueTask AddDataTo15MinuteWindowCache(string figi, string key, CachedValue data)
|
||||||
|
{
|
||||||
|
if (!_historyCash.TryGetValue(figi, out var unit))
|
||||||
|
{
|
||||||
|
unit = new PriceHistoryCacheUnit2(figi);
|
||||||
|
_historyCash.TryAdd(figi, unit);
|
||||||
|
}
|
||||||
|
await _historyCash[figi].AddDataToTimeWindowCache(key, data, TimeWindowCacheType._15_Minutes);
|
||||||
|
}
|
||||||
|
|
||||||
public ValueTask<CachedValue[]> GetDataFrom20SecondsWindowCache(string figi, string key)
|
public ValueTask<CachedValue[]> GetDataFrom20SecondsWindowCache(string figi, string key)
|
||||||
{
|
{
|
||||||
if (_historyCash.TryGetValue(figi, out var cahcheItem))
|
if (_historyCash.TryGetValue(figi, out var cahcheItem))
|
||||||
|
@ -173,6 +183,15 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
||||||
return ValueTask.FromResult(Array.Empty<CachedValue>());
|
return ValueTask.FromResult(Array.Empty<CachedValue>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ValueTask<CachedValue[]> GetDataFrom15MinuteWindowCache(string figi, string key)
|
||||||
|
{
|
||||||
|
if (_historyCash.TryGetValue(figi, out var cahcheItem))
|
||||||
|
{
|
||||||
|
return cahcheItem.GetDataFromTimeWindowCache(key, TimeWindowCacheType._15_Minutes);
|
||||||
|
}
|
||||||
|
return ValueTask.FromResult(Array.Empty<CachedValue>());
|
||||||
|
}
|
||||||
|
|
||||||
public async ValueTask AddOrderbook(IOrderbook orderbook)
|
public async ValueTask AddOrderbook(IOrderbook orderbook)
|
||||||
{
|
{
|
||||||
if (!_historyCash.TryGetValue(orderbook.Figi, out var unit))
|
if (!_historyCash.TryGetValue(orderbook.Figi, out var unit))
|
||||||
|
|
Loading…
Reference in New Issue