public void Update()
        {
            double d10 = Distance / 30;

            //For enter Ray
            _eDot = _strategy.DrawDot("enterDot", true, 0, RealRayPrice(EntryRay), _dotColor);
            double s = RealRayPrice(EntryRay);

            _eText = _strategy.DrawText("enterText", TextForma(s), 0, RealRayPrice(EntryRay) + d10, _textColor);

            //For stop Ray
            _sDot = _strategy.DrawDot("stopDot", true, 0, RealRayPrice(StopRay), _dotColor);
            double text = RealRayPrice(StopRay);

            _sText = _strategy.DrawText("stopText", TextForma(text), 0, RealRayPrice(StopRay) + d10, _textColor);

            //For TP Ray
            _tpDot = _strategy.DrawDot("TPDot", true, 0, RealRayPrice(ProfitTargetRay), _dotColor);
            double priceText = RealRayPrice(ProfitTargetRay);

            _tpText = _strategy.DrawText("TPText", TextForma(priceText), 0, RealRayPrice(ProfitTargetRay) + d10, _textColor);


            //Check if have turn on the Closing Half and is The ray exist because without ray we will got the error
            if (ClosingHalf && HalfCloseRay != null)
            {
                double priceT = RealRayPrice(HalfCloseRay);
                _hcDot = _strategy.DrawDot("HCDot", true, 0, priceT, _dotColor);

                _hcText = _strategy.DrawText("HCText", TextForma(priceT), 0, RealRayPrice(HalfCloseRay) + d10, _textColor);
            }
        }
        public void Offset(OffsetTypes offsetType, params float[] offsets)
        {
            var result = new IDot[2];

            switch (offsetType)
            {
            case OffsetTypes.Usual:
            {
                result = Transformer3D.Offset(offsets, new IDot[] { StartPoint, EndPoint });
                break;
            }

            case OffsetTypes.MatrixOffset:
            {
                result = Transformer3D.Action(offsets, new IDot[] { StartPoint, EndPoint });
                break;
            }

            case OffsetTypes.HouseOffset:
            {
                result = Transformer3D.HomeMoving(offsets[0], offsets[1], offsets[2], new IDot[] { StartPoint, EndPoint });
                break;
            }
            }

            StartPoint = result[0];
            EndPoint   = result[1];

            StartPoint.Normalise();
            EndPoint.Normalise();
        }
        public void UpdateExistingSlopeRay(IRay ray)
        {
            double price = _strategy.RayPrice(ray);

            _dot  = _strategy.DrawDot("slopeDot", false, 0, price, Color.Black);
            _text = _strategy.DrawText("SlopeText", TextForma(price), 0, price, Color.Black);
            _strategy.ChartControl.ChartPanel.Invalidate();
        }
        public void UpdateSlopeLine(Slope slope)
        {
            double price = _strategy.Instrument.MasterInstrument.Round2TickSize(slope.Price);

            _ray  = _strategy.DrawRay("Slope", false, slope.Bar, price, slope.Bar - 3, price, SlopeLineColor, DashStyle.Solid, 2);
            _dot  = _strategy.DrawDot("slopeDot", false, 0, price, Color.Black);
            _text = _strategy.DrawText("SlopeText", TextForma(price), 0, price, Color.Black);
            _strategy.ChartControl.ChartPanel.Invalidate();
        }
            public void ChangeActiveDot(e_Dot type)
            {
                if (type == _activeVal) return;

                IDot temp = _active;
                _active = _passive;
                _passive = temp;

                OnActiveChanged(new ea_ValueChange<e_Dot>(temp.GetDotType(), _active.GetDotType()));
            }
        public float GetDistance(IDot point)
        {
            var minDistance = float.MaxValue;

            foreach (var i in Data)
            {
                var distance = i.GetDistance(point);

                if (distance < minDistance)
                {
                    minDistance = distance;
                }
            }

            return(minDistance);
        }
Exemple #7
0
        public void SetInnerDot(IDot dot)
        {
            if (dot == null || dot == _innerDot) return;

            _innerDot.event_DateChanged -= handler_dateChanged;

            DateTime oldDate = _innerDot.GetDate();
            IDot oldDot = _innerDot;
            _innerDot = dot;

            _innerDot.event_DateChanged += handler_dateChanged;

            OnDotChanged(new ea_ValueChange<IDot>(oldDot, _innerDot));

            if (oldDate != _innerDot.GetDate())
                OnDateChanged(new ea_ValueChange<DateTime>(oldDate, _innerDot.GetDate()));
        }
Exemple #8
0
        private void setMasterStart(bool start)
        {
            if (start)
            {
                master        = this.start;
                isStartMaster = true;
                slave         = finish;
            }
            else
            {
                master        = finish;
                isStartMaster = false;
                slave         = this.start;
            }

            __eTree_makeSlaveCheck();
            slave.dotLimitCheck  = dcdSlave;
            master.dotLimitCheck = dcdMaster;
        }
Exemple #9
0
        public period_localLimit(IDot start, IDot finish, e_tskLimit lType)
        {
            init_eventsInternal();

            dcdSlave = new dotCheckDate(slaveCheck);
            dcdMaster = new dotCheckDate(masterCheck);

            _outerLimit = dmyChk;
            fncDuration = durNull;

            init_outerLimit();
            init_expTreeParameters();

            connectProject(null);

            this.start = start;
            this.finish = finish;
            _limitDate = start.date;

            limitType = lType;
        }
