• התכנים בפורום אינם מהווים ייעוץ מקצועי מכל סוג, לרבות ייעוץ השקעות המתחשב בצרכיו המיוחדים של כל אדם.
    השימוש בפורום כפוף לתנאי השימוש. עצם השימוש בפורום מהווה הסכמה מלאה לתנאים אלה.

סקריפט חביב לאיזון תיק (לחובבי Python)

  • פותח הנושא פותח הנושא עומרפ
  • פורסם בתאריך פורסם בתאריך

עומרפ

משתמש רשום
הצטרף ב
21/8/15
הודעות
17
דירוג
11
אהלן,
לאחר פעמיים שעשיתי איזון ידני של התיק שלי החלטתי שחבל על הזמן, וכתבתי סקריפט קצרצר שמבצע את הפעולה המתמטית בשבילי.
הקוד, בגדול, משתמש בנתונים של "כמה אחוזים מאיזו מניה" (GLOBAL: 0.4 מציין 40% לאינדקס GLOBAL). לאחר מכן הוא מבקש להזין את הערך הנוכחי של כל מרכיב בתיק ואת כמות ההפקדה (יכול להיות 0). התוצאה היא הכמות שצריך להוסיף / להחסיר על מנת שהתיק יהיה מאוזן.

מאמין שלרוב האנשים פה זה לא ידבר, אבל אולי זה יהיה שימושי למישהו :)

דוגמא לפלט:
קוד:
-------------------------------------------------------
NAME                NEW AMOUNT               DIFFERENCE
-------------------------------------------------------
GLOBAL              33276.8                        +5.8
RUSSEL 2000         20798.0                     +1268.0
MSCI EMERGING       8319.2                         +3.2
MISC                4159.6                      +2036.6
EURO                16638.4                      +686.4
-------------------------------------------------------
קוד:
import os

CURRENT_DIVISION = {
    'GLOBAL': 0.4,
    'EURO': 0.2,
    'RUSSEL 2000': 0.25,
    'MSCI EMERGING': 0.1,
    'MISC': 0.05,
}

def signed(f):
    return ("+" if f > 0 else "") + str(f)

def main():
    values = dict(CURRENT_DIVISION)
    for name in values.keys():
        print "Current in %s:" % name,
        values[name] = float(raw_input())
    print "Deposit:",
    deposit = float(raw_input())
   
    total = sum(values.values()) + deposit
   
    print "-" * 55
    print "%-20s%-20s%15s" % ("NAME", "NEW AMOUNT", "DIFFERENCE")
    print "-" * 55
    for name, value in values.items():
        new_amount = total * CURRENT_DIVISION[name]
        print "%-20s%-20s%15s" % (name, new_amount, signed(new_amount - value))
    print "-" * 55
   
    os.system('pause')
   
main()
 
תודה, אבל בתור מתכנת למדתי עם השנים שתמיד עדיף להמנע מלכתוב קוד אם אפשר.
או במילים אחרות - זה הרבה יותר קל לעשות מעקב ואיזון עם Google Spreadsheet (או אפילו אקסל) מאשר ע"י כתיבת קוד.
 
תודה, אבל בתור מתכנת למדתי עם השנים שתמיד עדיף להמנע מלכתוב קוד אם אפשר.
או במילים אחרות - זה הרבה יותר קל לעשות מעקב ואיזון עם Google Spreadsheet (או אפילו אקסל) מאשר ע"י כתיבת קוד.
אולי אני פשוט מאסכולה הזויה שחושבת שעדיף להימנע משימוש באקסל אם אפשר :)
 
אולי אני פשוט מאסכולה הזויה שחושבת שעדיף להימנע משימוש באקסל אם אפשר :)
אז נסה לעבוד עם גוגל spreadsheet.
זה כלי מצויין שאחרי שלמדתי להשתמש בו חסך לי המון זמן של לכתוב סקריפטים ותוכנות שהכלי הזה עושה כבר ועוד.
אתה מכיר את הפתגם עם הפטיש והמסמר נכון?
 
אני משתגע כשאני רואה סטודנטים שמכינים דוחות באקסל ופרופסורים שמעבדים תמונות בPower Point או בצייר.
בכל זאת, במקרה הזה אני מסכים לחלוטין עם אדם. הגיליונות האלקטרוניים הומצאו עבור ניהול פיננסי, והם נכשלים רק במשימות מורכבות.

פסק הדין:
מעקב ואיזון בזמן אמת בגליון אלקטרוני.
סימולציות מס ואיזון מורכבים בשפה גבוהה.
אלגוריתמים למסחר יומי (לא ממליץ) בשפה נמוכה.
 
תוכלו לשתף את אקסל האיזון שלכם? תודה
 
