FOMO (the fear of missing out) – why does it affect so many traders in a negative way?

The fear of missing out is one of those things that can end up affecting a lot of traders and their performance. The sheer idea here is that many businesses are using the fear of missing out as a way to generate sales, but while that works for them, it can be something negative for traders. According to trading psychology, a trader will experience the fear of missing out whenever a very popular trade appears and they want to be a part of it.

The problem here is that due to the fear of missing out, you end up not doing a lot of research. You go with the flow, because you believe everyone else. This type of trading emotions are obviously bad for business, because you end up spending your money unwisely, without knowing what return you can get.

Which is why the fear of missing out is one of those things that can have a negative impact on your trading performance. You always want to focus on achieving the utmost success and the best results. But if you tackle it right and you know what you are getting into, results can be amazing all the time.

Is it a problem to have the fear of missing out?

Absolutely, because the fear of missing out generates trading emotions like greed, fear, excitement, jealousy, anxiety, impatience and other problems. You want to handle that as quickly as possible, otherwise it will have a major impact on your results.

The characteristics of a FOMO trader

Usually, a trader that has the fear of missing out trusts other people’s judgements and he has illusions regarding how much money he can make. He is also scared that he has a great opportunity on his hands. Even worse, he believes that this is a safe bet, and he wants to be in with all the great results that can possibly arrive from such an investment. You don’t want to be such a trader, because it ends up rushing you to take bad decisions that will eventually lead to losses

There are lots of different factors triggering FOMO trading. These are volatile markets, repetitive losses, social media, rumors and news, big winning streaks and many others. All of these can end up pushing you towards not the best decisions in trading, and you have to find a way to counteract those problems as much as possible.

Receiving trading psychology support and assistance, doing your own research and not relying on others can help remove or lower the fear of missing out. If you just stick to social media or follow other traders, this fear of missing out can get you into trouble. Sometimes it can actually strike gold, but 99% of the time you will end up taking bad decisions. That’s why you don’t want to rely on trading emotions like this, especially fear. It’s not going to be easy, but results can be extraordinary, and it’s well worth trying it out!

document.addEventListener("DOMContentLoaded", function () { if (typeof gsap === 'undefined' || typeof ScrollTrigger === 'undefined') { console.error('GSAP or ScrollTrigger is not loaded'); return; } gsap.registerPlugin(ScrollTrigger); const cards = gsap.utils.toArray(".stack-card"); if (cards.length === 0) return; const lastCard = cards[cards.length - 1]; const stackWrapper = document.querySelector(".stack-wrapper"); const nextSection = stackWrapper?.nextElementSibling; // Animation settings const scrollDistancePerCard = 400; // Scroll distance for each card animation const cardScale = 0.94; // Scale for cards that move up const cardMoveY = -120; // How much cards move up // Get the tallest card height to ensure full visibility let maxCardHeight = 0; cards.forEach(card => { const cardH = Math.max(card.scrollHeight, card.offsetHeight, card.clientHeight); if (cardH > maxCardHeight) maxCardHeight = cardH; }); // Calculate total wrapper height needed for all sequential animations const totalScrollDistance = cards.length * scrollDistancePerCard; // Set wrapper height to accommodate all sequential scroll animations if (stackWrapper) { const wrapperHeight = totalScrollDistance + maxCardHeight + 300; stackWrapper.style.height = wrapperHeight + "px"; stackWrapper.style.minHeight = wrapperHeight + "px"; } // Track cumulative scroll offset for sequential animation let cumulativeOffset = 0; cards.forEach((card, i) => { const isLastCard = i === cards.length - 1; // Calculate start and end points for sequential animation // Each card starts after the previous one finishes const cardStartOffset = cumulativeOffset; const cardEndOffset = cumulativeOffset + scrollDistancePerCard; // Update cumulative offset for next card cumulativeOffset += scrollDistancePerCard; gsap.to(card, { y: cardMoveY, scale: isLastCard ? 1 : cardScale, scrollTrigger: { trigger: stackWrapper, start: `top+=${cardStartOffset} top+=120`, end: `top+=${cardEndOffset} top+=120`, scrub: true, onLeave: () => { if (isLastCard && stackWrapper) { // Release the last card first card.classList.add("released"); stackWrapper.classList.add("collapsed"); // Remove spacing card.style.marginBottom = "0"; card.style.paddingBottom = "0"; stackWrapper.style.marginBottom = "0"; stackWrapper.style.paddingBottom = "0"; // Ensure card overflow is visible card.style.overflow = "visible"; card.style.maxHeight = "none"; // Use double requestAnimationFrame to ensure DOM is fully updated requestAnimationFrame(() => { requestAnimationFrame(() => { // Get the card's full height - use scrollHeight for complete content const cardFullHeight = Math.max( card.scrollHeight, card.offsetHeight, card.clientHeight ); // Get wrapper's current top position const wrapperRect = stackWrapper.getBoundingClientRect(); const wrapperTop = wrapperRect.top + window.scrollY; // Get card's current position relative to wrapper const cardRect = card.getBoundingClientRect(); const cardTop = cardRect.top + window.scrollY; const cardOffsetFromWrapper = Math.max(0, cardTop - wrapperTop); // Calculate wrapper height: card offset + full card height + generous buffer const wrapperHeight = cardOffsetFromWrapper + cardFullHeight + 100; stackWrapper.style.height = wrapperHeight + "px"; stackWrapper.style.minHeight = wrapperHeight + "px"; stackWrapper.style.maxHeight = "none"; // Force a reflow to ensure height is applied stackWrapper.offsetHeight; }); }); // Ensure next section starts right after with no gap if (nextSection) { nextSection.style.marginTop = "0"; nextSection.style.paddingTop = "0"; nextSection.style.position = "relative"; nextSection.style.zIndex = "10"; } } }, onEnterBack: () => { if (isLastCard && stackWrapper) { // Restore sticky behavior card.classList.remove("released"); stackWrapper.classList.remove("collapsed"); // Restore wrapper height let maxCardHeight = 0; cards.forEach(c => { const cardH = Math.max(c.scrollHeight, c.offsetHeight, c.clientHeight); if (cardH > maxCardHeight) maxCardHeight = cardH; }); const totalScroll = cards.length * scrollDistancePerCard; const wrapperHeight = totalScroll + maxCardHeight + 300; stackWrapper.style.height = wrapperHeight + "px"; stackWrapper.style.minHeight = wrapperHeight + "px"; } } } }); }); });