//--- obtain spread from the symbol properties
bool spreadfloat=SymbolInfoInteger(Symbol(),SYMBOL_SPREAD_FLOAT);
string comm=StringFormat("Spread %s = %I64d points\r\n",
spreadfloat?"floating":"fixed",
SymbolInfoInteger(Symbol(),SYMBOL_SPREAD));
//--- now let's calculate the spread by ourselves
double ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
double bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
double spread=ask-bid;
int spread_points=(int)MathRound(spread/SymbolInfoDouble(Symbol(),SYMBOL_POINT));
comm=comm+"Calculated spread = "+(string)spread_points+" points";
Comment(comm);
double myspread=(SymbolInfoDouble(_Symbol,SYMBOL_ASK)-SymbolInfoDouble(_Symbol,SYMBOL_BID))/_Point;
![[TLV]: Timings at Market Highs and Lows Price Extremes, Exhaustion, and Timing Reactions [TLV]: Timings at Market Highs and Lows Price Extremes, Exhaustion, and Timing Reactions](https://c.mql5.com/6/1006/splash-preview-770296.jpg)
![[TLV]: When a Timing Should Be Ignored Liquidity Activation Point ≠ automatic entry [TLV]: When a Timing Should Be Ignored Liquidity Activation Point ≠ automatic entry](https://c.mql5.com/6/1006/splash-preview-770298.png)