לי יש עמודה של המצוי, עמודה של הרצוי ועמודה של ההפרש. זהו.
אפשר גם לשכלל את זה ולחלק את ההפרש במחיר הנוכחי ככה שהוא אומר כמה יחידות לקנות\למכור.
אפשר לשכלל עוד קצת כמו אצלי ואז יש לך גליון שלוקח לו 20-30 שניות לעלות מאפס, עם כ-20 טאבים ומאות שורות.
אשתף מתישהו, אבל זה מצריך בלמו"ס רציני ולא נראה לי רלוונטי ל-99% מהאנשים.
 
אז נסה לעבוד עם גוגל spreadsheet.
מעניין. האמת שאף פעם לא בחנתי לעומק.
מאקסל אני מתרחק כמו מאש (כמעט איבדתי שעות רבות של עבודה בגיליון דיי טריוויאלי לאחרונה), אבל אעיף מבט ב-spreadsheet. תודה!
 
מאקסל אני מתרחק כמו מאש (כמעט איבדתי שעות רבות של עבודה בגיליון דיי טריוויאלי לאחרונה)
כאן הבעיה. אם מדובר בשעות רבות - אקסל איננו הכלי המתאים (וכנראה שגם לא האלטרנטיבות שלו).
העובדה שנכוות בחמין לא צריכה לגרום לך להמנע מצוננין. משימה מהסוג שאני תארתי תמשך פחות מרבע שעה עבור תיק עם עשר ניירות, והתוצאה כנראה תהיה יותר מוצלחת מאשר מקוד עילי.
אם תמצא שרבע שעה לא הספיקה, תעבור לתוכנה אחרת במחיר נמוך.
 
לי יש עמודה של המצוי, עמודה של הרצוי ועמודה של ההפרש. זהו.
חשבתי שכל העניין הוא החלק שאתה מזין כמה אתה עומד להפקיד והוא מנחה אותך איך לחלק את ההפקדה.
או שהאסטרטגיה היא פשוט לקנות את הנ"ע שההפרש בין הרצוי למצוי היא הכי גדולה, ואז אם נשאר עודף אז את נ"ע ההבא בתור, וכך הלאה, כדי לחסוך עמלות?
 
חשבתי שכל העניין הוא החלק שאתה מזין כמה אתה עומד להפקיד והוא מנחה אותך איך לחלק את ההפקדה.
או שהאסטרטגיה היא פשוט לקנות את הנ"ע שההפרש בין הרצוי למצוי היא הכי גדולה, ואז אם נשאר עודף אז את נ"ע ההבא בתור, וכך הלאה, כדי לחסוך עמלות?
זו החלטה מאוד אישית ודי שרירותית ולכן אין כאן "נכון/לא נכון".

אם אתה מפקיד כספים לעתים תכופות אז אתה יכול לחסוך לעצמך כאבי ראש של איזונים עד רמת האגורה ופשוט לקנות את החלק שירד מהאיזון שלו הכי הרבה.
אם אתה מאזן פעם בשנה והתיק מורכב ממעט ניירות אז יש היגיון באיזון של כולם (למכור את מי שחרג כלפי מעלה ולרכוש את מי שחרג כלפי מטה).

להלן ציטוט מהודעה פרטית ששלחתי לאחת מקוראות הפורום ממש לא מזמן בהקשר של איזון באמצעות אקסל:
מכניסים את שווי התיק הכולל בשקלים (ללא תלות בחלוקת הנכסים - כולל יתרת מזומן) בתא אחד.
מכניסים את שמות הנכסים השונים בעמודה אחת ובעמודה לידם את האחוז הרצוי לכל נכס.
בעמודה השלישית מכניסים נוסחה שמכפילה את האחוז הרצוי בשווי התיק של היום.

התוצאה שתוצג בעמודה השלישית זה השווי הכולל שצריך להקצות לכל חלק היום.

חלקים שערכם היום גדול יותר מהערך שמוצג בעמודה השלישית צריך למכור עד שערכם יהיה שווה למה שמוצג בעמודה השלישית.
חלקים שערכם היום קטן יותר מהערך שמוצג בעמודה השלישית צריך לקנות עד שערכם יהיה שווה למה שמוצג בעמודה השלישית.

סיימת.
 
כל זה נכנס בתא של הרצוי.
אם האסטרטגיה היא פשוט להפקיד עד איזון לכל הנ"ע אז זה נכון, אבל היה אפשר לעשות משהו קצת יותר מתוחכם כדי לחסוך עמלות.

למשל, לקחת את הסכום שמפקידים, ולחלק אותו בין 2 הנ"ע (או כל מספר אחר) שהכי רחוקים מהאלוקציה המקורית שלהם. הדרך לחלק ביניהם היא כבר מה שהאקסל יחשב.

אני מניח שלרוב המקרים להפקיד ל2 נ"ע בלבד יהיה מספיק טוב לתיק שיש לו כ- 5 נ"ע. אבל זה סתם היה מספר.
* אני מניח שכמו ש @daat99 כתב, ההפקדות מתבצעות בתדירות מספיק גבוהה ובנפח מספיק גבוהה כדי שזה לא יצור מצב שבו יש הרבה זמן עם אלוקציה שונה מדי מהתכנון המקורי
 
