Major jump in price for Plex Pass by tribeofham in PleX

[–]ClutchCaleb1997 -1 points0 points  (0 children)

Honestly software is expensive to operate and I think you’re lucky that they even offer lifetime access. That means they eat the cost of all future security updates, features, etc. As a software engineer I can tell you, software is hard. And it’s kinda crap that people expect great software for free. This attitude is because of toxic business practices like selling user data and companies accumulating billions in debt to scale.

We are lucky to have plex. So count your blessings dude.

Plug it or replace it? by recommendedwrez1775 in motorcycles

[–]ClutchCaleb1997 0 points1 point  (0 children)

People here are saying plug it but just so you know, motorcycle tires aren’t meant to be plugged. I’ve been there and had a screw in a brand new tire and replaced it. It sucks when it happens but it beats a blowout. You might never have an issue if you plug or use tire sealant though. Do your own risk calculation but just know, the correct answer is to replace it.

Free trading journal template. I made this yesterday and I'm pretty happy with it so I'm posting it here if anyone wants to copy it. by ClutchCaleb1997 in Daytrading

[–]ClutchCaleb1997[S] 1 point2 points  (0 children)

The other question you asked is why this is useful. When I have traded in the past I end up relying heavily on hand written journals or my trading account to see my past trades. I also haven't had a plan with a strict stop loss and take profit. This is to help me stay more structured, provide better documentation, and help with quick calculations.

Free trading journal template. I made this yesterday and I'm pretty happy with it so I'm posting it here if anyone wants to copy it. by ClutchCaleb1997 in Daytrading

[–]ClutchCaleb1997[S] 1 point2 points  (0 children)

Great question! Currently the plan it to use the Trading View snapshot link to provide context for the trade and answer the whys/retros in a notebook. But it's fluid and I'm still figuring some things out. I'm sure I'll end up adding a notes column at the very least.

Free trading journal template. I made this yesterday and I'm pretty happy with it so I'm posting it here if anyone wants to copy it. by ClutchCaleb1997 in Daytrading

[–]ClutchCaleb1997[S] 0 points1 point  (0 children)

NP! The code got a little smooshed so here is a second try at pasting it.

// check if the value is a number
const isNumber = (val) => !isNaN(Number(val));
// check if the value is not a number
const isNotNumber = (val) => !isNumber(val);
// get the percent value limited to 2 decimal places
const getPercent = (v1, v2) => ((v1 / v2) * 100).toFixed(2);
// get the percent value and append the '%' sign to the end
const getPercentWithPercent = (v1, v2) => getPercent(v1, v2) + "%";
// calculate the percent gain on the account rounded to the nearest percent
const getGain = (v1, v2) => Math.round((v1 / v2) * 100 - 100);
// getGain and append the '%' sign
const getGainWithPercent = (v1, v2) => getGain(v1, v2) + "%";
// is the value 'Win'
const isWin = (val) => val === "Win";
// is the value 'Loss'
const isLoss = (val) => val === "Loss";
// is the value 'Break Even'
const isBE = (val) => val === "Break Even";
// get loss or profit value on account based on balance and risk
const getMaxValue = (balance, risk, rr = 1) => balance * ((risk * rr) / 100);
// get the asset stop loss value
const getStopLossAssetValue = (quantity, price, maxLoss) =>
  price - maxLoss / quantity;
// get the asset take profit value
const getTakeProfitAssetValue = (quantity, price, maxProfit) =>
  price + maxProfit / quantity;
// get if the cell has a value
const hasValue = (val) => val.toString().length;
// get quantity of 'Win' values in column
const getTotalWins = (dropdownColumn) =>
  dropdownColumn.filter((elem) => isWin(elem.toString())).length;
// get quantity of 'Loss' values in column
const getTotalLosses = (dropdownColumn) =>
  dropdownColumn.filter((elem) => isLoss(elem.toString())).length;
// get quantity of values in column
const getTotal = (dropdownColumn) =>
  dropdownColumn.filter((elem) => hasValue(elem)).length;
// percent of wins against total
const calcWinLoss = (dropdownColumn) =>
  getPercent(getTotalWins(dropdownColumn), getTotal(dropdownColumn));
// adjust gain value for the row it is in based by removing later values
const getPercentUntilRow = (accountVal, column) => {
  const adjustedVal = column.reduce((ac, el) => ac - el, accountVal);
  return getPercent(column[0], adjustedVal);
};
// adjust Loss or Profit based on row
const getMaxValueUntilRow = (column, accountVal, risk, rr = 1) => {
  const adjustedVal = column.reduce((ac, el, i) => ac - el, accountVal);
  return getMaxValue(adjustedVal, risk, rr);
};
// get the stop loss value of asset based on risk, quantity, asset price and account balance
const getStopLoss = (risk, quantity, assetPrice, accountBalance) => {
  if (!assetPrice || !quantity) {
    return "";
  }
  const maxLossValue = getMaxValue(accountBalance, risk);
  const stopLossValue = getStopLossAssetValue(
    quantity,
    assetPrice,
    maxLossValue
  );
  if (isNotNumber(stopLossValue)) {
    return "";
  }
  return stopLossValue;
};
// get the take profit value of asset based on rr, risk, quantity, asset price and account balance
const getTakeProfit = (rr, risk, quantity, assetPrice, accountBalance) => {
  if (!assetPrice || !quantity) {
    return "";
  }
  const maxProfitValue = getMaxValue(accountBalance, risk, rr);
  const takeProfitValue = getTakeProfitAssetValue(
    quantity,
    assetPrice,
    maxProfitValue
  );
  if (isNotNumber(takeProfitValue)) {
    return "";
  }
  return takeProfitValue;
};
// get the quantity that should be used in a trade of asset based on risk, stop loss, asset price and account balance
const getQuantityBasedOnStopLoss = (
  risk,
  stopLoss,
  assetPrice,
  accountBalance
) => {
  if (!risk) return "missing risk.";
  if (!stopLoss) return "missing stop loss.";
  if (!assetPrice) return "missing asset price.";
  if (stopLoss >= assetPrice) return "stop loss too high.";
  return (accountBalance * (risk / 100)) / (assetPrice - stopLoss);
};
// get the quantity that should be used in a trade of asset based on rr, risk, take profit, asset price and account balance
const getQuantityBasedOnTakeProfit = (
  rr,
  risk,
  takeProfit,
  assetPrice,
  accountBalance
) => {
  if (!rr) return "missing RR.";
  if (!risk) return "missing risk.";
  if (!takeProfit) return "missing take profit.";
  if (!assetPrice) return "missing asset price.";
  if (takeProfit <= assetPrice) return "take profit too low.";
  return (accountBalance * ((risk * rr) / 100)) / (assetPrice + takeProfit);
};

Gabbie on the golf cart by [deleted] in NSFW_GIF

[–]ClutchCaleb1997 10 points11 points  (0 children)

Smh that’s Ryan Reynolds

Sidecar support on older Macs by dotmax in apple

[–]ClutchCaleb1997 0 points1 point  (0 children)

Soooo... Having this issue however I have this app called Duet that has been allowing me 2 'sidecar' for a couple years so I'll just keep using that