British prime minister David Cameron said he did not have “anything to hide” about his financial affairs as he revealed that he and his wife sold shares worth more than £30,000 in an offshore tax haven fund set up by his late father.