Nouveau Belkhayate Gravity MDF

MQL5 Göstergeler Java

İş Gereklilikleri

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


Yanıtlandı

1
Geliştirici 1
Derecelendirme
(546)
Projeler
823
73%
Arabuluculuk
15
53% / 13%
Süresi dolmuş
193
23%
Çalışıyor
2
Geliştirici 2
Derecelendirme
(1)
Projeler
1
0%
Arabuluculuk
1
0% / 100%
Süresi dolmuş
0
Ücretsiz
Benzer siparişler
Hello I'm in possesion of a straightforward MT% Expert AdvisorThat I want to convert into DXTrade. Are you able to do this conversion? Kindly let me know if the fil atached will be enough
Hello, I need a quote for developing a bot for my renko based trading system on ctrader platform and based on the attached specification your expertise is highly needed for this project Thanks
Hi Friends, we are forex broker ,we have MT5 admin , manager , and access everything, and we need personal trade copier ,with more options included. And below requirements are compulsory enable in copier, #1 If i delete (disappear) one open position in master account, then also delete (disappear) all slave accounts in same open position, in B Book (NO LP ) accounts. #2. I want
Fix my ea and add reverse trade feature plus has Make ea with trailing stop, once trade is closed in loss open in opposite, close in win open in same position. The ea must trail from 0 ( from the start)
Hello, please let me know if any of these strategies can be turned into a bot (automation) and run 24/7 on a vps. Also note that they might not use the latest versions of indicators, if this matters, then please check for the latest versions. Thank you! Dan https://1drv.ms/f/s!Alr17W7ddJLYgYgiFKZYluOfokbfQg
Hello! Thanks for reading. I need an EA with an inbuilt/already made strategy that I can use for prop firms. The drawdown should be very low of only 2-4% max and another criteria is that no one else other than you are currently using it and if you happen to use it you must tell me which prop firm you are using it on to avoid us using the same EA on the same prop firm to get the account denied. As you know or may
Hello, I am looking for an programmer to convert a TradingView strategy pine script to MT5 EA auto trade bot. The indicator is based on the FVG/Imbalance (Pine script will be provided) The MT5 EA must return 100% the same results as TradingView script The MT5 EA must include the same options as TradingView The MT5 EA must be errors free
Fyemess Hotcold 50+ USD
*Strategy:* - Buy when the 50-day moving average crosses above the 200-day moving average - Sell when the 50-day moving average crosses below the 200-day moving average *Code:* ``` //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ int OnInit() { return(INIT_SUCCEEDED); }
Hello I am looking for a developer to help me backtest my custom ninjatrader 8 strategy andake it work perfectly your expertise is highly need for this project kindly reach out to me and let proceed
Hello please I need a developer to help me fix errors on my Ninjatrader 8 strategy I and make it work perfectly your expertise is need for this project kindly reach out to me and let's proceed

Proje bilgisi

Bütçe
30 - 200 USD
KDV (20%): 6 - 40 USD
Toplam: 36 - 240 USD
Geliştirici için
27 - 180 USD
Son teslim tarihi
to 100 gün