What you need to do is find native speakers (or other people with a near-native level of English) and engage in conversations with them.
To make this more concrete: You can look for a so-called " tandem partner ", i.e. someone who knows English well and who is interested in learning your language.
You can then meet regularly and speak in English for some time and then speak in your tandem partner's target language.
There are several ways to find tandem partners, for example, pin walls in libraries or universities
(this is rather common in Germany) or dedicated websites.
If the task of having random conversations seems too daunting, you could try the " FORCE Cycle ", a technique/strategy formulated by the Canadian linguist Keith Swayne.
See the five blog posts starting at
http://fivearrows.ca/wp/2012/04/28/the-force-cycle-phase-1/ (the blog posts have embedded YouTube videos).
The strategy comes down to choosing a specific topic and preparing for a conversation on that topic (finding vocabulary, phrases etc.), so the conversation itself becomes easier and you can directly apply what you have prepared.
(This is the best type of advice for oral skills I have ever seen, even after reading half a dozen books about language learning.)
There are also a number of websites that can help you get in touch with native speakers, such as Polyglot Club , Go Speaky , italki and LingQ.com .
Such services are not always free.
You may also try the shadowing technique described by the polyglot Alexander Arguelles (check YouTube and Arguelles' website ), but this technique helps more with improving pronunciation than with oral skills.
Good luck!
languagelearning.stackexchange.com/users/800/Tsundoku
As the people above have said, the best thing to do to improve your speaking skills is to find people around you or on the Internet with whom to speak.
In another discussion, I have given a link to a Discord multilingual vocal server (like TeamSpeak) where it's possible to find a number of diverse language rooms : Ling & Lang: https://discordapp.com/invite/DUCVm
In France we have a famous youtuber named "Linguisticae" who has his own Discord server which works like "Ling & Lang" : Linguisticae: https://discordapp.com/invite/YkMzzuN Verbling is also a good solution for communicating vocally and visually through its webconference service
(it's for free but you will have to create an account): https://www.verbling.com/community Good websites to get in touch with a lot of people : Polyglot Club: http://polyglotclub.com/ GoSpeaky: https://www.gospeaky.com/
From the time you start creating a network of fellow speakers everything becomes easier.
And don't forget that the best thing for speaking a lot with people is if you share the same interests; for example video games :D
languagelearning.stackexchange.com/users/1935/John McFerrin
In my personal experience I can tell you that it is difficult to learn a language.
In my case I'm not English and my native language is Spanish
but I have improved a lot with practice, practice and practice.
Use your imagination, be creative and have fun with English.
How to speak fluent?
Well, that's not easy but not impossible.
Try speaking with others, people who is learning English too, friends, etc.
Is like everyone says, practice every day but just be creative and the most important thing is, have fun with the language!
languagelearning.stackexchange.com/users/None/
As @Manuel said you have to practice a lot.
Speak to other persons who are learning English.
Speak with native speakers too.
If you are on your own use your imagination.
You said you watch a lot of movies and novels.
Imagine a scene that differs from the original novel.
Play the roles of all characters and speak the dialogs to yourself.
Best to do this when you are alone.
If imagining scenes is difficult for you, try repeating scenes you saw in a movie or novel.
However using your imagination helps you to a greater extent.
It has no limits and it can help you more if you can imagine and practice real life scenarios.
For example, imagine a meeting with your business clients and talk to yourself in the language you are learning to speak.
It gives you confidence in real life too.
languagelearning.stackexchange.com/users/56/Kolappan N
I think the cause is clearly lack of practice.
As for tips, if one has social anxieties or really doesn't have someone to practice with, speaking to oneself helps a lot.
I know because it worked for me with English.
As teenager, I did have 4 years of English courses on a private school and then years working with computers/programming languages, reading a lot of literature and comics, watching movies and listening songs, but speaking to no one.
Try to have all your inner conversations in English; when you're angry or joyful with yourself and have something to shout, in English; having that fictional dialogues with someone else (as rehersal before talking to them; or as "I should have answered that" after talking with them), in English; and so forth.
Try to speak it loudly as much as possible but having the conversation only in thoughts is ok too.
We don't want friends, family, neighbours, hearing us talking in weird tongues with some imaginary speaking partner - gesprekspartner :)
And then, difficult to pronounce words or sentences, those deserve special treatment: repeat them aloud till it hurts!
When the time comes and you really have to interact with other folks in English, things will flow smoothly.
languagelearning.stackexchange.com/users/5031/brasofilo
This is my problem:  If an Englishman is speaking, I can understand him well.  I've read many English novels and stories,  I can understand English movies without subtitles, and when I need subtitles, I only activate English subtitles, not those in my native language.  But I have problems with speaking!  I can't speak English fluently..    How can I improve my speaking skills?   What is the cause of this problem?  Can you tell me some tips?
Able to understand conversation but not speak
languagelearning.stackexchange.com
<english><conversation>
languagelearning.stackexchange.com/questions/902
languagelearning.stackexchange.com/users/None/
You should try to find other English speakers online and locally, whether learners or native speakers. Constant speaking practice will help you improve your English, and talking to a near-native english speaker or a Native English speaker is the best option. 
The best thing to do is to spesk with a Near-native speaker or better,  a Native English speaker.  Constant speaking practice with people around you, friends or other prople learning English will help you improve