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
21
38%
/
24%
Overdue
32
22%
Free
Similar orders
EA Recovery Layer
30+ USD
Freelance Task — EA Recovery Layer Hello. I have a ready-made MQL5 EA. The signals, SL/TP and lot calculation should essentially not be touched. I need a recovery system added. I am not a programmer — below is how the robot should behave. What stays Entry only from an EA signal. Stop-loss is not a new signal. Trailing is already built into my EA — recovery does not implement its own trailing. If trailing is disabled
# SNRZ BOT — SESSION PROGRESS LOG Last updated: 2026-09-16 (local late-evening session) ## SAN BOT (new — cloned from SNRZ) - `MQL5\Experts\AutomatedOrderBot_SAN.mq5` / `.ex5` — v1.0, compiled 0 errors/0 warnings - Signal source: custom indicator "SAN" (InpSANName, buy buf 0 / sell buf 1, target bar 1), same SNRZ-style read, MA fallback if missing - Magic number 234567 (separate from SNRZ 123456 so both bots can run
Should be as it but no alarms, also we need to add a deep search so he can see all the preves candles and a memory function so its not slowing down the indicator. for higher time frames daily 4h 1h around 365 days and for lower time frames we do up to 20k bars but both flexible so i can change it later. the memory is important so the indicator is not always recalculating everything when a new candle shows especially
Hi, I need an experienced NinjaTrader 8/NinjaScript developer to finish or rebuild an automated futures strategy, ideally by the end of this week. I already have the complete TradingView Pine Script reference strategy, an existing ~2,000-line NinjaScript implementation, Playback logs, and known historical benchmark trades. MOST IMPORTANT REQUIREMENT: TRADINGVIEW ↔ NINJATRADER PARITY. The Pine Script is the reference
I need a custom MQL5 indicator for MetaTrader 5. The indicator must automatically print entry, stop loss, and take profit zones on the chart using dots. A critical requirement is that these dots must be non-lagging and absolutely non-repainting. Additionally, the indicator needs to identify and display current supply and demand zones. Please provide the mq5 source code and the ex5 file upon completion
I need an experienced trading-data specialist who can help me obtain 3–4 years of historical market data compatible with NinjaTrader 8 . The data will be used for trading strategy development, backtesting, and analysis
MQL5 Quantitative Research & EA Optimization Project
280 - 2000 USD
Project Overview I have an existing MT5 Expert Advisor (EA) written in MQL5. The source code ( .mq5 ) will be provided. The underlying strategy is a trend-following system that performs well during trending market conditions, but requires professional quantitative research to improve its ability to identify and avoid highly sideways/range-bound market conditions. The objective of this project is not to build a new EA
Monthly Report: August 2026 World PEACE Multi FX Algo generated a total realized profit of approximately 31,966 JPY during August. The provider account is normally operated with approximately 200,000 JPY of capital. Compared with this standard operating amount, the realized profit for August was approximately 15.98%. Please note that this is not a compounded monthly return. Realized profits are withdrawn regularly
Is there anyone with an indicator that give signal after head and shoulder pattern is formed in Volatility indices? The indicator will wait for the second shoulder to be formed before giving an arrow of buy or sell
Hi, I want to develop a highly accurate, custom technical indicator for MetaTrader 5 (MT5) specifically tailored for 1-minute Binary Options trading (Quotex). I do NOT need an automated trading bot. I only need visual buy/sell arrows on the chart, an advanced alert system, and an on-chart performance statistics dashboard. The indicator must be 100% non-repainting. --- 1. STRATEGY CONFLUENCE LOGIC The indicator should
Project information
Budget
40+ USD
Deadline
to 3 day(s)