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%
/
15%
Overdue
32
22%
Working
Similar orders
have the Beatrix Inventor Expert Advisor (EA) that was profitable in the past but has been losing money recently. I need an experienced EA developer/optimizer to study the trade history (especially Stop Loss hits, drawdown periods, SL/TP behavior, win/loss ratio, etc.) and recommend + implement specific tweaks so it becomes consistently profitable again. Your job: 1. Deep analysis of why the EA is no longer
Expert Advisor for MT5 with 10 Trading Rules
50 - 100 USD
want to develop a trading robot (EA) for MetaTrader 5 based on 10 specific rules. The robot should include a professional interface to control all settings, including: Fixed lot size (0.50), Stop Loss (10 USD), RSI indicators for entry/exit, News filter, Trailing stop, and daily profit targets. I have the full logic ready to discuss with the developer. Please ensure high-quality code and testing
نموزج الكتفين
30+ USD
حلل لي اصل مالي ) اكتب هنا مثلا XAU EUR USD USD اريد تحليلا تعليما و ليس توصية مالية ۱- نوع التحليل المطلوب : ( فني / اساسي / سلوك سعري ) ٢ - المدي الزمني : ( قصير / متوسط / طويل ) M15 / H1 / H4 / ) اذكر الفريمات المطلوبه + (D1 ما اريد استخراجه من التحليل : الاتجاه العام اقوي مستويات دعم و مقاومة رقمية سيناريو صعود و سيناريو هبوط مع شروط كل سيناريو ( IF / THEN ) اين يصبح السيناريو لاغيا مناطق دخول و خروج تعليمية (
Hi I need a MetaTrader 5 Expert Advisor for XAUUSD that creates a laddered buy setup and manages take-profit automatically depending on how many entries are triggered. The EA will act as a trade execution and management tool , not a strategy robot. Core Function The EA should include a BUY/SELL SETUP button that creates a ladder of orders. E.g. When pressed: Open Entry 1 – Market Buy Place Entry 2 – Buy Limit below
Job Description (Final Version) 1. REAL‑TIME Supply & Demand Zone Detection The indicator must detect Supply & Demand zones as soon as they form , with zero repainting and no shifting once confirmed. Demand Zones (Bullish continuation) A Demand Zone is created when price produces a valid bullish displacement from a clearly defined origin candle. (Full rules will be provided.) Supply Zones (Bearish continuation) A
hello, please take a moment to review my project. It is for Quanttower. it is very detailed in the instructions. Thank you, Just let me know if you can do it and the whats the cost and timeframe
XAUUSD - TREND TRADER
30 - 500 USD
Find a good entry point and enter the trade .after the first profit of 25% is done then exit the trade .find the good market analysis of the trend and know when the market is on a good trend. After that now know the entry point and the take profit of the slot you have opened .have also a risk management strategy
Mt4 indicator
50+ USD
I was on co pilot and they said they can build this harmonic prz indicator for me but i was not able to build it. Can anyone help, I have the indicators in ex4 file but not the mq4 files. I want to add these indicators and you can turn it into a complete full indicator like the attached photo I sent and also if you can make it into an automated EA, that would be awesome
I am looking for an experienced MT4 (MQL4) developer to build a Harmonic Pattern Indicator with a PRZ (Potential Reversal Zone) detection system , similar to advanced harmonic scanners. Kindly apply if you can handle this project. Note: I don't want unprofessional developer
Trading view indicator to mql5
30 - 31 USD
hello, i want a convertion of this trading view indicator FVG (NEPHEW_SAM_) to mql5 to be add later to an expert advisor. i want to access this data, gap data printed on current timeframe and multi timeframe that i choose (current, timeF1, timeF2, timeF3, timeF4)(gap time, gap value, top gap value, low gap value, gap type bull / bear, gap type iFVG or FVG). a function that check if the price is checking the gap at
Project information
Budget
40+ USD
Deadline
to 3 day(s)