Open JacobPyC opened 1 year ago
rates = fetch_currency_rates(currency, f'{tax_year}-01-01', f'{tax_year}-12-31')
אגב, בכל מקרה ה-join בין המכירה לעמלות צד קניה קצת יותר מסובך ממה שקיוויתי (כתבתי על זה בתגובה האחרונה ב-#1). בהנתן הקושי הטכני, יכול להיות שפתרון פשוט יותר, אבל לא בטוח אם קביל, הוא להוסיף שורת הפסד על כל העמלות באשר הן. בעיה אחת עם זה היא איזה שער מטבע לקחת. ספציפית עבור הדו"ח שלי, נראה לי שאני מוכן גם לקחת את השער המינימלי של השנה כדי לא להכנס לקן השרצים הזה. :) אם היה אפשר להוסיף את העמלות ל-ClosedLot ב-CSV (ולא רק ל-Trade) זה היה הופך את זה להרבה יותר קל. אם במקרה תגלה אפשרות כזו, אשמח לדעת.
רציתי להוסיף מודול של Google Finance conversion rate אבל מסתבר שהם לא מייחצנים אותו יותר למשתמשים רגילים יותר באסה אני אעשה השוואה בינך לבין האקסל של המתורגמן גם בנוגע לשנה שעברה
תצטרך להתייחס לזה או להתעלם כי זה מעיף לי את הריצה "Notes" בדוח של שנה שעברה הייתה לי שורת ולאחר מכן הוא נופל על Index contains duplicate entries, cannot reshape mask.sum() הוא תפס את מספר העסקאות הנכון self.index מציג מספר גדול פי ארבע מזה
אם אתה רוצה, אתה יכול להשתמש בגוגל דוקס בשביל לייצר את ה-CSV. שמת כאן את התאריכים של 2020-2022 ושער המטבע מגוגל פייננס לכל תאריך: https://docs.google.com/spreadsheets/d/1CNzvsqyhQostmuLtozYs-063nEYVZ-d8yHK9nm31-ws/edit?usp=sharing
לגבי החלק השני, אני מבין שאתה אומר שמשהו או כמה דברים השתבשו (עם הסקריפט בלי קשר לשערי המטבע?), אבל זה בערך כל מה שיכולתי להבין שקרה מהטקסט. נראה לי שהשילוב של אנגלית ועברית לא עוזר לזה להיות ברור. אני אשמח להבין את הבעיה, אבל אני אצטרך שתסביר לי לאט יותר. תודה!
Im getting an exception "index contains duplicate entires,cannot reshape" For some reason self.index way bigger than mask.sum 85>25
Can you share the traceback? While it might not be trivial to find the bug without the input data it'd be even more challenging without having full error message stack trace.
I forgot to mention I also got this exception "Unexpected header {header}'" because i had a header named "Notes" in my ibkr statement
if mask.sum() < len(self.index):
raise ValueError("Index contains duplicate entries, cannot reshape")
self.index is way bigger than mask.sum
full traceback here:
Traceback (most recent call last):
File "C:\Users\jacob\Downloads\Files\IBKR-to-1325-form-main\IBKR-to-1325-form-main\src__main.py", line 115, in
I think it might imply that there are duplicate entries in one of the schemas of your input CSV and that messes with the stack/unstack attempt at removing the thousand separator without being specific about the target column (cleaning the data prior to applying pandas.to_numeric
).
You can test if that's the problem by replacing the this line:
df = df.stack().str.replace(',','').unstack()
With this one:
for col in df.columns:
if df[col].dtype == 'object':
df[col] = df[col].str.replace(',', '')
Let me know if it helped. Thanks.
Regarding the unexpected header — you can add it to the ignore list (elif header in ['Total', 'SubTotal', 'Notes']:
)
Since I'm not aware of any public specification of IBKR's statement CSV, the whole process is a trial and error, therefore this list exist and is WIP.
found minor edge case last year i got some HTZGQ stocks for any HTZ stock and then sold it there is no buying price so your code prolly skipped it not sure if it worth to address it also add (elif header in ['Total', 'SubTotal', 'Notes','']:) to your code
אני מניח שאני "הבחור השני"... לגבי עמלת השורטים, יכול להיות שאתה צודק. השנה הגשתי את הדו"ח למס הכנסה בסה"כ - כלמר לא יצרתי נספח 1325 אלא לקחתי את רווח/הפסד ההון השנתי הכולל מוכפל בשער דולר אמצע שנה. קיזזתי מזה גם את עמלות ההשאלה וכל ההוצאות האחרות שהיו לי באינטראקטיב, והשומה התקבלה.
אני מניח שאני "הבחור השני"... לגבי עמלת השורטים, יכול להיות שאתה צודק. השנה הגשתי את הדו"ח למס הכנסה בסה"כ - כלמר לא יצרתי נספח 1325 אלא לקחתי את רווח/הפסד ההון השנתי הכולל מוכפל בשער דולר אמצע שנה. קיזזתי מזה גם את עמלות ההשאלה וכל ההוצאות האחרות שהיו לי באינטראקטיב, והשומה התקבלה. יכול להיות נפלת על פקיד שומה שזרק קצת או לא ממש בדק אבל אם בשנה אחת תיפול על אחד קצת יותר by the book הוא יכול לבקש ממך גם להגיש שוב רטרואקטיבית על שנים עברו הפעם עם נספחים ואז כנראה שתעבור בדיקה יותר לעומק אני במקומך הייתי נמנע מלעשות את זה שוב:) אני הבנתי קצת מאוחר שכדי להגיש דוח שנתי צריך לבקש קודם כל לשלוח בקשה לפתיחת תיק 93 ורק אז לדווח ואי אפשר לעשות את זה כשאתה על המצב הדיפולטיבי( החזר מס) בפועל לנציג לא ממש היה אכפת הוא פשוט שינה לי את סוג התיק וזהו ושאני חושב על זה אני כבר שנתיים מקזז רווחי ריבית מהשאלת מניות עם הפסדי הון בפועל זה לא אמור להיות אפשרי(ריבית אמורה להיות הכנסה שלא מיגיעה אישית) אבל אני סומך על זה שמס הכנסה פחות מבין במושגים כמו stock yield enhancement אבל קצת יותר ישים לב אם לא תגיש בכלל 1325
@JacobPyC יכול להיות שאתה צודק אבל בהעדר סקריפט ראוי לשמו היה בלתי אפשרי להגיש 1325 עם מאות תנועות... לגבי מצב התיק - הייתי נמנע בכלל מהגשה אם לא הייתי מחוייב בשל "הכנסה גבוהה".
@JacobPyC יכול להיות שאתה צודק אבל בהעדר סקריפט ראוי לשמו היה בלתי אפשרי להגיש 1325 עם מאות תנועות... לגבי מצב התיק - הייתי נמנע בכלל מהגשה אם לא הייתי מחוייב בשל "הכנסה גבוהה". נמנע מהגשה ואז מתישהו כי יש אמנה בין רשויות המיסים היו עולים עליך והיית משלם 4% עם הצמדה על הרווחים לא כיף טוב שנה הבאה כבר תוכל להגיש נורמלי מה שהוא הכין פחות או יותר עובד
לשנה הבאה זה צעד בכיוון הנכון, אבל לא מספק - יש לי גם חשבון בטריידסטיישן וגם להם צריך לפתח סקריפט דומה :(