Trading bot grain (#33)
* Trading bot Grain * Fix a bit more of the trading bot * Advance on the tradingbot grain * Fix build * Fix db script * Fix user login * Fix a bit backtest * Fix cooldown and backtest * start fixing bot start * Fix startup * Setup local db * Fix build and update candles and scenario * Add bot registry * Add reminder * Updateing the grains * fix bootstraping * Save stats on tick * Save bot data every tick * Fix serialization * fix save bot stats * Fix get candles * use dict instead of list for position * Switch hashset to dict * Fix a bit * Fix bot launch and bot view * add migrations * Remove the tolist * Add agent grain * Save agent summary * clean * Add save bot * Update get bots * Add get bots * Fix stop/restart * fix Update config * Update scanner table on new backtest saved * Fix backtestRowDetails.tsx * Fix agentIndex * Update agentIndex * Fix more things * Update user cache * Fix * Fix account load/start/restart/run
This commit is contained in:
@@ -23,11 +23,12 @@ public class CandleRepository : ICandleRepository
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public async Task<IList<Candle>> GetCandles(
|
||||
public async Task<HashSet<Candle>> GetCandles(
|
||||
TradingExchanges exchange,
|
||||
Ticker ticker,
|
||||
Timeframe timeframe,
|
||||
DateTime start)
|
||||
DateTime start,
|
||||
int? limit = null)
|
||||
{
|
||||
var results = await _influxDbRepository.QueryAsync(async query =>
|
||||
{
|
||||
@@ -37,20 +38,25 @@ public class CandleRepository : ICandleRepository
|
||||
$"|> filter(fn: (r) => r[\"ticker\"] == \"{ticker}\")" +
|
||||
$"|> filter(fn: (r) => r[\"timeframe\"] == \"{timeframe}\")" +
|
||||
$"|> pivot(rowKey:[\"_time\"], columnKey: [\"_field\"], valueColumn: \"_value\")";
|
||||
if (limit != null)
|
||||
{
|
||||
flux += $"|> tail(n:{limit})";
|
||||
}
|
||||
|
||||
var prices = await query.QueryAsync<PriceDto>(flux, _influxDbRepository.Organization);
|
||||
return prices.Select(price => PriceHelpers.Map(price)).ToList();
|
||||
return prices.Select(price => PriceHelpers.Map(price)).ToHashSet();
|
||||
});
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
public async Task<IList<Candle>> GetCandles(
|
||||
public async Task<HashSet<Candle>> GetCandles(
|
||||
TradingExchanges exchange,
|
||||
Ticker ticker,
|
||||
Timeframe timeframe,
|
||||
DateTime start,
|
||||
DateTime end)
|
||||
DateTime end,
|
||||
int? limit = null)
|
||||
{
|
||||
var results = await _influxDbRepository.QueryAsync(async query =>
|
||||
{
|
||||
@@ -60,9 +66,13 @@ public class CandleRepository : ICandleRepository
|
||||
$"|> filter(fn: (r) => r[\"ticker\"] == \"{ticker}\")" +
|
||||
$"|> filter(fn: (r) => r[\"timeframe\"] == \"{timeframe}\")" +
|
||||
$"|> pivot(rowKey:[\"_time\"], columnKey: [\"_field\"], valueColumn: \"_value\")";
|
||||
if (limit != null)
|
||||
{
|
||||
flux += $"|> tail(n:{limit})";
|
||||
}
|
||||
|
||||
var prices = await query.QueryAsync<PriceDto>(flux, _influxDbRepository.Organization);
|
||||
return prices.Select(price => PriceHelpers.Map(price)).ToList();
|
||||
return prices.Select(price => PriceHelpers.Map(price)).ToHashSet();
|
||||
});
|
||||
|
||||
return results;
|
||||
|
||||
Reference in New Issue
Block a user