Hello,
I can't understand why my positions don't change. The error is on the new stop loss. However, for the buy ask>new sl>last st and for the belly bid<new sl<last sl.
This SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL) say me that the minimum stoploss is 10 points so i put 11 for try but nothing change.
Thank you by advance for your help !
You used NormalizeDouble, It's use is usually wrong, as it is in your case.
-
Floating point has a 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 encyclopediaSee also The == operand. - MQL4 programming forum (2013)
-
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 non-currencies.
On 5Digit Broker Stops are only allowed to be placed on full pip values. How to find out in mql? - MQL4 programming forum (2011)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 (2012)
-
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 non-currencies. So do it right.
Trailing Bar Entry EA - MQL4 programming forum (2013)
Bid/Ask: (No Need) to use NormalizeDouble in OrderSend - MQL4 programming forum (2012) -
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.
(MT4 2013)) (MT5 2022)) -
MathRound() and NormalizeDouble() are rounding in a different way. Make it explicit.
MT4:NormalizeDouble - MQL5 programming forum (2017)
How to Normalize - Expert Advisors and Automated Trading - MQL5 programming forum (2017) -
Prices you get from the terminal are already correct (normalized).
-
PIP, Point, or Tick are all different in general.
What is a TICK? - MQL4 programming forum (2014)
William Roeder, I will change my dots to ticks when I finish the first version of this robot
2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:03 failed modify #880 sell 0.71 USDJPY sl: 149.153, tp: 148.753 -> sl: 148.812, tp: 148.753 [Invalid stops] 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:03 CTrade::OrderSend: modify position #880 USDJPY (sl: 148.812, tp: 148.753) [invalid stops] 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:03 MODIFY: bid 148.801 new sl 148.812 ancien 149.153 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:03 failed modify #880 sell 0.71 USDJPY sl: 149.153, tp: 148.753 -> sl: 148.803, tp: 148.753 [Invalid stops] 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:03 CTrade::OrderSend: modify position #880 USDJPY (sl: 148.803, tp: 148.753) [invalid stops] 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:03 MODIFY: bid 148.792 new sl 148.803 ancien 149.153 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:03 failed modify #880 sell 0.71 USDJPY sl: 149.153, tp: 148.753 -> sl: 148.803, tp: 148.753 [Invalid stops] 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:03 CTrade::OrderSend: modify position #880 USDJPY (sl: 148.803, tp: 148.753) [invalid stops] 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:03 MODIFY: bid 148.792 new sl 148.803 ancien 149.153 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:04 failed modify #880 sell 0.71 USDJPY sl: 149.153, tp: 148.753 -> sl: 148.803, tp: 148.753 [Invalid stops] 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:04 CTrade::OrderSend: modify position #880 USDJPY (sl: 148.803, tp: 148.753) [invalid stops] 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:04 MODIFY: bid 148.792 new sl 148.803 ancien 149.153 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:04 failed modify #880 sell 0.71 USDJPY sl: 149.153, tp: 148.753 -> sl: 148.803, tp: 148.753 [Invalid stops] 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:04 CTrade::OrderSend: modify position #880 USDJPY (sl: 148.803, tp: 148.753) [invalid stops] 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:04 MODIFY: bid 148.792 new sl 148.803 ancien 149.153 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:04 failed modify #880 sell 0.71 USDJPY sl: 149.153, tp: 148.753 -> sl: 148.806, tp: 148.753 [Invalid stops] 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:04 CTrade::OrderSend: modify position #880 USDJPY (sl: 148.806, tp: 148.753) [invalid stops] 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:04 MODIFY: bid 148.795 new sl 148.806 ancien 149.153 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:04 failed modify #880 sell 0.71 USDJPY sl: 149.153, tp: 148.753 -> sl: 148.803, tp: 148.753 [Invalid stops] 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:04 CTrade::OrderSend: modify position #880 USDJPY (sl: 148.803, tp: 148.753) [invalid stops] 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:04 MODIFY: bid 148.792 new sl 148.803 ancien 149.153 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:04 failed modify #880 sell 0.71 USDJPY sl: 149.153, tp: 148.753 -> sl: 148.807, tp: 148.753 [Invalid stops] 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:04 CTrade::OrderSend: modify position #880 USDJPY (sl: 148.807, tp: 148.753) [invalid stops] 2022.10.26 10:19:15.965 Core 1 2022.10.21 18:11:04 MODIFY: bid 148.796 new sl 148.807 ancien 149.153
A Buy opens at Ask and closes at Bid. Likewise, Sell opens at Bid, closes at Ask.
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Hello,
I can't understand why my positions don't change. The error is on the new stop loss. However, for the buy ask>new sl>last st and for the belly bid<new sl<last sl.
This SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL) say me that the minimum stoploss is 10 points so i put 11 for try but nothing change.
Thank you by advance for your help !