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
19
42%
/
16%
Overdue
32
22%
Working
Similar orders
Reversal indicator
30 - 165 USD
Looking for a good reversal indicator that doesn't repaint and doesn't use a shift after waiting for future data. If you have any, or knowledge about them please drop a message and we can discuss further. If you already have made please drop screenshots of what you have made
Expert Advisor not taking trades automatically as expected Need to make sure logic is sound and effective Make sure it is optimized to trade crash and boom only Modify if necessary so that the EA can perform at its best It should provide 1 notification per trade/signal found
I need my Expert Advisor to be modified so that its live trading logic behaves exactly like the "1 Minute OHLC" modeling mode in the MetaTrader 5 Strategy Tester. This is not an approximation request. The execution logic must strictly replicate the internal behavior of MT5 OHLC M1 modeling. Mandatory Requirements: The EA must operate strictly on M1 timeframe data. The EA must NOT depend on real tick data for signal
Looking for an Indicator for NQ 50 points move
50 - 70 USD
I am looking for a trading bot that has been created, tested, and proven profitable in live market conditions on NQ (Nasdaq-100 futures) . Requirements: Must be profitable on a real account , not demo-only Performance must be verifiable. Low drawdown with consistent risk management Built and maintained by an experienced developer with prior live-trading results The developer must provide a demo or test version of the
Fixing mq5 code
30+ USD
Hello, i have a mt5 EA that uses trailing start and distance + BreakEven start and distance. It doesnt work right, what ever number i put, it always starts BE at 50 or 100 points in profit.. and also, EA stops trading if "trend alignment" or "time filter" is OFF and trades remain opened.. EA should continue trading normally until all trades are closed and then shut down for the day.. those needs fixing.. i can pay
Fixed alert mt4
40+ USD
I’m looking for an experienced developer to help fix and improve an alert system in a trading project. Tasks Review and fix existing alert logic Ensure alerts work perfectly with no lag or delay Organize and optimize scattered alert code Check for missing files and improve overall structure Suggest and implement necessary improvements Dashboard (Optional but Preferred) Create a dashboard displaying: Brand name
Fix and optimize an existing Bybit trading bot so the profit target closes and reopens trades continuously (accumulation cycle) , while the withdrawal threshold pauses the bot, converts funds, withdraws profit, resets accumulation, and resumes trading . Current issue: the bot stops after hitting profit , which must be corrected. Demo video required after completion
Mt5 alert fix
40+ USD
i have a indicator on mt5 im using it right now , you can see the performance attached Am using the Ma filter to avoid false signals I developed this indicator myself But the signals are delaying in alerting Check if you can perfect and if you Can you work on it let me know Let me know if there anything you can do to make it perfect without lagging or delaying
Mt4 indicator
40+ USD
hello great developer Can you develop an MT4 indicator non repaint with accuracy of at least 70% for binary options trading, 1 minutes expiry time frame. Specifically on Quotex Something like this, check attached files Don't forget I trade 1Minutes expiry time frame on binary options Quotex
An Expert Advisor (EA) robot that uses market movement-based indicators is an automated program designed for platforms like MetaTrader 4 or 5 (MT4/MT5) that monitors price fluctuations and triggers trades based on predefined technical rules. These robots, often used for trend following, scalping, or breakout strategies, analyze price action, moving averages, or volatility to automatically enter and exit trades
Project information
Budget
40+ USD
Deadline
to 3 day(s)