Seyedmasoud Hashemi:
hi
i wrote a very simple indicator
but it dose not work
you need to use iBarShift to get shift value of the H4 Period. right now you're using the shift of the chart period which may differ
Documentation on MQL5: Constants, Enumerations and Structures / Chart Constants / Chart Timeframes
- www.mql5.com
All predefined timeframes of charts have unique identifiers. The PERIOD_CURRENT identifier means the current period of a chart, at which a mql5-program is running.
In future please post in the correct section
I will move this topic to the MQL4 and Metatrader 4 section.
-
for (int i= rates_total-Counted_bars-1; i>=0; i--) Signal1[i]=NormalizeDouble(High[iHighest(Symbol(),PERIOD_H4,MODE_HIGH,10,i+1)],5); } //--- return value of prev_calculated for next call return(rates_total);
After the first run you return rates_total (Bars). Therefor on all subsequent runs your for loop is i=rates_total-rates_total-1=-1, i>=0==FALSE and your loop never runs again. -
Signal1[i]=NormalizeDouble(High[iHighest(Symbol(),PERIOD_H4,MODE_HIGH,10,i+1)],5);
You are mixing apples and oranges. - You used NormalizeDouble, It's use is usually wrong, as it is in your case.
- Floating point has infinite number of decimals, it's your not understanding floating point and that some numbers can't be represented exactly. (like 1/10.)
Double-precision floating-point format - Wikipedia, the free encyclopedia - Print out your values to the precision you want with DoubleToString - Conversion Functions - MQL4 Reference.
- SL/TP (stops) need to be normalized to tick size (not Point) — code fails on metals. (On 5Digit Broker Stops are only allowed to be placed on full pip values. How to find out in mql? - MQL4 programming forum) and abide by the limits Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial and that requires understanding floating point equality Can price != price ? - MQL4 programming forum
- Open price for pending orders need to be adjusted. On Currencies, Point == TickSize, so you will get the same answer, but it won't work on Metals. So do it right: Trailing Bar Entry EA - MQL4 programming forum or Bid/Ask: (No Need) to use NormalizeDouble in OrderSend - MQL4 programming forum
- Lot size must also be adjusted to a multiple of LotStep and check against min and max. If that is not a power of 1/10 then NormalizeDouble is wrong. Do it right.
- MathRound() and NormalizeDouble() are rounding in a different way. Make it explicit.
MT4:NormalizeDouble - MQL5 programming forum
How to Normalize - Expert Advisors and Automated Trading - MQL5 programming forum - Prices you get from the terminal are already normalized.
- PIP, Point, or Tick are all different in general.
What is a TICK? - MQL4 programming forum
- Floating point has infinite number of decimals, it's your not understanding floating point and that some numbers can't be represented exactly. (like 1/10.)
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
hi
i wrote a very simple indicator
but it dose not work