Good for Beginners!
Free Education + Free Demo Account!
Get Your Sign-Up Bonus Now!
Only For Experienced Traders!
Trade Smarter, Not More
One of the most crucial aspects of trading I have learned over the last 8 years is knowing when “to sit on my hands.” Trading isn’t about taking as many positions as possible, but rather it’s about taking high probability trades. Probability plays a big role in trading. You can have the best risk:reward ratio on a trade, but if the probability of success is very low, all your effects are likely wasted…like buying lottery tickets. Trading is about discipline and only taking trades which have a high probability of success. That doesn’t mean you won’t have losing trades, you still will. But by putting as many factors on your side before you take a trade, you’ll be trading smart…and smart traders are more likely to succeed than traders who just make random trades hoping to hit a winner. Here are some strategies for being a smart trader.
Trade with the Trend
Trading with the trend is an overused phrase, and unfortunately that means many traders don’t utilize this information effectively. Many traders know they should focus on making trades in the same direction as the trend, but two key problems arise when they attempt to follow this.
- They wait too long. A trend, especially intra-day ones, are likely to reverse by the time you feel “confident” about the trend. Therefore, you need to act on trends early, as these are the high probability times to trade.
- No realizing that a trend has actually reversed. A trader thinks they are trading with a trend, but actually they trading against the trend since the trend has shifted.
Trends move from up to down to sideways, and therefore it is crucial trades understand which phase is occurring. Understanding trends is therefore pivotal. While the concept is basic, few traders understand the ebb-and-flow of trends. Capitalizing on Lower Highs and Higher Lows and Trading the “Mini-Channel Breakout” provide some methods of staying on the right of the trend (at least most of the time) as well as some information on trends.
Utilize a Trade Trigger
In order for a trade occur, something that you recognize should be occurring. Once you see a price pattern you know–that typically results in another type of behavior, such as an asset rising or falling–you should utilize a trade trigger to initiate the position. Examples of triggers include: a breakout, a move past a certain price, or a pattern completing such as a candlestick engulfing pattern.
Each strategy you use may have a different trigger(s) based on what works for the strategy. The benefit of a trade trigger is that it forces you to act. When the market creates your trade trigger, you don’t need to question when you will make the trade, you do it right then. If you don’t have a trigger you may wait too long, or make a trade too early before the market has given you adequate evidence of what it is likely to do next.
By having a trigger you are forced to wait for viable signals, because your trigger should be based on a sound strategy and the trigger doesn’t occur unless there is a good trade-setup for the strategy.
In Capitalizing on Lower Highs and Higher Lows I provided a trade trigger for that specific strategy; it involved a breakout of a small range. As soon as the price broke the range we were watching, a trade was taken. Lines were drawn to provide an exact price for our entry. Figure 1 shows an example of this type of trigger.
Figure 1. EUR/USD 15 Minute Chart – Trade Trigger
Find Your Trading Balance
My tendency is to over-trade, especially if I am day trading. For others though, it may be to under-trade. The former is when you make trades which aren’t based on any sort of trading method or strategy–you are basically trading just to trade. Over-trading often occurs out of boredom. You are watching your screen and waiting for a good trade setup, but lose your patience and just start to hit your buy and sell buttons.
Under-trading on the other hand is when you are too hesitant to make the trades you should be making. If you have a strategy but don’t consistently apply it out of fear, likely you’re under-trading your strategy and not seeing its (or your) full potential.
The key here is to first establish a set of rules you will trade by. Without some sort of guideline for how you will trade, all trades are shots in the dark and therefore there is no benchmark upon which to base your performance and improve.
With a set of rules in place, you then need to follow it.
If you over-trade, have some sort of distraction close at hand so you don’t make foolish trades when you’re bored. Play free money poker for example; something that lets you watch the market, but keeps you occupied so you are not wasting money on “boredom trades.”
If you under-trade realize that you have spent time working on your strategy (hopefully) and now it is time to trust it. If you can’t trust it, trade it on a demo account or “paper-trade” it until you are comfortable.
Not everyone trades the same way, but there do seem to be common themes among successful traders. Namely, they can identify trends and trade with them. Their trades aren’t random; there is some sort of catalyst or trigger that initiates each of their trades. And finally, they use a strategy that they are comfortable with and follow it to the letter, not under-trading or over-trading it. If I am struggling in any of these areas, I step back and don’t trade until I have the issue worked out. Trading smart is not only about understanding the market, but also ourselves and our personal tendencies…and then being able to find a solution.
Trade and Invest Smarter — The Reinforcement Learning Way
A deep dive into TensorTrade — the Python framework for trading and investing using deep reinforcement learning
I can’t thank this awesome community enough for all their contributions, whether it be funding or code. To date, over $3,000 has been donated to fund the continued open-source development of the TensorTrade framework. These funds have been used to open over $2,000 in Gitcoin code bounties (and counting), nearly half of which have already been completed by our great community of developers and data scientists. Learn more.
Winning high stakes poker tournaments, out-playing world-class StarCraft players, and autonomously driving Tesla’s futuristic sports cars. What do they all have in common? Each of these extremely complex tasks were long thought to be impossible by machines, until recent advancements in deep reinforcement learning showed they were possible, today.
Reinforcement learning is beginning to take over the world.
A little over two months ago, I decided I wanted to take part in the revolution, so I set out on a journey to create a profitable Bitcoin trading strategy using state-of-the-art deep reinforcement learning algorithms. While I made quite a bit of progress on that front, I realized that the tooling for this sort of project can be quite daunting to wrap your head around, and as such, it is very easy to get lost in the details.
In between optimizing my previous project for distributed high-performance computing (HPC) systems; getting lost in endless pipelines of data and feature optimizations; and running my head in circles around efficient model set-up, tuning, training, and evaluation; I realized that there had to be a better way of doing things. After countless hours of researching existing projects, spending endless nights watching PyData conference talks, and having many back-and-forth conversations with the hundreds of members of the RL trading Discord community, I realized there weren’t any existing solutions that were all that good.
There were many bits and pieces of great reinforcement learning trading systems spread across the inter-webs, but nothing solid and complete. For this reason, I’ve decided to create an open source Python framework for getting any trading strategy from idea to production, efficiently, using deep reinforcement learning.
Enter TensorTrade. The idea was to create a highly modular framework for building efficient reinforcement learning trading strategies in a composable, maintainable way. Sounds like a mouthful of buzz-words if you ask me, so let’s get into the meat.
TensorTrade is an open source Python framework for training, evaluating, and deploying robust trading strategies using deep reinforcement learning. The framework focuses on being highly composable and extensible, to allow the system to scale from simple trading strategies on a single CPU, to complex investment strategies run on a distribution of HPC machines.
Under the hood, the framework uses many of the APIs from existing machine learning libraries to maintain high quality data pipelines and learning models. One of the main goals of TensorTrade is to enable fast experimentation with algorithmic trading strategies, by leveraging the existing tools and pipelines provided by numpy , pandas , gym , keras , and tensorflow .
Every piece of the framework is split up into re-usable components, allowing you to take advantage of the general use components built by the community, while keeping your proprietary features private. The aim is to simplify the process of testing and deploying robust trading agents using deep reinforcement learning, to allow you and I to focus on creating profitable strategies.
In case your reinforcement learning chops are a bit rusty, let’s quickly go over the basic concepts.
Reinforcement learning ( RL) is an area of machine learning concerned with how software agents ought to take actions in an environment so as to maximize some notion of cumulative reward.
Every reinforcement learning problem starts out with an environment and one or more agents that can interact with the environment.
The agent will first observe the environment, then build a model of the current state and the expected value of actions within that environment. Based on that model, the agent will then take the action it has deemed as having the highest expected value.
Based on the effects of the chosen action within the environment, the agent will be rewarded by an amount corresponding to the actual value of that action. The reinforcement learning agent can then, through the process of trial and error (i.e. learning through reinforcement), improve its underlying model and learn to take more rewarding actions over time.
If you still need a bit of refreshment on the subject, there is a link to an article titled Introduction to Deep Reinforcement Learning in the references for this article, which goes much more in-depth into the details. Let’s move on.
The following tutorial should provide enough examples to get you started with creating simple trading strategies using TensorTrade, although you will quickly see the framework is capable of handling much more complex configurations.
You can follow along with Google Colab or the tutorial on Github.
TensorTrade requires Python 3.6 or later, so make sure you’re using a valid version before pip installing the framework.
To follow this entire tutorial, you will need to install some extra dependencies, such as tensorflow , tensorforce , stable-baselines , ccxt , ta , and stochastic .
That’s all the installation necessary! Let’s get into the code.
TensorTrade is built around modular components that together make up a trading strategy. Trading strategies combine reinforcement learning agents with composable trading logic in the form of a gym environment. A trading environment is made up of a set of modular components that can be mixed and matched to create highly diverse trading and investment strategies. I will explain this in further detail later, but for now it is enough to know the basics.
Just like electrical components, the purpose of TensorTrade components is to be able to mix and match them as necessary.
The code snippets in this section should serve as guidelines for creating new strategies and components. There will likely be missing implementation details that will become more clear in a later section, as more components are defined.
A trading environment is a reinforcement learning environment that follows OpenAI’s gym.Env specification. This allows us to leverage many of the existing reinforcement learning models in our trading agent, if we’d like.
Trading environments are fully configurable gym environments with highly composable Exchange , FeaturePipeline , ActionScheme , and RewardScheme components.
- The Exchange provides observations to the environment and executes the agent’s trades.
- The FeaturePipeline optionally transforms the exchange output into a more meaningful set of features before it is passed to the agent.
- The ActionScheme converts the agent’s actions into executable trades.
- The RewardScheme calculates the reward for each time step based on the agent’s performance.
If it seems a bit complicated now, it’s really not. That’s all there is to it, now it’s just a matter of composing each of these components into a complete environment.
When the reset method of a TradingEnvironment is called, all of the child components will also be reset. The internal state of each exchange, feature pipeline, transformer, action scheme, and reward scheme will be set back to their default values, ready for the next episode.
Let’s begin with an example environment. As mentioned before, initializing a TradingEnvironment requires an exchange, an action scheme, and a reward scheme, the feature pipeline is optional.
While the recommended use case is to plug a trading environment into a trading strategy, you can obviously use the trading environment separately, any way you’d otherwise use a gym environment.
Exchanges determine the universe of tradable instruments within a trading environment, return observations to the environment on each time step, and execute trades made within the environment. There are two types of exchanges: live and simulated.
Live exchanges are implementations of Exchange backed by live pricing data and a live trade execution engine. For example, CCXTExchange is a live exchange, which is capable of returning pricing data and executing trades on hundreds of live cryptocurrency exchanges, such as Binance and Coinbase.
There are also exchanges for stock and ETF trading, such as RobinhoodExchange and InteractiveBrokersExchange , but these are still works in progress.
Simulated exchanges, on the other hand, are implementations of Exchange backed by simulated pricing data and trade execution.
For example, FBMExchange is a simulated exchange, which generates pricing and volume data using fractional brownian motion (FBM). Since its price is simulated, the trades it executes must be simulated as well. The exchange uses a simple slippage model to simulate price and volume slippage on trades, though like almost everything in TensorTrade, this slippage model can easily be swapped out for something more complex.
Though the FBMExchange generates fake price and volume data using a stochastic model, it is simply an implementation of SimulatedExchange . Under the hood, SimulatedExchange only requires a data_frame of price history to generate its simulations. This data_frame can either be provided by a coded implementation such as FBMExchange , or at runtime such as in the following example.
Feature pipelines are meant for transforming observations from the environment into meaningful features for an agent to learn from. If a pipeline has been added to a particular exchange, then observations will be passed through the FeaturePipeline before being output to the environment. For example, a feature pipeline could normalize all price values, make a time series stationary, add a moving average column, and remove an unnecessary column, all before the observation is returned to the agent.
Feature pipelines can be initialized with an arbitrary number of comma-separated transformers. Each FeatureTransformer needs to be initialized with the set of columns to transform, or if nothing is passed, all input columns will be transformed.
Each feature transformer has a transform method, which will transform a single observation (a pandas.DataFrame ) from a larger data set, keeping any necessary state in memory to transform the next frame. For this reason, it is often necessary to reset the FeatureTransformer periodically. This is done automatically each time the parent FeaturePipeline or Exchange is reset.
Let’s create an example pipeline and add it to our existing exchange.
This feature pipeline normalizes the price values between 0 and 1, before adding some moving average columns and making the entire time series stationary by fractionally differencing consecutive values.
Action schemes define the action space of the environment and convert an agent’s actions into executable trades. For example, if we were using a discrete action space of 3 actions (0 = hold , 1 = buy 100% , 2 = sell 100% ), our learning agent does not need to know that returning an action of 1 is equivalent to buying an instrument. Rather, our agent needs to know the reward for returning an action of 1 in specific circumstances, and can leave the implementation details of converting actions to trades to the ActionScheme .
Each action scheme has a get_trade method, which will transform the agent’s specified action into an executable Trade . It is often necessary to store additional state within the scheme, for example to keep track of the currently traded position. This state should be reset each time the action scheme’s reset method is called, which is done automatically when the parent TradingEnvironment is reset.
This discrete action scheme uses 20 discrete actions, which equates to 4 discrete amounts for each of the 5 trade types (market buy/sell, limit buy/sell, and hold). E.g. [0,5,10,15]= hold , 1= market buy 25% , 2= market sell 25% , 3= limit buy 25% , 4= limit sell 25% , 6= market buy 50% , 7= market sell 50% , etc…
Reward schemes receive the trade taken at each time step and return a float , corresponding to the benefit of that specific action. For example, if the action taken this step was a sell that resulted in positive profits, our RewardScheme could return a positive number to encourage more trades like this. On the other hand, if the action was a sell that resulted in a loss, the scheme could return a negative reward to teach the agent not to make similar actions in the future.
A version of this example algorithm is implemented in the SimpleProfit component, however more complex strategies can obviously be used instead.
Each reward scheme has a get_reward method, which takes in the trade executed at each time step and returns a float corresponding to the value of that action. As with action schemes, it is often necessary to store additional state within a reward scheme for various reasons. This state should be reset each time the reward scheme’s reset method is called, which is done automatically when the parent TradingEnvironment is reset.
The simple profit scheme returns a reward of -1 for not holding a trade, 1 for holding a trade, 2 for purchasing an instrument, and a value corresponding to the (positive/negative) profit earned by a trade if an instrument was sold.
Up until this point, we haven’t seen the “deep” part of the deep reinforcement learning framework. This is where learning agents come in. Learning agents are where the math (read: magic) happens.
At each time step, the agent takes the observation from the environment as input, runs it through its underlying model (a neural network most of the time), and outputs the action to take. For example, the observation might be the previous open, high, low, and close price from the exchange. The learning model would take these values as input and output a value corresponding to the action to take, such as buy, sell, or hold.
It is important to remember the learning model has no intuition of the prices or trades being represented by these values. Rather, the model is simply learning which values to output for specific input values or sequences of input values, to earn the highest reward.
In this example, we will be using the Stable Baselines library to provide learning agents to our trading strategy, however, the TensorTrade framework is compatible with many reinforcement learning libraries such as Tensorforce, Ray’s RLLib, OpenAI’s Baselines, Intel’s Coach, or anything from the TensorFlow line such as TF Agents.
It is possible that custom TensorTrade learning agents will be added to this framework in the future, though it will always be a goal of the framework to be interoperable with as many existing reinforcement learning libraries as possible, since there is so much concurrent growth in the space.
But for now, Stable Baselines is simple and powerful enough for our needs.
Note: Stable Baselines is not required to use TensorTrade though it is required for this tutorial. This example uses a GPU-enabled Proximal Policy Optimization model with a layer-normalized LSTM perceptron network. If you would like to know more about Stable Baselines, you can view the Documentation.
I will also quickly cover the Tensorforce library to show how simple it is to switch between reinforcement learning frameworks.
If you would like to know more about Tensorforce agents, you can view the Documentation.
A TradingStrategy consists of a learning agent and one or more trading environments to tune, train, and evaluate on. If only one environment is provided, it will be used for tuning, training, and evaluating. Otherwise, a separate environment may be provided at each step.
Don’t worry if you don’t understand the strategy initialization just yet, it will be explained in more detail later.
Putting it All Together
Now that we know about each component that makes up a TradingStrategy , let’s build and evaluate one.
For a quick recap, a TradingStrategy is made up of a TradingEnvironment and a learning agent. A TradingEnvironment is a gym environment that takes an Exchange , an ActionScheme , a RewardScheme , and an optional FeaturePipeline , and returns observations and rewards that the learning agent can be trained and evaluated on.
Creating an Environment
The first step is to create a TradingEnvironment using the components outlined above.
Simple enough, now environment is a gym environment that can be used by any compatible trading strategy or learning agent.
Defining the Agent
Now that the environment is set up, it’s time to create our learning agent. Again, we will be using Stable Baselines for this, but feel free to drop in any other reinforcement learning agent here.
Since we are using StableBaselinesTradingStrategy , all we need to do is provide a model type and a policy type for the underlying neural network to be trained. For this example, we will be using a simple proximal policy optimization (PPO) model and a layer-normalized LSTM policy network.
For more examples of model and policy specifications, see the Stable Baselines Documentation.
Training a Strategy
Creating our trading strategy is as simple as plugging in our agent and the environment.
Then to train the strategy (i.e. train the agent on the current environment), all we need to do is call strategy.run() with the total number of steps or episodes you’d like to run.
And voila! Three hours and thousands of print statements later, you will see the results of how your agent has done!
If this feedback loop is a bit slow for you, you can pass a callback function to run , which will be called at the end of each episode. The callback function will pass in a data frame containing the agent’s performance that episode, and expects a bool in return. If True , the agent will continue training, otherwise, the agent will stop and return its overall performance.
Saving and Restoring
All trading strategies are capable of saving their agent to a file, for later restoring. The environment is not saved, as it does not have state that we care about preserving. To save our TensorflowTradingStrategy to a file, we just need to provide the path of the file to our strategy.
To restore the agent from the file, we first need to instantiate our strategy, before calling restore_agent .
Our strategy is now restored back to its previous state, and ready to be used again.
Tuning Your Strategy
Sometimes a trading strategy will require tuning a set of hyper-parameters, or features, on an environment to achieve maximum performance. In this case, each TradingStrategy provides an optionally implementable tune method.
Tuning a model is similar to training a model, however in addition to adjusting and saving the weights and biases of the best performing model, the strategy also adjusts and persists the hyper-parameters that produced that model.
In this case, the agent will be trained for 10 episodes, with a different set of hyper-parameters each episode. The best set will be saved within the strategy, and used any time strategy.run() is called thereafter.
Now that we’ve tuned and trained our agent, it’s time to see how well it performs. To evaluate our strategy’s performance on unseen data, we will need to run it on a new environment backed by such data.
When complete, strategy.run returns a Pandas data frame of the agent’s performance, including the net worth and balance of the agent at each time step.
Once you’ve built a profitable trading strategy, trained an agent to trade it properly, and ensured its “generalize-ability” to new data sets, all there is left to do is profit. Using a live exchange such as CCXTExchange , you can plug your strategy in and let it run!
While the gambler in you may enjoy starting a strategy and letting it run without bounds, the more risk averse of you can use a trade_callback , which will be called each time the strategy makes a trade. This callback function, similar to the episode callback, will pass in a data frame containing the agent’s overall performance, and expects a bool in return. If True , the agent will continue trading, otherwise, the agent will stop and return its performance over the session.
Passing steps=0 instructs the strategy to run until otherwise stopped.
That’s all there is to it! As you can see, it is quite simple to build complex trading strategies using simple components and deep reinforcement learning. So what are you waiting for? Dive in, get your hands dirty, and see what’s possible using TensorTrade.
Currently, the framework is in its early stages. The focus so far has been to get a working prototype, with all of the necessary building blocks to create highly profitable strategies. The next step is to build a roadmap for the future, and decide which upcoming building blocks are important to the community.
Soon, we will see highly informative visualizations of the environments added to the framework, as well as much more in-depth strategies on more exchanges, trading more instruments.
The sky is the limit. The groundwork (i.e. framework) has been laid, it’s now up to the community to decide what’s next. I hope that you will be a part of it.
TensorTrade is a powerful framework capable of building highly modular, high performance trading systems. It is fairly simple and easy to experiment with new trading and investment strategies, while allowing you to leverage components from one strategy in another. But don’t take my word for it, create a strategy of your own and start teaching your robots to take over the world!
While this tutorial should be enough to get you started, there is still quite a lot more to learn if you want to create a profitable trading strategy. I encourage you to head over to the Github and dive into the codebase, or take a look at our documentation at tensortrade.org. There is also quite an active Discord community with nearly 1000 total members, so if you have questions, feedback, or feature requests, feel free to drop them there!
I’ve gotten the project to a highly usable state. Though, my time is limited, and I believe there are many of you out there who could make valuable contributions to the open source codebase. So if you are a developer or data scientist with an interest in building state-of-the-art trading systems, I’d love to see you open a pull request, even if its just a simple test case!
Others have asked how they can contribute to the project without writing code. There are currently three ways that you can do that.
Write code or documentation for the TensorTrade framework. Many issues on the Github are funded through Gitcoin smart contracts, so you can actually get paid to contribute. To date, almost 10 ETH (
$2000 USD), donated by the community has used to pay open source developers for their contributions to the framework.
Thanks for reading! As always, all of the code for this tutorial can be found on my GitHub . Leave a comment below if you have any questions or feedback, I’d love to hear from you! I can also be reached on Twitter at @notadamking.
You can also sponsor me on Github Sponsors or Patreon via the links below.
Trade Smarter, Not More
If you want to become a better trader, you need to trade smarter.
Just because you’re sitting in front of your computer for long hours doesn’t mean you’re actually achieving more. Smart trading is about how effective you are when you get down to business.
Becoming a good trader takes plenty of time and effort. You’ll need to consistently put in long hours of research and analysis, and there will be plenty of ups and downs. But that doesn’t mean it has to dominate your entire life and all of your energy.
These eight tips can help you trade smarter so that your hard work can pay off sooner rather than later.
- Wake up earlier. One of the easiest ways to streamline your trading process is to wake up early. When you’re an early riser, you have extra time to prepare for the day and to mentally prepare for trading.
How you choose to set up your routine is up to you. Maybe you’ll use your extra time to get daily tasks and errands out of the way so that you can focus on trading once the morning bell rings.
Or maybe this is the time that you devote to doing pre-market research on StocksToTrade so that you’re poised to take advantage of morning breakouts.
No matter how you set up your early morning routine, it will have the positive effect of helping you get in the right mindset for success, which can help you trade smarter.
Good for Beginners!
Free Education + Free Demo Account!
Get Your Sign-Up Bonus Now!
Only For Experienced Traders!
- Take some day trading classes. How many things in life have you been good at without practice? Probably not many. So why should day trading be any different?
Day trading classes are well worth the investment and time if you want to trade smarter. By taking the time to gain an understanding of how the market works, key styles of investing, and other technical aspects of trading, you can reduce your learning curve in a big way. This can help make you better able to identify potential trades, do your fundamental analysis, and effectively research stocks and companies.
- Streamline your routine. Do you make a to-do list? Great. Now it’s time to consider making a to-don’t list. Say what?!
Basically, this is a list of things that aren’t productive and steal your attention during trading hours. Usually, they’re tech related — you know, things like checking Facebook every five minutes, getting lost in the YouTube wormhole, or shopping online when you should be doing research.
Be honest about the things that are sapping your time, and work hard not to indulge during trading hours. This takes discipline, but when you remove these distractions, you’ll be able to trade with greater focus, which can likely deliver better results.
- Learn something new every day. Sure, you’re a busy person. But if you want to be a successful trader, you must make a commitment to learning. After all, knowledge is power in trading. The more you know, the more likely you are to be nimble and intelligent in your trading decisions.
Become an eternal student. Try to learn everything that you can by reading books, listening to podcasts, staying current with the news, and taking classes. Not only will it make you a more well-rounded individual, but you never know when something you’ve learned will inform a future trade or help you identify a business opportunity.
- Seek out mentorship. A mentor is your secret weapon to more intelligent and smarter trading. This is someone who is further along in their career than you, who can offer guidance and advice from a place of greater experience.
By seeking out a mentor, you’ll gain a career ally who can help you avoid common mistakes and pitfalls. They can help you gain success faster by learning from the lessons they had to learn the hard way. A mentor can help you trade smarter and more effectively!
- Set specific trading goals. While setting major life goals can be a huge motivator, it’s also good to think about specific goals that can improve your trading process.
For instance, short-term goals might be things like “incorporate VWAP in research” or “learn how to sell short.” Longer-term goals might be “go above the PDT” or “try forex trading”. By setting these specific trading goals, you’ll give yourself sources of motivation that can improve your trading repertoire and knowledge base, which, in turn, can make you a smarter trader.
- Keep a trading journal. A trading journal is an invaluable tool in helping you trade more intelligently.
When you keep a log of your trades — including what setups you employed, how you determined entry and exit points, and how the trade worked out — you can begin to gain deep insight to what’s working and what’s not in your investments.
Over time, as you review the results, you’ll be able to focus on what’s making you money and abandon methods and trading styles that aren’t. By letting go of what’s not serving you, you’ll trade smarter — and your success rate will probably thank you.
- Take time off. The most successful trader isn’t necessarily the one sitting at their computer the longest. There can be diminishing returns. Sometimes, if you work for too long, you become far less effective at completing the task at hand.
Do yourself a favor: Know when to say when. If you’re spinning your wheels and can’t even tell what a stock chart means anymore, it’s time for a break. Take some time to rest, so that you can clear your mind and come back to trading with a fresh outlook.
Conclusion: Instead of spending more time on trading, focus on trading smarter. By streamlining your process and improving your habits, you can make every one of your efforts more effective. Try adding some of the tips offered in this post to your regular routine, and chances are you’ll see an increase in overall productivity.
Good for Beginners!
Free Education + Free Demo Account!
Get Your Sign-Up Bonus Now!
Only For Experienced Traders!