Nouveau Belkhayate Gravity MDF

MQL5 Indicadores Java

Termos de Referência

region Using declarations

using System;

using System.ComponentModel;

using System.Diagnostics;

using System.Drawing;

using System.Drawing.Drawing2D;

using System.Xml.Serialization;

using NinjaTrader.Cbi;

using NinjaTrader.Data;

using NinjaTrader.Gui.Chart;

#endregion


// This namespace holds all indicators and is required. Do not change it.

namespace NinjaTrader.Indicator

{

    /// <summary>

    /// Enter the description of your new custom indicator here

    /// </summary>

    [Description("Belkhayate Gravity Center")]

    public class BCG : Indicator

    {

        #region Variables

        // Wizard generated variables

        private int period = 180; // Default setting for Period

        private int order = 3; // Default setting for Order

        private double ecart = 1.618; // Default setting for Ecart

    // User defined variables (add any user defined variables below)

private double[,] ai = new double[10,10];

private double[] b = new double[10];

private double[] x = new double[10];

private double[] sx = new double[10];

private double sum;

private int ip;

private int p;

private int n;

private int f;

private double qq;

private double mm;

private double tt;

private int ii;

private int jj;

private int kk;

private int ll;

private int nn;

private double sq;

private double sq2;

private int i0 = 0;

private int mi;

        #endregion


        /// <summary>

        /// This method is used to configure the indicator and is called once before any bar data is loaded.

        /// </summary>

        protected override void Initialize()

        {

            Add(new Plot(Color.FromKnownColor(KnownColor.MediumBlue), PlotStyle.Line, "GravityLine"));

            Add(new Plot(Color.FromKnownColor(KnownColor.Gray), PlotStyle.Line, "UC1"));

            Add(new Plot(Color.FromKnownColor(KnownColor.Red), PlotStyle.Line, "UC2"));

            Add(new Plot(Color.FromKnownColor(KnownColor.Red), PlotStyle.Line, "UC3"));

            Add(new Plot(Color.FromKnownColor(KnownColor.Gray), PlotStyle.Line, "LC1"));

            Add(new Plot(Color.FromKnownColor(KnownColor.LimeGreen), PlotStyle.Line, "LC2"));

            Add(new Plot(Color.FromKnownColor(KnownColor.LimeGreen), PlotStyle.Line, "LC3"));

            CalculateOnBarClose = false;

            Overlay = true;

            PriceTypeSupported = true;

        }


        /// <summary>

        /// Called on each bar update event (incoming tick)

        /// </summary>

        protected override void OnBarUpdate()

