обновление
test / deploy_trader_prod (push) Has been cancelled
Details
test / deploy_trader_prod (push) Has been cancelled
Details
parent
e11dfe8553
commit
3702a59d7e
|
@ -373,67 +373,62 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
|||
});
|
||||
}
|
||||
|
||||
var buys = await _tradeDataProvider.GetDataFrom20SecondsWindowCache(message.Figi, "1");
|
||||
var sells = await _tradeDataProvider.GetDataFrom20SecondsWindowCache(message.Figi, "2");
|
||||
//var buys = await _tradeDataProvider.GetDataFrom20SecondsWindowCache(message.Figi, "1");
|
||||
//var sells = await _tradeDataProvider.GetDataFrom20SecondsWindowCache(message.Figi, "2");
|
||||
|
||||
|
||||
var buysSpeed = buys.Sum(p => p.Value) / 20;
|
||||
var sellsSpeed = sells.Sum(p => p.Value) / 20;
|
||||
//var buysSpeed = buys.Sum(p => p.Value) / 20;
|
||||
//var sellsSpeed = sells.Sum(p => p.Value) / 20;
|
||||
|
||||
var orderBook = _tradeDataProvider.Orderbooks[message.Figi];
|
||||
if (orderBook.Asks.Length>3 && orderBook.Bids.Length>3)
|
||||
{
|
||||
var asks = (decimal)(orderBook.Asks[0].Count + orderBook.Asks[1].Count + orderBook.Asks[2].Count);
|
||||
//var asks = (decimal)(orderBook.Asks[0].Count + orderBook.Asks[1].Count + orderBook.Asks[2].Count + orderBook.Asks[3].Count);
|
||||
var bids = (decimal)(orderBook.Bids[0].Count + orderBook.Bids[1].Count + orderBook.Bids[2].Count);
|
||||
//var bids = (decimal)(orderBook.Bids[0].Count + orderBook.Bids[1].Count + orderBook.Bids[2].Count + orderBook.Bids[3].Count);
|
||||
//var orderBook = _tradeDataProvider.Orderbooks[message.Figi];
|
||||
//if (orderBook.Asks.Length>3 && orderBook.Bids.Length>3)
|
||||
//{
|
||||
// var asks = (decimal)(orderBook.Asks[0].Count + orderBook.Asks[1].Count + orderBook.Asks[2].Count);
|
||||
// //var asks = (decimal)(orderBook.Asks[0].Count + orderBook.Asks[1].Count + orderBook.Asks[2].Count + orderBook.Asks[3].Count);
|
||||
// var bids = (decimal)(orderBook.Bids[0].Count + orderBook.Bids[1].Count + orderBook.Bids[2].Count);
|
||||
// //var bids = (decimal)(orderBook.Bids[0].Count + orderBook.Bids[1].Count + orderBook.Bids[2].Count + orderBook.Bids[3].Count);
|
||||
|
||||
if (buysSpeed > 0 && sellsSpeed > 0)
|
||||
{
|
||||
await LogPrice(message, "speed_relation", (sellsSpeed / (sellsSpeed + buysSpeed)));
|
||||
}
|
||||
// if (buysSpeed > 0 && sellsSpeed > 0)
|
||||
// {
|
||||
// await LogPrice(message, "speed_relation", (sellsSpeed / (sellsSpeed + buysSpeed)));
|
||||
// }
|
||||
|
||||
//var diff = buysSpeed - sellsSpeed;
|
||||
//await LogPrice(message, "speed_diff", diff);
|
||||
//await LogPrice(message, "stabling", (asks+bids)/(sellsSpeed+buysSpeed));
|
||||
// //var diff = buysSpeed - sellsSpeed;
|
||||
// //await LogPrice(message, "speed_diff", diff);
|
||||
// //await LogPrice(message, "stabling", (asks+bids)/(sellsSpeed+buysSpeed));
|
||||
|
||||
//if (buysSpeed > 0)
|
||||
//{
|
||||
// var asksLifetime = asks / buysSpeed;
|
||||
// if (asksLifetime > 600) asksLifetime = 600;
|
||||
// var asksLifetime2 = diff > 0?System.Math.Abs( asks / diff):0;
|
||||
// await LogPrice(message, "asks_lifetime", asksLifetime);
|
||||
// await LogPrice(message, "asks_lifetime2", asksLifetime2);
|
||||
// await LogPrice(message, "asks_lifetime2", asksLifetime2);
|
||||
// await LogPrice(message, "buys_speed", buysSpeed);
|
||||
//}
|
||||
// if (buysSpeed > 0)
|
||||
// {
|
||||
// var asksLifetime = asks / buysSpeed;
|
||||
// if (asksLifetime > 600) asksLifetime = 600;
|
||||
// await LogPrice(message, "asks_lifetime", asksLifetime);
|
||||
// await LogPrice(message, "buys_speed", buysSpeed);
|
||||
// }
|
||||
|
||||
|
||||
//if (sellsSpeed > 0)
|
||||
//{
|
||||
// var bidsLifetime = bids / sellsSpeed;
|
||||
// if (bidsLifetime > 600) bidsLifetime = 600;
|
||||
// var bidsLifetime2 = diff < 0 ? System.Math.Abs(bids / diff) : 0;
|
||||
// await LogPrice(message, "bids_lifetime", bidsLifetime);
|
||||
// await LogPrice(message, "bids_lifetime2", System.Math.Abs(bidsLifetime2));
|
||||
// await LogPrice(message, "sells_speed", sellsSpeed);
|
||||
//}
|
||||
// if (sellsSpeed > 0)
|
||||
// {
|
||||
// var bidsLifetime = bids / sellsSpeed;
|
||||
// if (bidsLifetime > 600) bidsLifetime = 600;
|
||||
// await LogPrice(message, "bids_lifetime", bidsLifetime);
|
||||
// await LogPrice(message, "sells_speed", sellsSpeed);
|
||||
// }
|
||||
|
||||
|
||||
//var buys5min = await _tradeDataProvider.GetDataFrom5MinuteWindowCache(message.Figi, Constants._5minBuyCacheKey);
|
||||
//var sells5min = await _tradeDataProvider.GetDataFrom5MinuteWindowCache(message.Figi, Constants._5minSellCacheKey);
|
||||
//var buysSpeed5min = buys5min.Sum(p => p.Value) / 300;
|
||||
//var sellsSpeed5min = sells5min.Sum(p => p.Value) / 300;
|
||||
//var diff5min = buysSpeed5min - sellsSpeed5min;
|
||||
//await LogPrice(message, "speed_diff_5min", diff5min);
|
||||
// //var buys5min = await _tradeDataProvider.GetDataFrom5MinuteWindowCache(message.Figi, Constants._5minBuyCacheKey);
|
||||
// //var sells5min = await _tradeDataProvider.GetDataFrom5MinuteWindowCache(message.Figi, Constants._5minSellCacheKey);
|
||||
// //var buysSpeed5min = buys5min.Sum(p => p.Value) / 300;
|
||||
// //var sellsSpeed5min = sells5min.Sum(p => p.Value) / 300;
|
||||
// //var diff5min = buysSpeed5min - sellsSpeed5min;
|
||||
// //await LogPrice(message, "speed_diff_5min", diff5min);
|
||||
|
||||
//var buys1min = await _tradeDataProvider.GetDataFrom1MinuteWindowCache(message.Figi, Constants._1minBuyCacheKey);
|
||||
//var sells1min = await _tradeDataProvider.GetDataFrom1MinuteWindowCache(message.Figi, Constants._1minSellCacheKey);
|
||||
//var buysSpeed1min = buys1min.Sum(p => p.Value) / 60;
|
||||
//var sellsSpeed1min = sells1min.Sum(p => p.Value) / 60;
|
||||
//var diff1min = buysSpeed1min - sellsSpeed1min;
|
||||
//await LogPrice(message, "speed_diff_1min", diff1min);
|
||||
}
|
||||
// //var buys1min = await _tradeDataProvider.GetDataFrom1MinuteWindowCache(message.Figi, Constants._1minBuyCacheKey);
|
||||
// //var sells1min = await _tradeDataProvider.GetDataFrom1MinuteWindowCache(message.Figi, Constants._1minSellCacheKey);
|
||||
// //var buysSpeed1min = buys1min.Sum(p => p.Value) / 60;
|
||||
// //var sellsSpeed1min = sells1min.Sum(p => p.Value) / 60;
|
||||
// //var diff1min = buysSpeed1min - sellsSpeed1min;
|
||||
// //await LogPrice(message, "speed_diff_1min", diff1min);
|
||||
//}
|
||||
|
||||
|
||||
}
|
||||
|
@ -538,16 +533,45 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
|||
}
|
||||
}
|
||||
|
||||
private async Task<ImmutableDictionary<TradingEvent, decimal>> CheckDivergency(INewPrice message)
|
||||
{
|
||||
var res = GetInitDict(1);
|
||||
var buys = await _tradeDataProvider.GetDataFrom5MinuteWindowCache(message.Figi, Constants._5minBuyCacheKey);
|
||||
var sells = await _tradeDataProvider.GetDataFrom5MinuteWindowCache(message.Figi, Constants._5minSellCacheKey);
|
||||
var time1 = message.Time - TimeSpan.FromMinutes(4);
|
||||
var time2 = message.Time - TimeSpan.FromMinutes(2);
|
||||
var buysOld = buys.Where(b => b.Time < time2 && b.Time >= time1).ToArray();
|
||||
var sellsOld = sells.Where(b => b.Time < time2 && b.Time >= time1).ToArray();
|
||||
var buysNew = buys.Where(b => b.Time >= time2).ToArray();
|
||||
var sellNew = sells.Where(b => b.Time >= time2).ToArray();
|
||||
if (buysNew.Length>0 && buysOld.Length > 0)
|
||||
{
|
||||
var dpriceNew = buysNew.Sum(b => b.Value) / buysNew.Length;
|
||||
var dpriceOld = buysOld.Sum(b => b.Value) / buysOld.Length;
|
||||
}
|
||||
|
||||
|
||||
return res.ToImmutableDictionary();
|
||||
}
|
||||
|
||||
private async Task<ImmutableDictionary<TradingEvent, decimal>> GetSpeedResultantMods(INewPrice message)
|
||||
{
|
||||
var res = GetInitDict(1);
|
||||
var buys5min = await _tradeDataProvider.GetDataFrom15MinuteWindowCache(message.Figi, Constants._15minBuyCacheKey);
|
||||
var sells5min = await _tradeDataProvider.GetDataFrom15MinuteWindowCache(message.Figi, Constants._15minSellCacheKey);
|
||||
var buysSpeed5min = buys5min.Sum(p => p.Value) / 300;
|
||||
var sellsSpeed5min = sells5min.Sum(p => p.Value) / 300;
|
||||
var buysSpeed5min = buys5min.Sum(p => p.Value) / 1500;
|
||||
var sellsSpeed5min = sells5min.Sum(p => p.Value) / 1500;
|
||||
var diff5min = buysSpeed5min - sellsSpeed5min;
|
||||
await LogPrice(message, "speed_diff_15min", diff5min);
|
||||
|
||||
var orderBook = _tradeDataProvider.Orderbooks[message.Figi];
|
||||
if (orderBook.Asks.Length > 3 && orderBook.Bids.Length > 3)
|
||||
{
|
||||
var asks = (decimal)(orderBook.Asks[0].Count + orderBook.Asks[1].Count + orderBook.Asks[2].Count);
|
||||
//var asks = (decimal)(orderBook.Asks[0].Count + orderBook.Asks[1].Count + orderBook.Asks[2].Count + orderBook.Asks[3].Count);
|
||||
var bids = (decimal)(orderBook.Bids[0].Count + orderBook.Bids[1].Count + orderBook.Bids[2].Count);
|
||||
await LogPrice(message, "asks_lifetime", asks/ buysSpeed5min);
|
||||
await LogPrice(message, "bids_lifetime", bids/ sellsSpeed5min);
|
||||
}
|
||||
if (diff5min < 0)
|
||||
{
|
||||
res[TradingEvent.UptrendStart] = Constants.BlockingCoefficient;
|
||||
|
|
|
@ -46,7 +46,7 @@ namespace KLHZ.Trader.Service.Controllers
|
|||
context1.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
|
||||
|
||||
|
||||
while (time1 < DateTime.UtcNow.Date)
|
||||
while (time1 < DateTime.UtcNow)
|
||||
{
|
||||
var data = new List<TimeSeriesData>();
|
||||
var data2 = new List<TimeSeriesData>();
|
||||
|
|
Loading…
Reference in New Issue