The rupee appreciated by 15 paise to close at a four-month high of 66.37 against the US currency, extending its gaining spree for the sixth session in a row.

A weak US dollar in overseas markets was the main reason for the rupee rise even as losses in domestic stocks and some fag-end dollar demand from importers prevented further gains, a forex dealer said.

The dollar has been under steady pressure on fading expectations of interest rate hike by the US Federal Reserve this year.

Besides, growing hopes that the redemption of three-year foreign currency non-resident bank account or FCNR (B) and related outflows would not be troublesome in the midst of adequate forex reserves strengthened the rupee further.

The three—year deposits will mature this month.

Foreign portfolio investors (FPIs) bought shares worth Rs 1,438.72 crore on Tuesday according to provisional stock exchanges data.

The rupee opened firmly higher at 66.33 from Tuesday’s closing value of 66.52 at the Interbank Foreign Exchange (forex) market.

It largely moved in a narrow—range of 66.3250 and 66.3975 throughout the day before ending at 66.37, showcasing a smart rise of 15 paise, or 0.23 per cent. This is the highest closing since April 29, 2016, when the rupee had settled at 66.33.

The local currency has strengthened by a whopping 0.81 paise in the six sessions to Wednesday.

The RBI fixed the reference rate for the dollar at 66.3618 and euro at 74.6902.

In cross-currency trades, the rupee recovered against the pound sterling to end at 88.82 from 88.85, but remained weak against the euro to finish at 74.66 from 74.29 earlier.

It also retreated sharply against the Japanese yen to settle at 65.32 from 64.36 per 100 yens yesterday.

In the forward market, premium for dollar remained weak due to sustained receiving by exporters.

The benchmark six—month premium for February slipped to 183-185 paise from 185.5-187.5 paise and the forward August 2017 contract also dropped to 373-375 paise as compared to 376.5-378.5 paise on Tuesday.

Stock markets took a breather today on profit taking by investors after a two-day rally. The BSE Sensex declined 51.66 points to end at 28,926.36, while the Nifty fell 25.05 points to 8,917.95.

Meanwhile, the dollar came under pressure against its leading counterparts after a report showed that the growth in the US services sector declined in August to the lowest level since February 2010. This came on the heels of weaker than expected August non-farm employment data last weekend.

The US dollar index was last marginally up 0.11 per cent at 94.90.