示例#1
0
        public static IList <double> CalcDIM(ISecurity source, int period, IMemoryContext context = null)
        {
            var bars  = source.Bars;
            int count = bars.Count;

            var trueRange = Series.TrueRange(bars, context);
            var atr       = Series.EMA(trueRange, period, context);

            context?.ReleaseArray((Array)trueRange);
            IList <double> diM1 = context?.GetArray <double>(count) ?? new double[count];

            for (int i = 1; i < count; i++)
            {
                var dmP = bars[i].High - bars[i - 1].High;
                var dmM = bars[i - 1].Low - bars[i].Low;
                if ((dmP < 0 && dmM < 0) || dmP == dmM)
                {
                    dmP = dmM = 0;
                }
                if (dmP > dmM)
                {
                    dmM = 0;
                }
                diM1[i] = dmM;
            }
            var diM2 = Series.EMA(diM1, period, context);

            context?.ReleaseArray((Array)diM1);
            for (int i = 1; i < count; i++)
            {
                diM2[i] = atr[i] == 0 ? 0 : diM2[i] / atr[i];
            }
            context?.ReleaseArray((Array)atr);
            return(diM2);
        }
 public SignInManager(IHttpContextAccessor httpContextAccessor,
                      IUserManager userManager,
                      IMemoryContext memoryContext)
 {
     _httpContextAccessor = httpContextAccessor;
     _userManager         = userManager;
     _memoryContext       = memoryContext;
 }
示例#3
0
 public LocalExecuteContext(IList <double> source, IMemoryContext context)
 {
     Source    = source;
     Smooth    = context.GetArray <double>(7);
     Detrender = context.GetArray <double>(7);
     I1        = context.GetArray <double>(7);
     Q1        = context.GetArray <double>(7);
     m_context = context;
 }
示例#4
0
        public static IList <bool> Calc(IList <bool> source, int period, IMemoryContext context = null)
        {
            var res      = context?.GetArray <bool>(source.Count) ?? new bool[source.Count];
            int savedNum = -1;

            for (int i = 1; i < source.Count; i++)
            {
                res[i] = Calc(source[i], period, i, ref savedNum);
            }
            return(res);
        }
示例#5
0
        public static IList <bool> Calc(IList <bool> source1, IList <bool> source2, IMemoryContext context = null)
        {
            var res = context?.GetArray <bool>(source1.Count) ?? new bool[source1.Count];

            for (int i = 1; i < source1.Count; i++)
            {
                // TODO: в этой проверке i всегда больше 0, потому что мы внутри фор от 1.
                var last = i > 0 && res[i - 1];
                res[i] = Calc(source1[i], source2[i], last);
            }
            return(res);
        }
示例#6
0
        public MainWindow()
        {
            InitializeComponent();

            var path = Environment.ExpandEnvironmentVariables(@"%TEMP%\Diablo III.DMP");

            _ctx = new MemoryContext(new MiniDumpMemoryReader(path).Memory);

            var heap  = _ctx.DataSegment.MemoryManager.LocalHeap as LocalHeap;
            var nodes = heap.MainBlocks.Concat(heap.SmallBlocks).ToArray();

            _idx = new NodeIndex(nodes);

            UXAddress.Text = (_ctx.DataSegment.ObjectManager as MemoryObject).Address.ToString();
            UXSize.Text    = "0x" + TypeHelper.SizeOf(_ctx.DataSegment.ObjectManager.GetType()).ToString("X");
        }
示例#7
0
 public UserManager(IMemoryContext memoryContext,
                    IUserAuthenticatorKeyStore authenticatorKeyStore,
                    IUserTwoFactorTokenProvider twoFactorTokenProvider,
                    ISecretKeyProvider secretKeyProvider,
                    IPasswordHasher <UserData> passwordHasher,
                    IDateTime dateTime,
                    IConfiguration configuration)
 {
     _memoryContext          = memoryContext;
     _authenticatorKeyStore  = authenticatorKeyStore;
     _twoFactorTokenProvider = twoFactorTokenProvider;
     _secretKeyProvider      = secretKeyProvider;
     _passwordHasher         = passwordHasher;
     _dateTime      = dateTime;
     _configuration = configuration;
 }
示例#8
0
        public static IList <double> CalcVolatility(this ISecurity sec, IMemoryContext context)
        {
            var bars  = sec.Bars;
            var count = bars.Count;
            var res   = context?.GetArray <double>(count) ?? new double[count];

            for (var i = 1; i < count; i++)
            {
                res[i] = Math.Log(bars[i].Close) - Math.Log(bars[i - 1].Close);
            }

            var barsPerDay = 1440 / (int)sec.IntervalInstance.ToMinutes();
            var stDev      = Series.StDev(res, barsPerDay, context);
            var coef       = Math.Sqrt(1.0 / (barsPerDay * 365));

            for (var i = 1; i < count; i++)
            {
                res[i] = stDev[i] / coef;
            }

            return(res);
        }
示例#9
0
        public static IList <double> Calc(IList <double> source, int period, IMemoryContext context = null)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (period <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(period));
            }

            var result = context?.GetArray <double>(source.Count) ?? new double[source.Count];

            if (result.Length > 0)
            {
                if (period == 1 || result.Length == 1)
                {
                    source.CopyTo(result, 0);
                }
                else
                {
                    var ema1 = Series.EMA(source, period, context);
                    var ema2 = Series.EMA(ema1, period, context);
                    var ema3 = Series.EMA(ema2, period, context);

                    for (var i = 0; i < result.Length; i++)
                    {
                        result[i] = 3 * ema1[i] - 3 * ema2[i] + ema3[i];
                    }

                    context?.ReleaseArray((Array)ema1);
                    context?.ReleaseArray((Array)ema2);
                    context?.ReleaseArray((Array)ema3);
                }
            }
            return(result);
        }
示例#10
0
        public static IList <double> Calc(IList <double> source, int period, IMemoryContext context = null)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (period <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(period));
            }

            var result = context?.GetArray <double>(source.Count) ?? new double[source.Count];

            if (result.Length > 0)
            {
                result[0] = Calc(source, 0, 0, period);
                for (var i = 1; i < result.Length; i++)
                {
                    result[i] = Calc(source, result[i - 1], i, period);
                }
            }
            return(result);
        }
示例#11
0
 public ListItemRepository(IMemoryContext context) : base(context)
 {
 }
示例#12
0
 public CrudRepository(IMemoryContext context) : base(context)
 {
 }
示例#13
0
 public UserRepository(IMemoryContext context) : base(context)
 {
 }
示例#14
0
        public static IList <double> CalcADX(IList <double> source1, IList <double> source2, int period, IMemoryContext context = null)
        {
            int            count = source1.Count;
            IList <double> dx1   = context?.GetArray <double>(count) ?? new double[count];

            for (int i = 1; i < count; i++)
            {
                dx1[i] = source1[i] == 0 && source2[i] == 0
                             ? 0
                             : Math.Abs(source1[i] - source2[i]) / (source1[i] + source2[i]) * 100;
            }
            var dx2 = Series.EMA(dx1, period, context);

            context?.ReleaseArray((Array)dx1);
            return(dx2);
        }