[-] _MoveSwiftly@lemmy.world 10 points 1 year ago

Hello there, and welcome to our community! I hope you like it in here.

Could you please include some body text as to why should people know this, and how would that help them? It’s our second rule. Thank you :)

[-] _MoveSwiftly@lemmy.world 11 points 1 year ago

Hello there, and welcome to our community! I hope you like it in here.

Could you please include some body text as to why should people know this, and how would that help them? It’s our second rule. Thank you :)

8
3
1
1
1
1
8
1
1

cross-posted from: https://lemmy.world/post/704147

cross-posted from: https://lemmy.world/post/704145

Yes, live.

I've looked for this for a while and didn't find much. Being a stubborn ass (The Boondocks voice) I kept looking until I got it down. There are trackers for the options you've sold, call and put screeners, calculators to avoid CSP risk, holdings, and a singular location for cost basis so you don't do something dumb like Idk sell SPCE CCs at $20 when your cost basis is $22 but you thought it was $18. I definitely didn't do that.

Google Sheet

You'll need to add a custom script:

  1. Tools
  2. Script Editor
  3. Add file
  4. Name it SAMPLE
  5. Paste this into it:

The code is thanks to tanaike

Code source: https://stackoverflow.com/questions/64437503/importxml-not-producing-correct-values

function SAMPLE(url) {
  const res = UrlFetchApp.fetch(url, {muteHttpExceptions: true});
  const tables = [...res.getContentText().matchAll(/(<table[\w\s\S]+?<\/table>)/g)];
  if (tables.length < 2) return "No tables. Please confirm URL again.";
  const values = tables.reduce((ar, [,table]) => {
    if (table) {
      const root = XmlService.parse(table).getRootElement();
      const temp = root.getChild("tbody", root.getNamespace()).getChildren().map(e => e.getChildren().map(f => isNaN(f.getValue()) ? f.getValue() : Number(f.getValue())));
      ar = ar.concat(temp);
    }
    return ar;
  }, []);
  return values[0].map((_, i) => values.map(r => r[i]));
}

The result: It returns a table, so you need to use INDEX with it in order to point to a specific row/column. The method itself is SAMPLE, which takes a URL and returns a table. So you'll need to use Concatenate in order to make up the URL for a Yahoo link.

Google Sheet function:

=INDEX(SAMPLE(CONCATENATE("https://finance.yahoo.com/quote/", $A7, RIGHT(YEAR($E7), 2), TEXT(MONTH($E7), "00"), TEXT(DAY($E7),"00"), IF(B7 = "PUT", "P", "C"), SUBSTITUTE(TEXT($M7,"00000.000"), ".", ""), "?p=", $A7, RIGHT(YEAR($E7), 2), TEXT(MONTH($E7), "00"), TEXT(DAY($E7),"00"), "C", SUBSTITUTE(TEXT($M7,"00000.000"), ".", ""))), 2, 3) 

Known issues:

  1. Loading from mobile is not reliable. You may have to erase the cell and undo, or reload, or get on a laptop/desktop.
  2. Sorting recalculates the numbers and sometimes it stops working. I just don't sort anymore, but it'll eventually fix itself.
  3. It doesn't calculate if you change values. Just erase the cell and undo, it'll do it correctly.
  4. Not all options are available on Yahoo, especially if you're looking 30+ days.

Full page, two words: ~~Fuck you~~ good luck!

P.S. Yahoo dev: If you're seeing this, please let me be. This was already hard enough to put together. Plz.

1

cross-posted from: https://lemmy.world/post/704145

Yes, live.

I've looked for this for a while and didn't find much. Being a stubborn ass (The Boondocks voice) I kept looking until I got it down. There are trackers for the options you've sold, call and put screeners, calculators to avoid CSP risk, holdings, and a singular location for cost basis so you don't do something dumb like Idk sell SPCE CCs at $20 when your cost basis is $22 but you thought it was $18. I definitely didn't do that.

Google Sheet

You'll need to add a custom script:

  1. Tools
  2. Script Editor
  3. Add file
  4. Name it SAMPLE
  5. Paste this into it:

The code is thanks to tanaike

Code source: https://stackoverflow.com/questions/64437503/importxml-not-producing-correct-values

