Job finished
Execution time 47 days
Feedback from employee
Thank You Sir
Specification
Hi there,
I'm using two indicators:
1. Hull
2. ATR2
Hull:
//------------------------------------------------------------------ #property copyright "© mladen, 2019" #property link "mladenfx@gmail.com" //------------------------------------------------------------------ #property indicator_chart_window #property indicator_buffers 2 #property indicator_plots 1 #property indicator_label1 "Hull" #property indicator_type1 DRAW_COLOR_LINE #property indicator_color1 clrGray,clrMediumSeaGreen,clrOrangeRed #property indicator_width1 2 // // // // // input int inpPeriod = 105; // Period input double inpDivisor = 2.0; // Divisor ("speed") input ENUM_APPLIED_PRICE inpPrice = PRICE_CLOSE; // Price double val[],valc[]; //------------------------------------------------------------------ // //------------------------------------------------------------------ // // // int OnInit() { SetIndexBuffer(0,val,INDICATOR_DATA); SetIndexBuffer(1,valc,INDICATOR_COLOR_INDEX); iHull.init(inpPeriod,inpDivisor); IndicatorSetString(INDICATOR_SHORTNAME,"Hull ("+(string)inpPeriod+")"); return (INIT_SUCCEEDED); } void OnDeinit(const int reason) { } //------------------------------------------------------------------ // //------------------------------------------------------------------ // // // // // int OnCalculate(const int rates_total,const int prev_calculated,const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { int i= prev_calculated-1; if (i<0) i=0; for (; i<rates_total && !_StopFlag; i++) { val[i] = iHull.calculate(getPrice(inpPrice,open,high,low,close,i),i,rates_total); valc[i] = (i>0) ? (val[i]>val[i-1]) ? 1 : (val[i]<val[i-1]) ? 2 : valc[i-1] : 0; } return(i); } //------------------------------------------------------------------ // Custom function(s) //------------------------------------------------------------------ // //--- // class CHull { private : int m_fullPeriod; int m_halfPeriod; int m_sqrtPeriod; int m_arraySize; double m_weight1; double m_weight2; double m_weight3; struct sHullArrayStruct { double value; double value3; double wsum1; double wsum2; double wsum3; double lsum1; double lsum2; double lsum3; }; sHullArrayStruct m_array[]; public : CHull() : m_fullPeriod(1), m_halfPeriod(1), m_sqrtPeriod(1), m_arraySize(-1) { } ~CHull() { ArrayFree(m_array); } /// /// /// bool init(int period, double divisor) { m_fullPeriod = (int)(period>1 ? period : 1); m_halfPeriod = (int)(m_fullPeriod>1 ? m_fullPeriod/(divisor>1 ? divisor : 1) : 1); m_sqrtPeriod = (int) MathSqrt(m_fullPeriod); m_arraySize = -1; m_weight1 = m_weight2 = m_weight3 = 1; return(true); } // // // double calculate( double value, int i, int bars) { if (m_arraySize<bars) { m_arraySize = ArrayResize(m_array,bars+500); if (m_arraySize<bars) return(0); } // // // m_array[i].value=value; if (i>m_fullPeriod) { m_array[i].wsum1 = m_array[i-1].wsum1+value*m_halfPeriod-m_array[i-1].lsum1; m_array[i].lsum1 = m_array[i-1].lsum1+value-m_array[i-m_halfPeriod].value; m_array[i].wsum2 = m_array[i-1].wsum2+value*m_fullPeriod-m_array[i-1].lsum2; m_array[i].lsum2 = m_array[i-1].lsum2+value-m_array[i-m_fullPeriod].value; } else { m_array[i].wsum1 = m_array[i].wsum2 = m_array[i].lsum1 = m_array[i].lsum2 = m_weight1 = m_weight2 = 0; for(int k=0, w1=m_halfPeriod, w2=m_fullPeriod; w2>0 && i>=k; k++, w1--, w2--) { if (w1>0) { m_array[i].wsum1 += m_array[i-k].value*w1; m_array[i].lsum1 += m_array[i-k].value; m_weight1 += w1; } m_array[i].wsum2 += m_array[i-k].value*w2; m_array[i].lsum2 += m_array[i-k].value; m_weight2 += w2; } } m_array[i].value3=2.0*m_array[i].wsum1/m_weight1-m_array[i].wsum2/m_weight2; // //--- // if (i>m_sqrtPeriod) { m_array[i].wsum3 = m_array[i-1].wsum3+m_array[i].value3*m_sqrtPeriod-m_array[i-1].lsum3; m_array[i].lsum3 = m_array[i-1].lsum3+m_array[i].value3-m_array[i-m_sqrtPeriod].value3; } else { m_array[i].wsum3 = m_array[i].lsum3 = m_weight3 = 0; for(int k=0, w3=m_sqrtPeriod; w3>0 && i>=k; k++, w3--) { m_array[i].wsum3 += m_array[i-k].value3*w3; m_array[i].lsum3 += m_array[i-k].value3; m_weight3 += w3; } } return(m_array[i].wsum3/m_weight3); } }; CHull iHull; // //--- // template <typename T> double getPrice(ENUM_APPLIED_PRICE tprice, T& open[], T& high[], T& low[], T& close[], int i) { switch(tprice) { case PRICE_CLOSE: return(close[i]); case PRICE_OPEN: return(open[i]); case PRICE_HIGH: return(high[i]); case PRICE_LOW: return(low[i]); case PRICE_MEDIAN: return((high[i]+low[i])/2.0); case PRICE_TYPICAL: return((high[i]+low[i]+close[i])/3.0); case PRICE_WEIGHTED: return((high[i]+low[i]+close[i]+close[i])/4.0); } return(0); } //------------------------------------------------------------------
In this indicator the value for "inpPeriod" of each candle should be set to
inpPeriod = (1 / ATR2[0]) * 15000). In case of the "dow jones" 15000 is a good number.
That means: inpPeriod should be calculated new for each candle by this formula. As a consequence inpPeriod will be different for each candle.
The value of ATR2[0] should be generated like in the following code:
// ATR2 double ATR2[]; // array for the indicator ATR2 int ATR2_handle; // handle of the indicator ATR2 // ATR2 ATR2_handle=iATR(_Symbol,_Period,2); if(ATR2_handle < 0) { Print("The creation of ATR2_handle has failed: Runtime error =",GetLastError()); return(-1); } //ATR2 if(CopyBuffer(ATR2_handle,0,0,2,ATR2) <= 0){ Print("CopyBuffer(ATR2_handle,0,0,2,ATR2) <= 0)"); Message[1] = "CopyBuffer(ATR2_handle,0,0,2,ATR2) <= 0)"; return(0); } ArraySetAsSeries(ATR2,true); //Set Value TTAtr_2[TradeType] = ATR2[0];
Responded
1
Rating
Projects
624
38%
Arbitration
40
23%
/
65%
Overdue
93
15%
Free
Published: 4 articles, 19 codes
2
Rating
Projects
124
44%
Arbitration
14
29%
/
50%
Overdue
17
14%
Free
3
Rating
Projects
144
46%
Arbitration
20
40%
/
20%
Overdue
32
22%
Free
Similar orders
I am looking for an experienced developer in MQL5 to build a fully AI and automated trading bot (Expert Advisor) for MetaTrader 5. The EA will trade XAUUSD only and will be based purely on price action and Smart Money Concepts (SMC), specifically focusing on liquidity sweeps, market structure shifts (MSS/CHoCH), and wick rejection entries at key points of interest (POIs). The system must follow a strict rule: no
I need a professional MT5 custom indicator that builds and displays a full Kagi chart , along with continuation-based alert signals . Part 1: Kagi Chart Construction The indicator must: Construct a proper Kagi chart structure Support: Reversal by fixed price Reversal by percentage Maintain correct: Yang (bullish thick line) Yin (bearish thin line) Shoulder (local high) Waist (local low) Draw: Yang lines (thick
Hi, I’m looking for an experienced developer to build an MT5 indicator based on the strategy outlined below. The indicator should: Identify and display entry points Plot TP1, TP2, TP3 , and Stop Loss (SL) using ATR-based calculations Run on my MT5 desktop platform Send real-time trade signals/alerts to my Telegram account If Telegram integration is not feasible, please suggest alternative methods (e.g. push
This robot is going to help me to assist my parents about their needs, it also going help me build a house and purchase my own car. Additionally, it is going to play an essential role upon my life as I will not struggle with the foods and transport for taking the trips
I am looking for a serious marketer with experience in promoting trading tools or Expert Advisors for MetaTrader 5. The product is an automated MT5 trading EA focused on Gold trading, with risk-management tools and trading filters designed to improve trade quality. For credibility, I will provide: An Investor Account for a live/demo account where the EA has been running for a while Backtest reports for the EA Clear
Gold Precision Pro
30 - 100 USD
I want the indicator to be built professionally and carefully because the strategy is strong, but it requires advanced and clean programming. The indicator should work mainly on XAUUSD M15 and should generate more than 2 high-quality signals per day, ideally around 2 to 4 signals maximum, without flooding the chart. The logic must not be random. Each signal must be based on: HTF Bias from H1/H4, Liquidity Sweep
Scanner EA for mt4 indicator
30 - 50 USD
Good day, I would like to have an expert advisor for my MT4 indicator (Major key alert) that can scan and provide push notification messages for entry opportunities across different time frames when a when a signal is identified
Modify an existing EA
30 - 50 USD
This is to modify my Semi Auto EA -Looking for developer modify my existing EA to Pending Order EA (BS/BL/SL/SS). Relevent with Heiken Ashi Smooth ,Moving Average , Acceleration. Concept MAster and Slave. Ready to give previous soucre code as guide. Work to do - 1)To modify this EA to Pending Order. 2) to add new feature - Risk Management/moneymanagement 3) To modify 4 slave to 7 slave will give the previous to
Neew arrow indiactor fix
30+ USD
I have a indicator working good but have some bug for arrow placement . budget is fixed 30 used . only experience developer apply. i want to arrow get put on just above the candle high and candle low
I am looking to get this Indicator but i don't know which indicator is it , if anyone know about it let me know , images are attached , this is used for Binary Pairs
Project information
Budget
40+ USD
Deadline
to 3 day(s)