Exemple #10
0
        public period_localLimit(IDot start, IDot finish, e_tskLimit lType)
        {
            init_eventsInternal();

            dcdSlave  = new dotCheckDate(slaveCheck);
            dcdMaster = new dotCheckDate(masterCheck);

            _outerLimit = dmyChk;
            fncDuration = durNull;

            init_outerLimit();
            init_expTreeParameters();

            connectProject(null);

            this.start  = start;
            this.finish = finish;
            _limitDate  = start.date;

            limitType = lType;
        }
Exemple #11
0
        public void subscribe(IDock master, IDock slave)
        {
            masterMbr = new alter.Link.classes.LinkMember(
                        new alter.Function.classes.VectorF()
                        {
                            Date = alter.classes.Hlp.InitDate,
                            Direction = e_Direction.Fixed
                        },
                        dependDotMst()
                        );
            masterMbr.SetInfo(master);
            masterMbr.SetDependType(e_DependType.Master);

            dotMaster = master.Subscribe(e_DependType.Master, this);

            masterMbr.Depend.SetDate(() => dotMaster.GetDate());
            masterMbr.Depend.SetDependDot(() => dependDotMst());

            master.event_ObjectDeleted += onDeleteTask;
            dotMaster.event_DateChanged += onMasterDateChange;


            slaveMbr = new alter.Link.classes.LinkMember(
                new alter.Function.classes.VectorF()
                {
                    Date = getDateLimit(),
                    Direction = e_Direction.Fixed
                },
                dependDotSlv()
                );
            slaveMbr.SetInfo(slave);
            slaveMbr.SetDependType(e_DependType.Slave);

            dotSlave = slave.Subscribe(e_DependType.Slave, this);
            



        }
 public float GetDistance(IDot point) => GetSpace(point) * 2 / Length;
Exemple #13
0
 public DotAdapter(IDot innerDot)
 {
     SetInnerDot(innerDot);
 }
Exemple #14
0
 public period_localLimit(IDot start, IDot finish)
     : this(start, finish, defaultLimit)
 {
 }
 public void clear()
 {
     unsubscribe();
     unsubscribe();
     unsubscribe = null;
     sender = null;
     parentID = null;
     selectedDot = null;
     line = null;
     cleared = true;
 }
Exemple #16
0
            private void changeDot(IDot Old, IDot New)
            {
                e_Dot dOld = dependDot;
                if (Old != null)
                {
                    Old.event_DateChanged -= onDateChange;
                    dOld = Old.GetDotType();
                }
                New.event_DateChanged += onDateChange;
                e_Dot dNew = New.GetDotType();
                dependDot = dNew;
                event_DependDotChanged?.Invoke(sender, new ea_ValueChange<e_Dot>(dOld, dNew));

                if (lastDate != parent.GetDot(dependDot).GetDate())
                {
                    DateTime OldDate = lastDate;
                    lastDate = parent.GetDot(dependDot).GetDate();
                    event_DateChanged?.Invoke(sender, new ea_ValueChange<DateTime>(OldDate, lastDate));
                }
            }
 protected void subscribeHandler(IDot dot)
 {
     if(dot == null) throw new ArgumentNullException();
     unsubscribe();
     dot.event_DateChanged += handler_dotDateChanged;
     unsubscribe = () =>
     {
         dot.event_DateChanged -= handler_dotDateChanged;
         unsubscribe = () => { };
     };
 }
        protected bool subscribeDot(e_Dot type)
        {
            if (type == selectedDot.GetDotType() && !Enum.IsDefined(typeof (e_Dot), type)) return false;

            DateTime oldDate = date;
            e_Dot oldType = dotType;
            IDot dot = line.GetDot(type);

            subscribeHandler(dot);
            selectedDot = dot;
            checkChangedValues(oldDate, oldType);
            return true;
        }
Exemple #19
0
 public CDotManager(IDot start, IDot finish)
 {
     _active = start;
     _passive = finish;
 }
Exemple #20
0
        private void setMasterStart(bool start)
        {
            if(start)
            {
                master = this.start;
                isStartMaster = true;
                slave = finish;
            }
            else
            {
                master = finish;
                isStartMaster = false;
                slave = this.start;
            }

            __eTree_makeSlaveCheck();
            slave.dotLimitCheck = dcdSlave;
            master.dotLimitCheck = dcdMaster;
        }
Exemple #21
0
 public period_localLimit(IDot start, IDot finish)
     : this(start, finish, defaultLimit)
 {
 }
 public Vector3D(string name, IDot startPoint, IDot endPoint)
 {
     Name       = name;
     StartPoint = startPoint;
     EndPoint   = endPoint;
 }
 public float GetSpace(IDot point) => 1f / 2 * Abs((EndPoint.Y - StartPoint.Y) * point.X - (EndPoint.X - StartPoint.X) * point.Y + EndPoint.X * StartPoint.Y - EndPoint.Y * StartPoint.X);
        protected bool subscribeDot(e_Dot type)
        {
            if (!Enum.IsDefined(typeof (e_Dot), type)) return false;
            DateTime oldDate;
            e_Dot oldType;
            Action eventInvoke = () => { };
            if (selectedDot != null)
            {
                if (type == selectedDot.GetDotType()) return false;
                oldDate = date;
                oldType = dotType;
                eventInvoke = () => checkChangedValues(oldDate, oldType);
            }
            IDot dot = line.GetDot(type);

            subscribeHandler(dot);
            selectedDot = dot;
            eventInvoke();
            return true;
        }
 public Vector3D(IDot startPoint, IDot endPoint)
 {
     StartPoint = startPoint;
     EndPoint   = endPoint;
 }