function SAMPLE(url) {
  const res = UrlFetchApp.fetch(url, {muteHttpExceptions: true});
  const tables = [...res.getContentText().matchAll(/(<table[\w\s\S]+?<\/table>)/g)];
  if (tables.length < 2) return "No tables. Please confirm URL again.";
  const values = tables.reduce((ar, [,table]) => {
    if (table) {
      const root = XmlService.parse(table).getRootElement();
      const temp = root.getChild("tbody", root.getNamespace()).getChildren().map(e => e.getChildren().map(f => isNaN(f.getValue()) ? f.getValue() : Number(f.getValue())));
      ar = ar.concat(temp);
    }
    return ar;
  }, []);
  return values[0].map((_, i) => values.map(r => r[i]));
}

The result: It returns a table, so you need to use INDEX with it in order to point to a specific row/column. The method itself is SAMPLE, which takes a URL and returns a table. So you'll need to use Concatenate in order to make up the URL for a Yahoo link.

Google Sheet function:

=INDEX(SAMPLE(CONCATENATE("https://finance.yahoo.com/quote/", $A7, RIGHT(YEAR($E7), 2), TEXT(MONTH($E7), "00"), TEXT(DAY($E7),"00"), IF(B7 = "PUT", "P", "C"), SUBSTITUTE(TEXT($M7,"00000.000"), ".", ""), "?p=", $A7, RIGHT(YEAR($E7), 2), TEXT(MONTH($E7), "00"), TEXT(DAY($E7),"00"), "C", SUBSTITUTE(TEXT($M7,"00000.000"), ".", ""))), 2, 3) 

Known issues:

  1. Loading from mobile is not reliable. You may have to erase the cell and undo, or reload, or get on a laptop/desktop.
  2. Sorting recalculates the numbers and sometimes it stops working. I just don't sort anymore, but it'll eventually fix itself.
  3. It doesn't calculate if you change values. Just erase the cell and undo, it'll do it correctly.
  4. Not all options are available on Yahoo, especially if you're looking 30+ days.

Full page, two words: ~~Fuck you~~ good luck!

P.S. Yahoo dev: If you're seeing this, please let me be. This was already hard enough to put together. Plz.

2

cross-posted from: https://lemmy.world/post/511274

Got Stable Diffusion running locally and had to try this out.

14

Got Stable Diffusion running locally and had to try this out.

[-] _MoveSwiftly@lemmy.world 10 points 1 year ago

I won't leave Firefox.

Extensions on mobile is an instant win for me.

[-] _MoveSwiftly@lemmy.world 12 points 1 year ago

Could you please add a “Why YSK:”? It’s rule #2. It’s also helpful for readability, and informs readers about the importance of the content. Thank you. :)

[-] _MoveSwiftly@lemmy.world 10 points 1 year ago

I was around the same age. :) I still have the old Nokias. What a time that was, with Symbian being an OS.

[-] _MoveSwiftly@lemmy.world 10 points 1 year ago

If it's no longer usable to you, either sell or donate it. Simply because you don't have a use for it anymore doesn't mean you have to make a new use for it.

[-] _MoveSwiftly@lemmy.world 9 points 1 year ago

Could you please add a "Why YSK:"? It's rule #2. Thank you. :)

[-] _MoveSwiftly@lemmy.world 10 points 1 year ago

We'll need to work on it.

[-] _MoveSwiftly@lemmy.world 12 points 1 year ago

Could you please add a "Why YSK:"? It's rule #2. Thank you. :)

[-] _MoveSwiftly@lemmy.world 12 points 1 year ago

Could you please add a "Why YSK:"? Thank you. :)

[-] _MoveSwiftly@lemmy.world 10 points 1 year ago

Please add a "Why YSK:" following rule #2. Thank you!

[-] _MoveSwiftly@lemmy.world 12 points 1 year ago

iOS is not private, it's secure.

Private: Only you can see it, the servicing company does not. In the case, Apple not only sees your data but sells it too.

Secure: The data is protected from unwanted access by 3rd party vendors.

These are rough definitions though.

view more: ‹ prev next ›

_MoveSwiftly

joined 1 year ago
MODERATOR OF