обновление
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 buys = await _tradeDataProvider.GetDataFrom20SecondsWindowCache(message.Figi, "1");
|
||||||
var sells = await _tradeDataProvider.GetDataFrom20SecondsWindowCache(message.Figi, "2");
|
//var sells = await _tradeDataProvider.GetDataFrom20SecondsWindowCache(message.Figi, "2");
|
||||||
|
|
||||||
|
|
||||||
var buysSpeed = buys.Sum(p => p.Value) / 20;
|
//var buysSpeed = buys.Sum(p => p.Value) / 20;
|
||||||
var sellsSpeed = sells.Sum(p => p.Value) / 20;
|
//var sellsSpeed = sells.Sum(p => p.Value) / 20;
|
||||||
|
|
||||||
var orderBook = _tradeDataProvider.Orderbooks[message.Figi];
|
//var orderBook = _tradeDataProvider.Orderbooks[message.Figi];
|
||||||
if (orderBook.Asks.Length>3 && orderBook.Bids.Length>3)
|
//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);
|
||||||
//var asks = (decimal)(orderBook.Asks[0].Count + orderBook.Asks[1].Count + orderBook.Asks[2].Count + orderBook.Asks[3].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);
|
||||||
//var bids = (decimal)(orderBook.Bids[0].Count + orderBook.Bids[1].Count + orderBook.Bids[2].Count + orderBook.Bids[3].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)
|
// if (buysSpeed > 0 && sellsSpeed > 0)
|
||||||
{
|
// {
|
||||||
await LogPrice(message, "speed_relation", (sellsSpeed / (sellsSpeed + buysSpeed)));
|
// await LogPrice(message, "speed_relation", (sellsSpeed / (sellsSpeed + buysSpeed)));
|
||||||
}
|
// }
|
||||||
|
|
||||||
//var diff = buysSpeed - sellsSpeed;
|
// //var diff = buysSpeed - sellsSpeed;
|
||||||
//await LogPrice(message, "speed_diff", diff);
|
// //await LogPrice(message, "speed_diff", diff);
|
||||||
//await LogPrice(message, "stabling", (asks+bids)/(sellsSpeed+buysSpeed));
|
// //await LogPrice(message, "stabling", (asks+bids)/(sellsSpeed+buysSpeed));
|
||||||
|
|
||||||
//if (buysSpeed > 0)
|
// if (buysSpeed > 0)
|
||||||
//{
|
// {
|
||||||
// var asksLifetime = asks / buysSpeed;
|
// var asksLifetime = asks / buysSpeed;
|
||||||
// if (asksLifetime > 600) asksLifetime = 600;
|
// 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_lifetime", asksLifetime);
|
// await LogPrice(message, "buys_speed", buysSpeed);
|
||||||
// await LogPrice(message, "asks_lifetime2", asksLifetime2);
|
// }
|
||||||
// await LogPrice(message, "asks_lifetime2", asksLifetime2);
|
|
||||||
// await LogPrice(message, "buys_speed", buysSpeed);
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
//if (sellsSpeed > 0)
|
// if (sellsSpeed > 0)
|
||||||
//{
|
// {
|
||||||
// var bidsLifetime = bids / sellsSpeed;
|
// var bidsLifetime = bids / sellsSpeed;
|
||||||
// if (bidsLifetime > 600) bidsLifetime = 600;
|
// 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_lifetime", bidsLifetime);
|
// await LogPrice(message, "sells_speed", sellsSpeed);
|
||||||
// await LogPrice(message, "bids_lifetime2", System.Math.Abs(bidsLifetime2));
|
// }
|
||||||
// await LogPrice(message, "sells_speed", sellsSpeed);
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
//var buys5min = await _tradeDataProvider.GetDataFrom5MinuteWindowCache(message.Figi, Constants._5minBuyCacheKey);
|
// //var buys5min = await _tradeDataProvider.GetDataFrom5MinuteWindowCache(message.Figi, Constants._5minBuyCacheKey);
|
||||||
//var sells5min = await _tradeDataProvider.GetDataFrom5MinuteWindowCache(message.Figi, Constants._5minSellCacheKey);
|
// //var sells5min = await _tradeDataProvider.GetDataFrom5MinuteWindowCache(message.Figi, Constants._5minSellCacheKey);
|
||||||
//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_5min", diff5min);
|
||||||
|
|
||||||
//var buys1min = await _tradeDataProvider.GetDataFrom1MinuteWindowCache(message.Figi, Constants._1minBuyCacheKey);
|
// //var buys1min = await _tradeDataProvider.GetDataFrom1MinuteWindowCache(message.Figi, Constants._1minBuyCacheKey);
|
||||||
//var sells1min = await _tradeDataProvider.GetDataFrom1MinuteWindowCache(message.Figi, Constants._1minSellCacheKey);
|
// //var sells1min = await _tradeDataProvider.GetDataFrom1MinuteWindowCache(message.Figi, Constants._1minSellCacheKey);
|
||||||
//var buysSpeed1min = buys1min.Sum(p => p.Value) / 60;
|
// //var buysSpeed1min = buys1min.Sum(p => p.Value) / 60;
|
||||||
//var sellsSpeed1min = sells1min.Sum(p => p.Value) / 60;
|
// //var sellsSpeed1min = sells1min.Sum(p => p.Value) / 60;
|
||||||
//var diff1min = buysSpeed1min - sellsSpeed1min;
|
// //var diff1min = buysSpeed1min - sellsSpeed1min;
|
||||||
//await LogPrice(message, "speed_diff_1min", diff1min);
|
// //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)
|
private async Task<ImmutableDictionary<TradingEvent, decimal>> GetSpeedResultantMods(INewPrice message)
|
||||||
{
|
{
|
||||||
var res = GetInitDict(1);
|
var res = GetInitDict(1);
|
||||||
var buys5min = await _tradeDataProvider.GetDataFrom15MinuteWindowCache(message.Figi, Constants._15minBuyCacheKey);
|
var buys5min = await _tradeDataProvider.GetDataFrom15MinuteWindowCache(message.Figi, Constants._15minBuyCacheKey);
|
||||||
var sells5min = await _tradeDataProvider.GetDataFrom15MinuteWindowCache(message.Figi, Constants._15minSellCacheKey);
|
var sells5min = await _tradeDataProvider.GetDataFrom15MinuteWindowCache(message.Figi, Constants._15minSellCacheKey);
|
||||||
var buysSpeed5min = buys5min.Sum(p => p.Value) / 300;
|
var buysSpeed5min = buys5min.Sum(p => p.Value) / 1500;
|
||||||
var sellsSpeed5min = sells5min.Sum(p => p.Value) / 300;
|
var sellsSpeed5min = sells5min.Sum(p => p.Value) / 1500;
|
||||||
var diff5min = buysSpeed5min - sellsSpeed5min;
|
var diff5min = buysSpeed5min - sellsSpeed5min;
|
||||||
await LogPrice(message, "speed_diff_15min", diff5min);
|
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)
|
if (diff5min < 0)
|
||||||
{
|
{
|
||||||
res[TradingEvent.UptrendStart] = Constants.BlockingCoefficient;
|
res[TradingEvent.UptrendStart] = Constants.BlockingCoefficient;
|
||||||
|
|
|
@ -46,7 +46,7 @@ namespace KLHZ.Trader.Service.Controllers
|
||||||
context1.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
|
context1.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
|
||||||
|
|
||||||
|
|
||||||
while (time1 < DateTime.UtcNow.Date)
|
while (time1 < DateTime.UtcNow)
|
||||||
{
|
{
|
||||||
var data = new List<TimeSeriesData>();
|
var data = new List<TimeSeriesData>();
|
||||||
var data2 = new List<TimeSeriesData>();
|
var data2 = new List<TimeSeriesData>();
|
||||||
|
|
Loading…
Reference in New Issue