Nouveau Belkhayate Gravity MDF

MQL5 インディケータ Java

指定

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


応答済み

1
開発者 1
評価
(549)
プロジェクト
826
73%
仲裁
15
53% / 13%
期限切れ
193
23%
仕事中
2
開発者 2
評価
(1)
プロジェクト
1
0%
仲裁
1
0% / 100%
期限切れ
0
類似した注文
I want to create an EA that can take bids according to information of a logic I have developed to give indication of a BUY or SELL opportunity. The EA will then be able to activate the BUY at the lowest possible position once the indicator clears it for a BUY and take bid upwards or identify the highest point and clears it for a SELL and take bids downwards. As you can see from example of JULY 2024 data to see how
hi. I hv a strategy on tradingview need to convert to mt4/mt5 expert advisor for algo trading. would like to add some tradingview strategy setting to the mt4/mt5 EA(not included in my tradingview source code): recalculate after order is filled, order size: xx% of equity
Hi Teams Looking for trading strategy or an EA, which can trigger trade, in XAUUSD, With fixed SL of 2 USD AND TP OF 3 TO 5 USD. Any strategy any time frames. Can work on lowest size
Hi, I have a Compiled JForex strategy (.jfx file) I would like someone to convert it in to readable source code. Please let me know if you can do this task. Thank you
I want to make something automatic which EMA will automatically trade in my account. For this I want to make a simple robot I want to get this made automatically on a simple EMA
Saya memerlukan Expert Advisor berdasarkan sinyal AOX. Itu harus memiliki pemeriksaan dan penanganan kesalahan operasi perdagangan. Kriteria utama pembukaan dan posisi penutupan: ■ arah rata-rata bergerak ■ harga lebih tinggi dari bar sebelumnya. Lot perdagangan adalah parameter masukan
Skarito98 30 - 100 USD
Always stay winning and survive....we all want a better life now this is a chance someone can take,to change their lives for the better.No one is supposed to suffer in this world,we create and invert new things and come up with ideas to solve situations we come across especially when it comes to finance. We all need better things in life and God want good things for us
I believe in Robotics as a major artificial intellect to function of growth of business.Therefore if you script there is a likelihood of bringing economies of scale.The retrospective of the dynamics of indulgence of work can be economics of scale
there I hope you're doing well I want to convert the tradingview indicator to make an indicator for mt5. And in that, I want to make an automatic robot on the base of the indicator. I have the pine script of that indicator
Need ea according to stochastic divergence (both hidden and regular) plus candlestick flip .. need for experinced developers to complete my order with 99percent accuracy. So bet for it the budged is fixed and other plugins will be added in the v2

プロジェクト情報

予算
30 - 200 USD
VAT(付加価値税) (20%): 6 - 40 USD
合計: 36 - 240 USD
開発者用
27 - 180 USD
締め切り
最高 100 日