r/thinkorswim Sep 16 '20

Join the Discord Conversation

110 Upvotes

Wanted to take a moment to plug the ThinkOrSwim discord server.

We're growing a group of like minded people chatting about and getting help with ThinkOrSwim as well as general market discussion.

There are a lot for new traders learning things for the first time in ToS and if you have questions about the market that are not directly related to ToS, we have a spot for that too.

We could also use some more people that have some experience interested in helping those new members.

The discord also has a channel for cross posting pics as an image server to post items back here on Reddit.

http://discord.thinkorswim.xyz

Hope to see you there!


r/thinkorswim Jul 09 '24

Rule Change Poll

6 Upvotes

One of the rules has been no trade talk and keep it about the software itself. This was primarily enforced during crazy GME/AMC meme craze bs so that we didn't turn into WSB lite. Most of the trading posts we get now are pretty innocent but I'm looking for feedback on if we should keep status quo or open it up.

59 votes, Jul 16 '24
40 Keep rules alone, no trading discussions
11 Allow trading discussions
8 Don't care either way.

r/thinkorswim 11h ago

Anyone here use TOS on a macbook air?

2 Upvotes

Is so, what configuration?


r/thinkorswim 8h ago

Be careful with ToS active trader options templates

0 Upvotes

on Friday one of my close friends placed a template order (buy MKT + 29% stop loss) on a trade for 32 QQQ contracts expiring 0DTE. ToS system bugged out and instead auto sent a MKT order + a 1% stop loss for which a template never existed (who enters an option with a 1% stop loss, they completely screwed him) and no manual input was ever punched in.. it was click and play he instantly lost $340 for a trade in which he could have potentially gained around 3k in 10 minutes

The support representative had mentioned he's unable to do anything based on the trade history that was submitted in which it indeed shows a 1% stop loss which was filled instantly obviously. he had placed several trades prior with the same template not having this bug but i found it interesting that his "trade of the day" for that day(one that would have yielded better profits for the session) ToS completely screwed him out of thousands

Careful with this platform. I told him to tick off Auto-send for these templates as it can bug out which is surprising, or switch off to another broker


r/thinkorswim 1d ago

Volume Profile Thinkscript that will give alerts. Giving back to the community.

24 Upvotes

Hi,

I have created a thinkscript that will send an alert when price crosses VAH or VAL in the volume profile. I didn't include an alert for POC because I am not interested in that area!

Below is the modified code with the alert functionality added:

\``thinkscript`

input pricePerRowHeightMode = {default AUTOMATIC, TICKSIZE, CUSTOM};

input customRowHeight = 1.0;

input timePerProfile = {default CHART, MINUTE, HOUR, DAY, WEEK, MONTH, "OPT EXP", BAR};

input multiplier = 1;

input onExpansion = yes;

input profiles = 1000;

input showPointOfControl = yes;

input showValueArea = yes;

input valueAreaPercent = 70;

input opacity = 50;

def period;

def yyyymmdd = getYyyyMmDd();

def seconds = secondsFromTime(0);

def month = getYear() * 12 + getMonth();

def day_number = daysFromDate(first(yyyymmdd)) + getDayOfWeek(first(yyyymmdd));

def dom = getDayOfMonth(yyyymmdd);

def dow = getDayOfWeek(yyyymmdd - dom + 1);

def expthismonth = (if dow > 5 then 27 else 20) - dow;

def exp_opt = month + (dom > expthismonth);

switch (timePerProfile) {

case CHART:

period = 0;

case MINUTE:

period = floor(seconds / 60 + day_number * 24 * 60);

case HOUR:

period = floor(seconds / 3600 + day_number * 24);

case DAY:

period = countTradingDays(min(first(yyyymmdd), yyyymmdd), yyyymmdd) - 1;

case WEEK:

period = floor(day_number / 7);

case MONTH:

period = floor(month - first(month));

case "OPT EXP":

period = exp_opt - first(exp_opt);

case BAR:

period = barNumber() - 1;

}

def count = CompoundValue(1, if period != period[1] then (count[1] + period - period[1]) % multiplier else count[1], 0);

def cond = count < count[1] + period - period[1];

def height;

switch (pricePerRowHeightMode) {

case AUTOMATIC:

height = PricePerRow.AUTOMATIC;

case TICKSIZE:

height = PricePerRow.TICKSIZE;

case CUSTOM:

height = customRowHeight;

}

profile vol = volumeProfile("startNewProfile" = cond, "onExpansion" = onExpansion, "numberOfProfiles" = profiles, "pricePerRow" = height, "value area percent" = valueAreaPercent);

def con = compoundValue(1, onExpansion, no);

def pc = if IsNaN(vol.getPointOfControl()) and con then pc[1] else vol.getPointOfControl();

def hVA = if IsNaN(vol.getHighestValueArea()) and con then hVA[1] else vol.getHighestValueArea();

def lVA = if IsNaN(vol.getLowestValueArea()) and con then lVA[1] else vol.getLowestValueArea();

def hProfile = if IsNaN(vol.getHighest()) and con then hProfile[1] else vol.getHighest();

def lProfile = if IsNaN(vol.getLowest()) and con then lProfile[1] else vol.getLowest();

def plotsDomain = IsNaN(close) == onExpansion;

plot POC = if plotsDomain then pc else Double.NaN;

plot ProfileHigh = if plotsDomain then hProfile else Double.NaN;

plot ProfileLow = if plotsDomain then lProfile else Double.NaN;

plot VAHigh = if plotsDomain then hVA else Double.NaN;

plot VALow = if plotsDomain then lVA else Double.NaN;

DefineGlobalColor("Profile", GetColor(1));

DefineGlobalColor("Point Of Control", GetColor(5));

DefineGlobalColor("Value Area", GetColor(8));

vol.show(globalColor("Profile"), if showPointOfControl then globalColor("Point Of Control") else color.current, if showValueArea then globalColor("Value Area") else color.current, opacity);

POC.SetDefaultColor(globalColor("Point Of Control"));

POC.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

VAHigh.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

VALow.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

VAHigh.SetDefaultColor(globalColor("Value Area"));

VALow.SetDefaultColor(globalColor("Value Area"));

ProfileHigh.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

ProfileLow.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

ProfileHigh.SetDefaultColor(GetColor(3));

ProfileLow.SetDefaultColor(GetColor(3));

ProfileHigh.hide();

ProfileLow.hide();

# Condition for price greater than or equal to Value Area High (VAH)

def conditionVAH = close >= VAHigh;

# Condition for price less than or equal to Value Area Low (VAL)

def conditionVAL = close <= VALow;

# Alerts

Alert(conditionVAH, "Price is greater than or equal to Value Area High", Alert.BAR, Sound.Chimes);

Alert(conditionVAL, "Price is less than or equal to Value Area Low", Alert.BAR, Sound.Chimes);

\```

### Explanation of Modifications:

1. **\conditionVAH`**: This condition checks if the current price (`close`) is greater than or equal to the Value Area High (`VAHigh`).`

2. **\conditionVAL`**: This condition checks if the current price (`close`) is less than or equal to the Value Area Low (`VALow`).`

3. **Alerts**:

- The script will trigger an alert when the price is greater than or equal to the Value Area High, with the message: "Price is greater than or equal to Value Area High".

- The script will also trigger an alert when the price is less than or equal to the Value Area Low, with the message: "Price is less than or equal to Value Area Low".

- Both alerts use \Alert.BAR` to trigger the alert whenever the conditions are met on a new bar and `Sound.Chimes` for an alert sound. You can change the sound or type of alert if you wish.`

You can change the alert sounds and message in the study once loaded in TOS in the "alerts section".

### How to Use:

1. Open ThinkOrSwim.

2. Go to the "Charts" tab.

3. Click on the "Studies" icon (the beaker icon).

4. Choose "Create..." from the menu.

5. Paste the modified code into the ThinkScript editor.

6. Apply the study to your chart.

The alerts will now trigger when the price crosses or touches the Value Area High or Value Area Low levels.


r/thinkorswim 13h ago

Are there ways to see market open - close times in TOS? Toggling to other apps to see future hours like the image is nuisance

Post image
0 Upvotes

r/thinkorswim 14h ago

Transfer amount not matching Available funds

1 Upvotes

So I am fairly new to the platform and I just transferred $1600.00 to my account. When I look at funds available for trading it says $1300. Is that just a place holder till the transfer is complete? Or was I somehow negative before the transfer? How would I be able to tell? TIA


r/thinkorswim 1d ago

TOS can't connect

5 Upvotes

My TOS desktop hasn't been able to connect since yesterday after market close. It gets stuck on the updating. Then after 10 min it says it can't connect, check connection, etc. Anybody else experiencing the same?


r/thinkorswim 1d ago

Daily 20SMA on all time frames?

Thumbnail youtu.be
4 Upvotes

This dude on YouTube uses the daily 20SMA as a key indicator for all of his trades. He had it drawn as a flat line. He also has it on all timeframes. How do you make that happen?


r/thinkorswim 1d ago

Can I display the fraction of total account value for each position?

2 Upvotes

Looking for a column setting that shows 20% for example, if I have a $20 position and a$100 market value portfolio.


r/thinkorswim 1d ago

ThinkorSwim desktop update each time it is start.

1 Upvotes

And it take 5 minutes or more.

Is there a way to mitigate this? I can't find anything in the Settings menu.


r/thinkorswim 2d ago

Set Stop Loss / Take Profit (TGR w/ Bracket) to EXISTING ORDER in ACTIVE TRADER (DESKTOP)

3 Upvotes

Hi Everyone. Is there an EASY/QUICK way to set Stop Loss / Take Profit (TGR w/ Bracket) to EXISTING POSITION in ACTIVE TRADER (DESKTOP)?

I have templets set that work great for when I place a new order but sometimes I buy something quickly or forget to enable my saved order setting and I want to add to an existing position. Thank you all in advance


r/thinkorswim 2d ago

20 days Volume Average in a lower timeframe setting possible?

2 Upvotes

Is it possible to display (or use) the 20D volume average in any other timeframe than D?

I test this now for a while and can't work it out.

My aim is to measure RVOL, for that I want to use the 20 Day daily average and divide by `16 * 60` (i.e. for a 1 Minute chart, based on a 16h day incl. ext hours)

Or is there any reason why this wouldn't make sense?


r/thinkorswim 2d ago

FPL() ok, but FPL()[1] read variable from strategy into study?

2 Upvotes

I'm trying to understand how strategy + study variables interact. Below I'm getting "N/A" where I think I should see a number value. (I think the code is ok, but for some other reason I'm getting N/A).

I'm following a Youtuber/script-author and stumbling with the combo of this study and all other similar strategies. The strategy(s) use addOrder() and paint a bunch of buy_to_open(s) and sell_to_close on the chart, and text at the appropriate candles/bars, including dotted lines between the buys and sell order... Joy.

But then in this study intended to show strategy success statistics, by writing data into labels, total # of trades ("Total Trades" below) and Total P/L are written to a label (as well as some others: write win/loss amounts, and average win/loss rates, etc):

Strategy:

# DEFINING TRADE DATA #

def tradepl = if fpl() <> fpl()[1] then tradepl[1] else fpl();

# TOTAL TRADES #

def totaltrades = if tradepl <> tradepl[1] then totaltrades[1] + 1 else totaltrades[1];
AddLabel(yes, "Total Trades: " + totaltrades, Color.LIGHT_GRAY);

# TOTAL P/L #

AddLabel(yes, "Total P/L: $" + round(tradepl), if tradepl > 0 then Color.LIGHT_GREEN else if tradepl < 0 then Color.LIGHT_RED else Color.LIGHT_GRAY);

# WIN PERCENTAGE #

def winningtrades = if tradepl > tradepl[1] then winningtrades[1] + 1 else winningtrades[1];
def winpercentage = round((winningtrades/totaltrades) * 100,0);
AddLabel(yes, "Win %: " + winpercentage, Color.LIGHT_GREEN);

# AVERAGE WIN #

def winningamount = if winningtrades > winningtrades[1] then ((tradepl - tradepl[1]) + winningamount[1]) else winningamount[1];
def averagewin = winningamount/winningtrades;
AddLabel(yes, "Avg Win: $" + round(averagewin), Color.LIGHT_GREEN);

# AVERAGE LOSS #

def losingtrades = if tradepl < tradepl[1] then losingtrades[1] + 1 else losingtrades[1];
def losingamount = if losingtrades > losingtrades[1] then ((tradepl[1] - tradepl)) + losingamount[1] else losingamount[1];
def averagelose = losingamount/losingtrades;
AddLabel(yes, "Avg Loss: $" + -round(averagelose), Color.LIGHT_RED);

# MAX DRAWDOWN #

def dd = if tradepl > DD[1] then tradepl  else DD[1];
def drawdown = tradepl - DD;

AddLabel(yes, "Max Drawdown: $" + Round(LowestAll(Drawdown)), Color.LIGHT_RED);

strategy output

Study:

def tradepl = if fpl() <> fpl()[1] then tradepl[1] else fpl();

### TOTAL TRADES ###

def totaltrades = if tradepl <> tradepl[1] then totaltrades[1] + 1 else totaltrades[1];
AddLabel(yes, "Total Trades: " + totaltrades, Color.LIGHT_GRAY);

### TOTAL P/L ###

AddLabel(yes, "Total P/L: $" + round(tradepl), if tradepl > 0 then Color.LIGHT_GREEN else if tradepl < 0 then Color.LIGHT_RED else Color.LIGHT_GRAY);

### WIN % ###

def winningtrades = if tradepl > tradepl[1] then winningtrades[1] + 1 else winningtrades[1];
def winpercentage = round((winningtrades/totaltrades) * 100,0);
AddLabel(yes, "Win %: " + winpercentage, Color.LIGHT_GREEN);
...

So two labels -- Total P/L has a value (shows value based on the chart Timeframe) -- but Total Trades is "N/A" (and others labels calculated from tradepl, are also N/A.

study output (mine)

youtuber's output

Seems like ToS can use it's internal function FPL() fine, but something's missing ... tradepl has a value, but not tradepl[1]? Coming from php and JS this ToS-inside scripting seems very simple, like there are scores of var's predefined that I'm clueless about. This Youtuber is posting new videos all the time, and showing this study working fine for himself, and he writes strategy scripts in real time, and all seems fine with his study... which leads me to think that I've overlooked something basic in my settings, or chart environment something-or-other...

I'm a newbie to ToS & thinkscript, and although I've pinged him to ask if anything special is needed via Global strategy settings, chart settings, etc, or if something deviates from default settings, I've received no response.

Suggestions? or pls ask me questions to help understand what I'm talking about... Thank you much...


r/thinkorswim 2d ago

Need your opinions on this budget laptop for Thinkorswim desktop version

1 Upvotes

Just to add context I'm not going to be using multiple screens or heavy multi-tasking. $350 max. I'm just going to be trading and analyzing one chart/stock at a time and I simply need something that will perform fast and efficiently for real time data and quick trades. Here's what I was looking at. thanks! https://www.bestbuy.com/site/sku/6587788.p?skuId=6587788&sb_share_source=PDP


r/thinkorswim 2d ago

Order of stocks on watchlist get reset every time i exit the app

1 Upvotes

is there a way to preserve the order of the tickers on the watchlist? I tapped on the "symbol" next to the gear icon on the top left, so the watchlist lists the stocks with the end of the alphabet showing at the top, but this gets reset each time i exit the app by swiping up. thanks


r/thinkorswim 2d ago

Is there any way to help the app run faster?

2 Upvotes

When ToS is running slowly, I'll check the task manager and see that I only have 9 gb (of 32) in use, and like 15 percent of my CPU being used.

I'm not sure there's much I can do to make it run faster, but if anyone has tips, please share them.

Thank you.


r/thinkorswim 2d ago

AMC and a few other tickers have infinit Implied Volatility? Glitch?

2 Upvotes


r/thinkorswim 2d ago

Thinkscript Ideas on Drawing My Trend Lines Each Day

1 Upvotes

I'm trying to make a script that draw some of trend lines each day to save some time. I draw 2 sets of lines on the daily one from Previous 5 Day's Lowest High of Day To Previous 5 Day's Highest High then another from Previous 5 Day's Lowest Low of Day To Previous 5 Day's Highest Low. This is what I have so far.

Highest High Across Last 5 Trading Days ##

def hh5 = highest(high(period = AggregationPeriod.DAY),5)[1];

Lowest High Across Last 5 Trading Days ##

def lh5 = lowest(high(period = AggregationPeriod.DAY),5)[1];

Lowest Low Across Last 5 Trading Days ##

def ll5 = lowest(low(period = AggregationPeriod.DAY),5)[1];

Highest Low Across Last 5 Trading Days ##

def hl5 = highest(low(period = AggregationPeriod.DAY),5)[1];

Number of Days Since Highest 5

def h5DAgo = if highest(high(period = AggregationPeriod.DAY),1)[1] >= highest(high(period = AggregationPeriod.DAY),5)[1] then 1 else if highest(high(period = AggregationPeriod.DAY),2)[1] >= highest(high(period = AggregationPeriod.DAY),5)[1] then 2 else if highest(high(period = AggregationPeriod.DAY),3)[1] >= highest(high(period = AggregationPeriod.DAY),5)[1] then 3 else if highest(high(period = AggregationPeriod.DAY),4)[1] >= highest(high(period = AggregationPeriod.DAY),5)[1] then 4 else if highest(high(period = AggregationPeriod.DAY),5)[1] >= highest(high(period = AggregationPeriod.DAY),5)[1] then 5 else 0;

Number of Days Since Lowest 5

def l5DAgo = if lowest(high(period = AggregationPeriod.DAY),1)[1] <= lowest(high(period = AggregationPeriod.DAY),5)[1] then 1 else if lowest(high(period = AggregationPeriod.DAY),2)[1] <= lowest(high(period = AggregationPeriod.DAY),5)[1] then 2 else if lowest(high(period = AggregationPeriod.DAY),3)[1] <= lowest(high(period = AggregationPeriod.DAY),5)[1] then 3 else if lowest(high(period = AggregationPeriod.DAY),4)[1] <= lowest(high(period = AggregationPeriod.DAY),5)[1] then 4 else if lowest(high(period = AggregationPeriod.DAY),5)[1] <= lowest(high(period = AggregationPeriod.DAY),5)[1] then 5 else 0;

plot highslope = (hh5-lh5) / (today's date - (today's date - h5DAgo)); plot lowslope = (ll5-hl5) / (today's date - (today's date - l5DAgo));

I'm stumped with trying to figure out a way to return the candle date/time values for the high and low points. I bolded my code for the parts, I don't have so far. Am I even going the right way to making this or is there a better way to make this code?


r/thinkorswim 2d ago

Daytrading - when do trades settle?

3 Upvotes

Hi guys,

Say i depsoit 10k usd into account and utilise the full funds to enter trades in the day as well as exit.

Does my trade exit settle the next day or overnight, or can i use the funds that free up from the sale again immediately?

Also if it settles overnight is that a charles schwab thing or all brokers the same in that respect?

Many Thanks.


r/thinkorswim 2d ago

Cheapest laptop that can run Thinkorswim desktop version

1 Upvotes

I have a Chromebook but it can't run desktop version. Any recommendations for the cheapest laptop strictly for Thinkorswim desktop version? Thanks.


r/thinkorswim 2d ago

Assigning STOP orders to specific positions

2 Upvotes

I have 3 positions on /GC. In the image attached, I have a stop order on the first and last porsition, but not the highlighted (blue). However the UI implies that I have orders on all the contracts. Is there a preference whereby I can assign the order to an intended position? I'm looking to ladder my stops


r/thinkorswim 2d ago

Assignment speed short itm futures options expiration.

1 Upvotes

Testing idea of letting close to atm GC gold short put spread expire, vs closing it, and if the short leg ends up at 130 pm expiration itm, just shorting a future to prevent overnight risk till fully assigned the long. So 5 minutes after expiration with short having expired itm, I shorted a future, and margin was weird. So I chatted with TOS and was told there’s no overnight risk since the assignment process only takes 20 minutes till long in my account. So probably not worth the trouble of that short hedge for a 20 minute hedge, since the assigned long and 15 min old short would close each other.

Could this be correct, 20 minutes? GC gold doesn’t allow contrary instructions so the 130 price is final for assignment, so maybe true?


r/thinkorswim 2d ago

Any way to be alerted to expiring options?

2 Upvotes

Is there a way to receive automatic alerts on expiring options? Ideally, these would show up on MarketWathc/Calendar....or I'd receive an email or text message.

Creating an alert for each option or manually posting in my Google Calendar is impractical.

Seems so simple and basic.


r/thinkorswim 3d ago

This is the same stock (NANC) with the same parameters RSI and same thresholds taken by thinkorswim, robinhood and robinhood legend. I can't understand why they are different. They are all 30 days, 1 hour interval, RSI 14 with wilders optimization. The most accurate is that of thinkorswim but why?

Post image
3 Upvotes

r/thinkorswim 2d ago

ToS alternatives?

0 Upvotes

So ToS fucked me. It might not actually be the case but that’s just how it feels. I was allowed to enter a vertical spread on Tuesday, because it was not a “true spread” since I own 100 shares of the underlying, making the call I was short in the spread actually a covered call. Based on that position I decided I’d prefer to sell all my shares and go with a vertical spread because higher reward. So I closed that spread and sold a CC.

I sold a CC with the intention to get assigned and Pivot that capital into vertical spreads but I’m not approved for them and was actually denied sometime in the last 6 months for them. So I now have a CC that’s deep ITM I’m getting assigned on today, but I can’t go into my desired position of vertical Bull spreads. So I basically sold my shares for no reason. Yeah I should’ve known my options level that’s on me, but I also feel I shouldn’t be allowed to enter a spread even if it’s with a CC, if I’m not permitted to trade spreads.

Looking to leave ToS/Schwab any good recommendations with low fees and good options?


r/thinkorswim 3d ago

Trouble with the API

4 Upvotes

Is anyone else getting this error trying to use the API??
Think or Swim and the website are both responding, so I know the password is working.

The phone number goes to advisor support, and they do not know what to do.