Price reminder and init approval
* Start price reminder grain * Add config and init grain at startup * Save init wallet when already init
This commit is contained in:
@@ -28,6 +28,9 @@ public class Account
|
||||
|
||||
[Id(6)]
|
||||
public List<Balance> Balances { get; set; }
|
||||
|
||||
[Id(7)]
|
||||
public bool IsGmxInitialized { get; set; } = false;
|
||||
|
||||
public bool IsPrivyWallet => Type == AccountType.Privy;
|
||||
}
|
||||
14
src/Managing.Domain/Accounts/ExchangeApprovalStatus.cs
Normal file
14
src/Managing.Domain/Accounts/ExchangeApprovalStatus.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using Orleans;
|
||||
using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Accounts;
|
||||
|
||||
[GenerateSerializer]
|
||||
public class ExchangeApprovalStatus
|
||||
{
|
||||
[Id(0)]
|
||||
public TradingExchanges Exchange { get; set; }
|
||||
|
||||
[Id(1)]
|
||||
public bool IsApproved { get; set; }
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Managing.Common;
|
||||
using Orleans;
|
||||
using Skender.Stock.Indicators;
|
||||
using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Candles
|
||||
{
|
||||
@@ -9,10 +9,10 @@ namespace Managing.Domain.Candles
|
||||
public class Candle : IQuote
|
||||
{
|
||||
[Id(0)]
|
||||
[Required] public Enums.TradingExchanges Exchange { get; set; }
|
||||
[Required] public TradingExchanges Exchange { get; set; }
|
||||
|
||||
[Id(1)]
|
||||
[Required] public string Ticker { get; set; }
|
||||
[Required] public Ticker Ticker { get; set; }
|
||||
|
||||
[Id(2)]
|
||||
[Required] public DateTime OpenTime { get; set; }
|
||||
@@ -33,7 +33,7 @@ namespace Managing.Domain.Candles
|
||||
[Required] public decimal Low { get; set; }
|
||||
|
||||
[Id(8)]
|
||||
[Required] public Enums.Timeframe Timeframe { get; set; }
|
||||
[Required] public Timeframe Timeframe { get; set; }
|
||||
|
||||
[Id(9)]
|
||||
public decimal Volume { get; set; }
|
||||
|
||||
@@ -8,4 +8,6 @@ public class PrivyInitAddressResponse
|
||||
public string? OrderVaultHash { get; set; }
|
||||
public string? ExchangeRouterHash { get; set; }
|
||||
public string? Error { get; set; }
|
||||
public string? Address { get; set; }
|
||||
public bool IsAlreadyInitialized { get; set; }
|
||||
}
|
||||
@@ -114,7 +114,7 @@ public class StDevContext : IndicatorBase
|
||||
Confidence confidence)
|
||||
{
|
||||
var signal = new LightSignal(
|
||||
MiscExtensions.ParseEnum<Ticker>(candleSignal.Ticker),
|
||||
candleSignal.Ticker,
|
||||
direction,
|
||||
confidence,
|
||||
candleSignal,
|
||||
|
||||
@@ -108,7 +108,7 @@ public class ChandelierExitIndicatorBase : IndicatorBase
|
||||
Confidence confidence)
|
||||
{
|
||||
var signal = new LightSignal(
|
||||
MiscExtensions.ParseEnum<Ticker>(candleSignal.Ticker),
|
||||
candleSignal.Ticker,
|
||||
direction,
|
||||
confidence,
|
||||
candleSignal,
|
||||
|
||||
@@ -105,7 +105,7 @@ public class DualEmaCrossIndicatorBase : EmaBaseIndicatorBase
|
||||
|
||||
private void AddSignal(CandleDualEma candleSignal, TradeDirection direction, Confidence confidence)
|
||||
{
|
||||
var signal = new LightSignal(MiscExtensions.ParseEnum<Ticker>(candleSignal.Ticker), direction, confidence,
|
||||
var signal = new LightSignal(candleSignal.Ticker, direction, confidence,
|
||||
candleSignal, candleSignal.Date, candleSignal.Exchange, Type, SignalType, Name);
|
||||
if (!Signals.Any(s => s.Identifier == signal.Identifier))
|
||||
{
|
||||
|
||||
@@ -69,7 +69,7 @@ public class EmaCrossIndicator : EmaBaseIndicatorBase
|
||||
|
||||
private void AddSignal(CandleEma candleSignal, TradeDirection direction, Confidence confidence)
|
||||
{
|
||||
var signal = new LightSignal(MiscExtensions.ParseEnum<Ticker>(candleSignal.Ticker), direction, confidence,
|
||||
var signal = new LightSignal(candleSignal.Ticker, direction, confidence,
|
||||
candleSignal, candleSignal.Date, candleSignal.Exchange, Type, SignalType, Name);
|
||||
if (!Signals.Any(s => s.Identifier == signal.Identifier))
|
||||
{
|
||||
|
||||
@@ -69,7 +69,7 @@ public class EmaCrossIndicatorBase : EmaBaseIndicatorBase
|
||||
|
||||
private void AddSignal(CandleEma candleSignal, TradeDirection direction, Confidence confidence)
|
||||
{
|
||||
var signal = new LightSignal(MiscExtensions.ParseEnum<Ticker>(candleSignal.Ticker), direction, confidence,
|
||||
var signal = new LightSignal(candleSignal.Ticker, direction, confidence,
|
||||
candleSignal, candleSignal.Date, candleSignal.Exchange, Type, SignalType, Name);
|
||||
if (!Signals.Any(s => s.Identifier == signal.Identifier))
|
||||
{
|
||||
|
||||
@@ -125,7 +125,7 @@ public class LaggingSTC : IndicatorBase
|
||||
private void AddSignal(CandleSct candleSignal, TradeDirection direction, Confidence confidence)
|
||||
{
|
||||
var signal = new LightSignal(
|
||||
MiscExtensions.ParseEnum<Ticker>(candleSignal.Ticker),
|
||||
candleSignal.Ticker,
|
||||
direction,
|
||||
confidence,
|
||||
candleSignal,
|
||||
|
||||
@@ -105,7 +105,7 @@ public class MacdCrossIndicatorBase : IndicatorBase
|
||||
private void AddSignal(CandleMacd candleSignal, TradeDirection direction,
|
||||
Confidence confidence)
|
||||
{
|
||||
var signal = new LightSignal(MiscExtensions.ParseEnum<Ticker>(candleSignal.Ticker), direction, confidence,
|
||||
var signal = new LightSignal(candleSignal.Ticker, direction, confidence,
|
||||
candleSignal, candleSignal.Date, candleSignal.Exchange, Type, SignalType, Name);
|
||||
if (!Signals.Any(s => s.Identifier == signal.Identifier))
|
||||
{
|
||||
|
||||
@@ -233,7 +233,7 @@ public class RsiDivergenceConfirmIndicatorBase : IndicatorBase
|
||||
|
||||
private void AddSignal(CandleRsi candleSignal, TradeDirection direction, Confidence confidence)
|
||||
{
|
||||
var signal = new LightSignal(MiscExtensions.ParseEnum<Ticker>(candleSignal.Ticker), direction, confidence,
|
||||
var signal = new LightSignal(candleSignal.Ticker, direction, confidence,
|
||||
candleSignal, candleSignal.Date, candleSignal.Exchange, Type, SignalType, Name);
|
||||
if (!Signals.Any(s => s.Identifier == signal.Identifier))
|
||||
{
|
||||
|
||||
@@ -206,7 +206,7 @@ public class RsiDivergenceIndicatorBase : IndicatorBase
|
||||
|
||||
private void AddSignal(CandleRsi candleSignal, TradeDirection direction, HashSet<Candle> candles)
|
||||
{
|
||||
var signal = new LightSignal(MiscExtensions.ParseEnum<Ticker>(candleSignal.Ticker), direction, Confidence.Low,
|
||||
var signal = new LightSignal(candleSignal.Ticker, direction, Confidence.Low,
|
||||
candleSignal, candleSignal.Date, candleSignal.Exchange, Type, SignalType, Name);
|
||||
|
||||
if (Signals.Count(s => s.Identifier == signal.Identifier) < 1)
|
||||
|
||||
@@ -106,7 +106,7 @@ public class StcIndicatorBase : IndicatorBase
|
||||
private void AddSignal(CandleSct candleSignal, TradeDirection direction, Confidence confidence)
|
||||
{
|
||||
var signal = new LightSignal(
|
||||
MiscExtensions.ParseEnum<Ticker>(candleSignal.Ticker),
|
||||
candleSignal.Ticker,
|
||||
direction,
|
||||
confidence,
|
||||
candleSignal,
|
||||
|
||||
@@ -170,7 +170,7 @@ public class SuperTrendCrossEma : IndicatorBase
|
||||
|
||||
private void AddSignal(CandleSuperTrend candleSignal, TradeDirection direction, Confidence confidence)
|
||||
{
|
||||
var signal = new LightSignal(MiscExtensions.ParseEnum<Ticker>(candleSignal.Ticker), direction, confidence,
|
||||
var signal = new LightSignal(candleSignal.Ticker, direction, confidence,
|
||||
candleSignal, candleSignal.Date,
|
||||
candleSignal.Exchange, Type, SignalType, Name);
|
||||
if (!Signals.Any(s => s.Identifier == signal.Identifier))
|
||||
|
||||
@@ -107,7 +107,7 @@ public class SuperTrendIndicatorBase : IndicatorBase
|
||||
|
||||
private void AddSignal(CandleSuperTrend candleSignal, TradeDirection direction, Confidence confidence)
|
||||
{
|
||||
var signal = new LightSignal(MiscExtensions.ParseEnum<Ticker>(candleSignal.Ticker), direction, confidence,
|
||||
var signal = new LightSignal(candleSignal.Ticker, direction, confidence,
|
||||
candleSignal, candleSignal.Date,
|
||||
candleSignal.Exchange, Type, SignalType, Name);
|
||||
if (!Signals.Any(s => s.Identifier == signal.Identifier))
|
||||
|
||||
@@ -66,7 +66,7 @@ public class EmaTrendIndicatorBase : EmaBaseIndicatorBase
|
||||
|
||||
public void AddSignal(CandleEma candleSignal, TradeDirection direction, Confidence confidence)
|
||||
{
|
||||
var signal = new LightSignal(MiscExtensions.ParseEnum<Ticker>(candleSignal.Ticker), direction, confidence,
|
||||
var signal = new LightSignal(candleSignal.Ticker, direction, confidence,
|
||||
candleSignal, candleSignal.Date, candleSignal.Exchange, Type, SignalType, Name);
|
||||
if (!Signals.Any(s => s.Identifier == signal.Identifier))
|
||||
{
|
||||
|
||||
@@ -102,7 +102,7 @@ public class StochRsiTrendIndicatorBase : IndicatorBase
|
||||
private void AddSignal(CandleStochRsi candleSignal, TradeDirection direction, Confidence confidence)
|
||||
{
|
||||
var signal = new LightSignal(
|
||||
MiscExtensions.ParseEnum<Ticker>(candleSignal.Ticker),
|
||||
candleSignal.Ticker,
|
||||
direction,
|
||||
confidence,
|
||||
candleSignal,
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using Managing.Core;
|
||||
using Managing.Domain.Candles;
|
||||
using Managing.Domain.Candles;
|
||||
using Managing.Domain.Indicators;
|
||||
using Managing.Domain.MoneyManagements;
|
||||
using Managing.Domain.Scenarios;
|
||||
@@ -124,7 +123,7 @@ public static class TradingBox
|
||||
}
|
||||
|
||||
var data = newCandles.First();
|
||||
return ComputeSignals(lightScenario, latestSignalsPerIndicator, MiscExtensions.ParseEnum<Ticker>(data.Ticker),
|
||||
return ComputeSignals(lightScenario, latestSignalsPerIndicator, data.Ticker,
|
||||
data.Timeframe, config);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user