        {

if( CurrentBar < Period) return;

ip = Period;

p = ip;

sx[1] = p + 1;

nn = Order + 1;

//----------------------sx-------------------------------------------------------------------

for(mi=1;mi<=nn*2-2;mi++) 

{

sum=0;

for(n=i0;n<=i0+p;n++)

{

sum+=Math.Pow(n,mi);

}

sx[mi+1]=sum;

}  

//----------------------syx-----------

for(mi=1;mi<=nn;mi++)

{

sum=0.00000;

for(n=i0;n<=i0+p;n++)

{

if(mi==1) sum+=Close[n];

else sum+=Close[n]*Math.Pow(n,mi-1);

}

b[mi]=sum;

//===============Matrix=======================================================================================================

for(jj=1;jj<=nn;jj++)

{

for(ii=1; ii<=nn; ii++)

{

kk=ii+jj-1;

ai[ii,jj]=sx[kk];

}

}  

//===============Gauss========================================================================================================

for(kk=1; kk<=nn-1; kk++)

{

ll=0;

mm=0;

for(ii=kk; ii<=nn; ii++)

{

if(Math.Abs(ai[ii,kk])>mm)

{

mm=Math.Abs(ai[ii,kk]);

ll=ii;

}

}

if(ll==0) return;   

if (ll!=kk)

{

for(jj=1; jj<=nn; jj++)

{

tt=ai[kk,jj];

ai[kk,jj]=ai[ll,jj];

ai[ll,jj]=tt;

}

tt=b[kk];

b[kk]=b[ll];

b[ll]=tt;

}  

for(ii=kk+1;ii<=nn;ii++)

{

qq=ai[ii,kk]/ai[kk,kk];

for(jj=1;jj<=nn;jj++)

{

if(jj==kk) ai[ii,jj]=0;

else ai[ii,jj]=ai[ii,jj]-qq*ai[kk,jj];

}

b[ii]=b[ii]-qq*b[kk];

}

}  

x[nn]=b[nn]/ai[nn,nn];

for(ii=nn-1;ii>=1;ii--)

{

tt=0;

for(jj=1;jj<=nn-ii;jj++)

{

tt=tt+ai[ii,ii+jj]*x[ii+jj];

x[ii]=(1/ai[ii,ii])*(b[ii]-tt);

}

//===========================================================================================================================

for(n=i0;n<=i0+p;n++)

{

sum=0;

for(kk=1;kk<=Order;kk++)

{

sum+=x[kk+1]*Math.Pow(n,kk);

}

GravityLine.Set(n,x[1]+sum);

//-----------------------------------Std-----------------------------------------------------------------------------------

sq=0.0;

for(n=i0;n<=i0+p;n++)

{

sq+=Math.Pow(Close[n]-GravityLine[n],2);

}

sq = Math.Sqrt(sq/(p+1))*Ecart;

for(n=i0;n<=i0+p;n++)

{

UC1.Set(n,GravityLine[n]+sq);

LC1.Set(n,GravityLine[n]-sq);

UC2.Set(n,GravityLine[n]+sq*2);

LC2.Set(n,GravityLine[n]-sq*2);

UC3.Set(n,GravityLine[n]+sq*3);

LC3.Set(n,GravityLine[n]-sq*3);

}

        }


        #region Properties

        [Browsable(false)] // this line prevents the data series from being displayed in the indicator properties dialog, do not remove

        [XmlIgnore()] // this line ensures that the indicator can be saved/recovered as part of a chart template, do not remove

        public DataSeries GravityLine

        {

            get { return Values[0]; }

        }


        [Browsable(false)] // this line prevents the data series from being displayed in the indicator properties dialog, do not remove

        [XmlIgnore()] // this line ensures that the indicator can be saved/recovered as part of a chart template, do not remove

        public DataSeries UC1

        {

            get { return Values[1]; }

        }


        [Browsable(false)] // this line prevents the data series from being displayed in the indicator properties dialog, do not remove

        [XmlIgnore()] // this line ensures that the indicator can be saved/recovered as part of a chart template, do not remove

        public DataSeries UC2

        {

            get { return Values[2]; }

        }


        [Browsable(false)] // this line prevents the data series from being displayed in the indicator properties dialog, do not remove

        [XmlIgnore()] // this line ensures that the indicator can be saved/recovered as part of a chart template, do not remove

        public DataSeries UC3

        {

            get { return Values[3]; }

        }


        [Browsable(false)] // this line prevents the data series from being displayed in the indicator properties dialog, do not remove

        [XmlIgnore()] // this line ensures that the indicator can be saved/recovered as part of a chart template, do not remove

        public DataSeries LC1

        {

            get { return Values[4]; }

        }


        [Browsable(false)] // this line prevents the data series from being displayed in the indicator properties dialog, do not remove

        [XmlIgnore()] // this line ensures that the indicator can be saved/recovered as part of a chart template, do not remove

        public DataSeries LC2

        {

            get { return Values[5]; }

        }


        [Browsable(false)] // this line prevents the data series from being displayed in the indicator properties dialog, do not remove

        [XmlIgnore()] // this line ensures that the indicator can be saved/recovered as part of a chart template, do not remove

        public DataSeries LC3

        {

            get { return Values[6]; }

        }


        [Description("")]

        [GridCategory("Parameters")]

        public int Period

        {

            get { return period; }

            set { period = Math.Max(1, value); }

        }


        [Description("")]

        [GridCategory("Parameters")]

        public int Order

        {

            get { return order; }

            set { order = Math.Max(1, value); }

        }


        [Description("")]

        [GridCategory("Parameters")]

        public double Ecart

        {

            get { return ecart; }

            set { ecart = Math.Max(0.100, value); }

        }

        #endregion

    }

}


#region NinjaScript generated code. Neither change nor remove.

// This namespace holds all indicators and is required. Do not change it.

namespace NinjaTrader.Indicator

{

    public partial class Indicator : IndicatorBase

    {

        private BCG[] cacheBCG = null;


        private static BCG checkBCG = new BCG();


        /// <summary>

        /// Belkhayate Gravity Center

        /// </summary>

        /// <returns></returns>

        public BCG BCG(double ecart, int order, int period)

        {

            return BCG(Input, ecart, order, period);

        }


        /// <summary>

        /// Belkhayate Gravity Center

        /// </summary>

        /// <returns></returns>

        public BCG BCG(Data.IDataSeries input, double ecart, int order, int period)

        {

            if (cacheBCG != null)

                for (int idx = 0; idx < cacheBCG.Length; idx++)

                    if (Math.Abs(cacheBCG[idx].Ecart - ecart) <= double.Epsilon && cacheBCG[idx].Order == order && cacheBCG[idx].Period == period && cacheBCG[idx].EqualsInput(input))

                        return cacheBCG[idx];


            lock (checkBCG)

            {

                checkBCG.Ecart = ecart;

                ecart = checkBCG.Ecart;

                checkBCG.Order = order;

                order = checkBCG.Order;

                checkBCG.Period = period;

                period = checkBCG.Period;


                if (cacheBCG != null)

                    for (int idx = 0; idx < cacheBCG.Length; idx++)

                        if (Math.Abs(cacheBCG[idx].Ecart - ecart) <= double.Epsilon && cacheBCG[idx].Order == order && cacheBCG[idx].Period == period && cacheBCG[idx].EqualsInput(input))

                            return cacheBCG[idx];


                BCG indicator = new BCG();

                indicator.BarsRequired = BarsRequired;

                indicator.CalculateOnBarClose = CalculateOnBarClose;

#if NT7

                indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256;

                indicator.MaximumBarsLookBack = MaximumBarsLookBack;

#endif

                indicator.Input = input;

                indicator.Ecart = ecart;

                indicator.Order = order;

                indicator.Period = period;

                Indicators.Add(indicator);

                indicator.SetUp();


                BCG[] tmp = new BCG[cacheBCG == null ? 1 : cacheBCG.Length + 1];

                if (cacheBCG != null)

                    cacheBCG.CopyTo(tmp, 0);

                tmp[tmp.Length - 1] = indicator;

                cacheBCG = tmp;

                return indicator;

            }

        }

    }

}


// This namespace holds all market analyzer column definitions and is required. Do not change it.

namespace NinjaTrader.MarketAnalyzer

{

    public partial class Column : ColumnBase

    {

        /// <summary>

        /// Belkhayate Gravity Center

        /// </summary>

        /// <returns></returns>

        [Gui.Design.WizardCondition("Indicator")]

        public Indicator.BCG BCG(double ecart, int order, int period)

        {

            return _indicator.BCG(Input, ecart, order, period);

        }


        /// <summary>

        /// Belkhayate Gravity Center

        /// </summary>

        /// <returns></returns>

        public Indicator.BCG BCG(Data.IDataSeries input, double ecart, int order, int period)

        {

            return _indicator.BCG(input, ecart, order, period);

        }

    }

}


// This namespace holds all strategies and is required. Do not change it.

namespace NinjaTrader.Strategy

{

    public partial class Strategy : StrategyBase

    {

        /// <summary>

        /// Belkhayate Gravity Center

        /// </summary>

        /// <returns></returns>

        [Gui.Design.WizardCondition("Indicator")]

        public Indicator.BCG BCG(double ecart, int order, int period)

        {

            return _indicator.BCG(Input, ecart, order, period);

        }


        /// <summary>

        /// Belkhayate Gravity Center

        /// </summary>

        /// <returns></returns>

        public Indicator.BCG BCG(Data.IDataSeries input, double ecart, int order, int period)

        {

            if (InInitialize && input == null)

                throw new ArgumentException("You only can access an indicator with the default input/bar series from within the 'Initialize()' method");


            return _indicator.BCG(input, ecart, order, period);

        }

    }

}

#endregion


Respondido

1
Desenvolvedor 1
Classificação
(564)
Projetos
844
73%
Arbitragem
15
53% / 13%
Expirado
193
23%
Livre
2
Desenvolvedor 2
Classificação
(1)
Projetos
1
0%
Arbitragem
1
0% / 100%
Expirado
0
Livre
Pedidos semelhantes
Panda402 30 - 100000 USD
The file must be fast to move with the market. It must be transparent it must move accordingly with the market and increase the money and also with less risk
We are looking for a developer to finish and stabilize an existing Kalshi trading bot (~60% complete) built in TypeScript. This is not a MetaTrader EA. The system interacts with the Kalshi API and requires strong understanding of execution logic, order handling, and state management. Scope of Work: Review and understand existing TypeScript codebase Complete missing functionality Fix execution issues (order placement
Hello, I’m looking for an experienced developer who can help convert an existing cTrader indicator into a fully functional Quantower indicator . I already have the complete source code for the cTrader indicator (written in C#) , and I would like the same logic, behavior, and visual output to be accurately replicated in Quantower
Early Killer EA 30+ USD
It must have automated stop loss. Something that can end poverty and kill the market early.It must take the trades for me whenever I start it it must work on tradeport ea

Informações sobre o projeto

Orçamento
30 - 200 USD
Prazo
para 100 dias