אם האסטרטגיה היא פשוט להפקיד עד איזון לכל הנ"ע אז זה נכון, אבל היה אפשר לעשות משהו קצת יותר מתוחכם כדי לחסוך עמלות.
אם התהליך נהיה מורכב, אפשר להתחיל לכתוב סקריפטים באיזו שפה שרוצים.
אני טענתי שאפשר להחליף את ~30 שורות הקוד שבפתח השרשור בשלוש עמודות בגליון, ושלא צריך להתרחק מאקסל, לא כמו מאש ולא כמו מגחלים קרות.
 
אני תוהה האם השיטה שהצעתי היא משהו מקובל שאנשים עושים, או שהמצאתי את הגלגל (וסביר להניח שלא המצאתי כלום אז אם לא מקובל כנראה יש סיבה שלא עושים את זה). מישהו פה עושה משהו דומה?
 
@liranviper ברוב המקרים שאני מוסיף כספים לתיק, אני קונה רק נייר אחד, זה שהכי רחוק מלמטה מהאיזון, בהתאם למה שהגליון איתו אני מנהל את התיק אומר לי. זה חוסך בעמלות מסחר, וגם ככה ככל שהתיק גדל הסטייה שתיגרם ע״י פעימת הפקדה בודדת ביחס לגודל התיק הופכת לחשובה פחות ופחות עם הזמן (די מהר).
 
@liranviper ברוב המקרים שאני מוסיף כספים לתיק, אני קונה רק נייר אחד, זה שהכי רחוק מלמטה מהאיזון, בהתאם למה שהגליון איתו אני מנהל את התיק אומר לי. זה חוסך בעמלות מסחר, וגם ככה ככל שהתיק גדל הסטייה שתיגרם ע״י פעימת הפקדה בודדת ביחס לגודל התיק הופכת לחשובה פחות ופחות עם הזמן (די מהר).
זה מה שאני חשבתי לעשות בתקופה שחשבתי על השקעה בתיק מדדים.
 

פתחו חשבון למסחר עצמאי

פסגות טרייד

ישראל: 0.06% מעסקה (מינימום ₪2 לפעולה)
ארה"ב: 1¢ למניה (מינימום $6 לפעולה)
דמי ניהול: ללא דמי ניהול
מינימום: ₪10,000
פתיחת חשבון

מיטב טרייד

ישראל: 0.08% מעסקה (מינימום ₪4.65 לפעולה)
ארה"ב: 1¢ למניה (מינימום $6 לפעולה או $5 ב-IBKR)
דמי ניהול: פטור לשנתיים, אח״כ ₪15
מינימום: ₪5,000
פתיחת חשבון

אקסלנס טרייד

ישראל: 0.07% מעסקה (מינימום ₪3 לפעולה)
ארה"ב: 1¢ למניה (מינימום $6 לפעולה או $5 ב-IBKR)
דמי ניהול: פטור לשלוש שנים, אח״כ ₪15
מינימום: ₪10,000
פתיחת חשבון
פסגות טרייד
מינימום לפתיחת חשבון: ₪10,000
⌄
ישראל: 0.06% מעסקה (מינימום ₪2 לפעולה)
ארה"ב: 1¢ למניה (מינימום $6 לפעולה)
דמי ניהול: ללא דמי ניהול
פתיחת חשבון
מיטב טרייד
מינימום לפתיחת חשבון: ₪5,000
⌄
ישראל: 0.08% מעסקה (מינימום ₪4.65 לפעולה)
ארה"ב: 1¢ למניה (מינימום $6 לפעולה או $5 ב-IBKR)
דמי ניהול: פטור לשנתיים, אח״כ ₪15
פתיחת חשבון
אקסלנס טרייד
מינימום לפתיחת חשבון: ₪10,000
⌄
ישראל: 0.07% מעסקה (מינימום ₪3 לפעולה)
ארה"ב: 1¢ למניה (מינימום $6 לפעולה או $5 ב-IBKR)
דמי ניהול: פטור לשלוש שנים, אח״כ ₪15
פתיחת חשבון
גילוי נאות: האתר מקבל תגמול בגין פתיחת חשבון דרך הקישורים. אין באמור משום ייעוץ השקעות או שיווק השקעות.
אני תוהה האם השיטה שהצעתי היא משהו מקובל שאנשים עושים, או שהמצאתי את הגלגל (וסביר להניח שלא המצאתי כלום אז אם לא מקובל כנראה יש סיבה שלא עושים את זה). מישהו פה עושה משהו דומה?
זה מאד תלוי בתיק ובצורת הניהול שלו. לי יש חשבון לא ממוסה ללא עלויות מסחר וחשבון ממוסה עם עמלות. כך שאני תמיד יכול למכור ולאזן.
 
נושאים דומים

נושאים דומים

Back
למעלה