%run "Retropy_framework.ipynb"
Installing requirements .. Done
mdf = pd.read_csv("Research/GemelNet.csv")
mdf["month_return"] = mdf["month_return"].astype(str)
mdf["month"] = pd.to_datetime(mdf["month"], format="%Y/%m/%d")
mdf["month_return"] = pd.to_numeric(mdf["month_return"].str.replace("%", ""), errors="coerce")
/home/user/anaconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py:2698: DtypeWarning: Columns (4,13) have mixed types. Specify dtype option on import or set low_memory=False.
#mdf = mdf.set_index("month")
def getValue(df):
df = df.set_index("month")
ser = df["month_return"].dropna().copy()
if len(ser) == 0:
return pd.Series()
prevMonth = ser.index[0] + pd.DateOffset(months=-1)
ser[prevMonth] = 0 # we want the serie sto start at 1.0
ser = ser.sort_index()
ser.index = ser.index + pd.DateOffset(months=1)
return (1+ser.dropna()/100).cumprod()
#sym = mdf[mdf["ID"] == 1544]
#ym["month_return"]
#getValue(sym).plot()
def getKeren(id):
df = mdf[mdf["ID"] == id]
name = str(id) + " | " + df.iloc[0]["name"]
s = getValue(df)
usdils = getForex("USD", "ILS")
s = (s/usdils).dropna()
if len(s) > 0:
s = s / s[0]
return wrap(s, name)
s = getKeren(1544)
bench = get("URTH")
bench = wrap(get("SPY:50|VGK:30|EEM:13|EWJ:7", mode="NTR"), "ntr")
benchTR = get("SPY:50|VGK:30|EEM:13|EWJ:7", mode="TR")
vt = get("VT", mode="NTR")
show(s / bench, s, bench, vt, trim=True)
s = getKeren(2265)
bench = get("SPXNTR@IC")
spy = get("SPY", mode="NTR")
x = (s / bench).dropna()
show(x, s, bench, spy, trim=True)
s = getKeren(9451)
bench = get("SPXNTR@IC")
spy = get("SPY", mode="NTR")
x = (s / bench).dropna()
show(x, s, bench, spy, trim=True)
intergemel = getKeren(9451)
ibi = getKeren(2265)
show(ibi / intergemel, ibi, intergemel, 1)
allKranotIDs = set(mdf.loc[mdf["type"]=="קרן השתלמות", "ID"].values)
allKranot = []
for id in allKranotIDs:
keren = getKeren(id)
allKranot.append(keren)
print(keren.name)
allKranot = [s for s in allKranot if len(s.s) > 0]
2048 | *** מגדל השתלמות הלכה 1537 | אינפיניטי השתלמות מניות בחו"ל 8704 | "אינטרגמל השתלמות"-מדד "תל בונד 20" 8705 | "אינטרגמל השתלמות"-מסלול מזומנים ושווי מזומנים 1542 | אקסלנס השתלמות בניהול אישי 2055 | *** מיטב דש השתלמות חו"ל 1544 | *** אי.בי.אי השתלמות פאסיבי - מדדי מניות חו"ל 1034 | *** הראל השתלמות מסלול חו"ל 2058 | הלמן-אלדובי השתלמות שריעה 1038 | ילין לפידות קרן השתלמות מסלול אג"ח עד 25% מניות 7703 | אנליסט השתלמות כללי פאסיבי 2041 | ** מורים תיכוניים - מסלול הלכה 1059 | *** פסגות שיא השתלמות פאסיבי-כללי 554 | *** מיטב דש השתלמות עד 6 שנות וותק 2091 | *** אקסלנס השתלמות אג"ח עד 20% מניות 558 | *** אלטשולר שחם השתלמות אג"ח עד 15% במניות 2100 | אי.בי.אי השתלמות בניהול אישי 566 | *** הראל השתלמות לטווח ארוך (מסלול לאוכלוסיית יעד) 8761 | הראל השתלמות IRA IRA 1083 | אינפיניטי השתלמות כללי 1084 | אינפיניטי השתלמות אג"ח 1085 | אינפיניטי השתלמות מניות בישראל 2114 | אינפיניטי השתלמות IRA בניהול אישי 579 | *** מגדל השתלמות כללי 580 | ** שיבולת - השתלמות 1093 | *** אלטשולר שחם השתלמות כללי 2115 | כלל השתלמות אג"ח 9802 | ** אומגה קרן השתלמות אג"ח עד 15% מניות 8779 | אנליסט השתלמות חו"ל 1100 | *** אקסלנס השתלמות אג"ח עד 15% מניות 9803 | ** אומגה קרן השתלמות אג"ח עד 25% מניות 7253 | מגדל השתלמות לבני 50 ומטה 1110 | *** מנורה השתלמות אג"ח קונצרני 599 | *** מגדל השתלמות אג"ח עד 10% מניות 7254 | מגדל השתלמות לבני 50 עד 60 7256 | מגדל השתלמות פאסיבי כללי 1114 | *** מנורה השתלמות שקלי לטווח קצר 610 | *** פסגות שיא השתלמות אג"ח 611 | *** פסגות שיא השתלמות כספי 612 | *** פסגות שיא השתלמות מניות 11929 | קל השתלמות מניות מניות 11931 | קל השתלמות מניות פאסיבי 1149 | *** מנורה השתלמות אג"ח עד 10% מניות 132 | *** הלמן-אלדובי השתלמות כללי 1157 | *** מגדל השתלמות ביג כללי לפחות 30% מניות 1162 | ילין לפידות קרן השתלמות מסלול כללי 7819 | אי.בי.אי השתלמות פאסיבי - כללי 9869 | הלמן-אלדובי השתלמות פאסיבי -כללי 9870 | הלמן-אלדובי השתלמות חו"ל 9871 | הלמן-אלדובי השתלמות ישראל 11408 | מנורה מבטחים השתלמות פאסיבי כללי 11409 | מנורה מבטחים השתלמות פאסיבי אג"ח עד 15% במניות 8339 | ** מסלול - אג"ח 12435 | ** השתלמות רופאים מניות 11414 | עובדי המדינה הלכתי הלכה יהודית 11926 | קל השתלמות כללי 11928 | קל השתלמות אג"ח אג"ח 11927 | קל השתלמות כללי פאסיבי 154 | הראל השתלמות כללי 9882 | אקסלנס השתלמות אג"ח עד 10% מניות 11930 | קל השתלמות אג"ח פאסיבי 11933 | קל השתלמות מדד אג"ח ישראל 1182 | ** קרן השתלמות של עובדי האוניברסיטה העברית 1183 | *** פסגות שיא השתלמות ישראל 11935 | קל השתלמות אג"ח צמוד מדד בינוני 11936 | קל השתלמות חו"ל חו"ל 11937 | קל השתלמות חו"ל פאסיבי 11934 | קל השתלמות מדד חו"ל 11932 | קל השתלמות מדד מניות ישראל 1190 | *** אקסלנס השתלמות אג"ח עד 25% מניות 686 | *** אקסלנס השתלמות לטווח קצר 1202 | *** אי.בי.אי השתלמות אג"ח ללא מניות 1203 | אי.בי.אי קרן השתלמות מסלול אג"ח עד 10% מניות 1204 | *** אי.בי.אי השתלמות כללי 1205 | *** אי.בי.אי השתלמות מניות 8885 | מיטב דש השתלמות אג"ח עד 25% במניות 11957 | אינפיניטי השתלמות אג"ח עד 25% מניות 1210 | אינפיניטי השתלמותאג"ח ממשלת ישראל 8891 | ** רעות אג"ח עד 10% במניות 2236 | איי.אר.איי ישראל השתלמות בניהול אישי 8890 | מגדל השתלמות בניהול אישי IRA 8382 | ** מסלול מישור אג"ח 9919 | אקסלנס השתלמות פאסיבי- מדדי חו"ל 1218 | *** פסגות שיא השתלמות כללי 2244 | פסגות שיא השתלמות חו"ל 199 | *** מגדל השתלמות אג"ח 8394 | ** מורים על יסודי מסלול הלכה 715 | *** אקסלנס השתלמות שקלי טווח קצר 716 | *** אקסלנס השתלמות אג"ח ללא מניות 2252 | אינפיניטי השתלמות אג"ח עד 15% מניות 2254 | אינפיניטי השתלמות לחוסכים מוטי סיכון 8395 | ** מישור מסלול הלכה 1240 | *** מיטב דש השתלמות אג"ח ללא מניות 2264 | *** אי.בי.אי השתלמות מחקה מדד ת"א 35 2265 | אי.בי.אי השתלמות מחקה מדד S&P500 2270 | אי.בי.אי השתלמות פאסיבי משולב עד 10% מניות 2271 | אי.בי.אי השתלמות פאסיבי משולב עד 25% מניות 736 | *** הלמן-אלדובי השתלמות אג"ח 737 | *** הלמן-אלדובי השתלמות שקלי 738 | *** הלמן-אלדובי השתלמות מניות 1256 | *** מנורה השתלמות-מניות 1257 | ** רום רביד אג"ח ללא מניות 1258 | ** רום ספיר מניות 9451 | אינטרגמל השתלמות -מניות S&P500 1262 | ** מינהל - השתלמות - מניות 763 | הראל השתלמות מסלול מניות 764 | הראל השתלמות אג"ח עד 10% מניות 768 | *** מיטב דש השתלמות כהלכה 8702 | "אינטרגמל השתלמות"-אג"ח ממשלת ישראל, צמוד מדד לטווח של 5-10 שנים 9479 | עובדי מדינה - מניות 1290 | אלטשולר שחם השתלמות כללי ב' 8703 | "אינטרגמל השתלמות"-אג"ח ממשלתי שקלי בריבית קבועה 282 | ** מישור 284 | ** מורים וגננות - מסלול כללי 285 | ** מורים תיכוניים - מסלול כללי 286 | ** אומגה קרן השתלמות מסלול כללי 797 | *** אקסלנס השתלמות מניות 288 | ** קרן השתלמות לאקדמאים במדעי החברה והרוח מסלול כללי 289 | ** קרן השתלמות לעובדי בנק ישראל 290 | ** הנדסאים וטכנאים - מסלול כללי 1820 | ** ק.ס.מ אג"ח 292 | ** השתלמות משפטנים 293 | ** ק.ס.מ 294 | ** השתלמות שופטים 295 | ** ק.ה.ר 1318 | ** הנדסאים וטכנאים - מסלול מניות 1316 | ** רעות - אג"ח ללא מניות 1317 | ** רעות מניות 299 | ** מינהל-השתלמות - כללי 1319 | ילין לפידות קרן השתלמות מסלול אג"ח 9528 | אקסלנס השתלמות הלכה 828 | *** מנורה מבטחים השתלמות כללי 1348 | כלל השתלמות אג"ח צמוד מדד 1861 | מנורה מבטחים השתלמות טווח ארוך 1350 | כלל השתלמות מניות 1351 | כלל השתלמות שקלי טווח קצר 1353 | *** מיטב דש השתלמות מעל 6 שנות וותק 1354 | *** הפניקס השתלמות - מסלול אג"ח 9545 | הפניקס השתלמות - מסלול פאסיבי - מדדי אג"ח 9546 | הפניקס השתלמות - מסלול פאסיבי - מדדי אג"ח חו"ל 9549 | הפניקס השתלמות - מסלול מתמחה שקלי טווח קצר 9548 | הפניקס השתלמות - מסלול פאסיבי- מדדי מניות חו"ל 9547 | הפניקס השתלמות מסלול פאסיבי - מדדי מניות 1361 | ילין לפידות קרן השתלמות מסלול אג"ח ממשלת ישראל 1367 | הלמן-אלדובי השתלמות אג"ח עד 15% במניות 1369 | הראל השתלמות מסלול שקלי 1370 | *** מיטב דש השתלמות שקלי טווח קצר 864 | *** מגדל השתלמות שקלי טווח קצר 865 | *** מגדל השתלמות אג"ח ממשלתי ישראלי 1378 | *** אלטשולר שחם השתלמות אג"ח ללא מניות 1377 | *** אלטשולר שחם השתלמות מניות 868 | *** מגדל השתלמות חו"ל 869 | *** מגדל השתלמות מניות 9568 | הראל השתלמות כללי פאסיבי 1384 | ** הנדסאים וטכנאים מסלול אג"ח 1385 | ** מינהל - השתלמות - אג"ח 1387 | *** מיטב דש השתלמות אג"ח ממשלת ישראל 880 | *** מיטב דש השתלמות כללי 881 | *** מיטב דש השתלמות אג"ח צמוד מדד 883 | *** מיטב דש השתלמות מניות 8563 | ילין לפידות קרן השתלמות מסלול מניות 1398 | אלטשולר שחם השתלמות כספי 1399 | אלטשולר שחם השתלמות אג"ח ממשלות 378 | ** ק.ל.ע מסלול כללי 8058 | *** הראל השתלמות אג"ח קונצרני 1404 | ** עובדי המדינה - אג"ח ממשלת ישראל 382 | ** עובדי מדינה - כללי 1408 | *** מנורה השתלמות-אג"ח ממשלת ישראל 1409 | מנורה מבטחים השתלמות-מניות חו"ל 1410 | ** קרן החיסכון לצבא הקבע מסלול אג"ח ללא מניות 1411 | ** קרן החיסכון לצבא הקבע מניות 392 | ** רעות-כללי 394 | ** קרן השתלמות עוצ"מ 395 | *** הלמן-אלדובי השתלמות אג"ח עד 25% במניות 396 | *** פסגות שיא השתלמות כללי 1424 | *** פסגות שיא השתלמות אגח עד 10% מניות 1429 | *** פסגות שיא השתלמות אג"ח ממשלת ישראל 1430 | ** רעות שיקלי 8597 | *** הפניקס השתלמות - מסלול אג"ח עד 25% מניות 408 | ** רום קרן השתלמות לעובדי רשויות מקומיות - קלאסי כללי 1433 | ** ק.ל.ע מסלול אג"ח עד 25% מניות 416 | *** הראל השתלמות אג"ח עד 20% מניות 418 | ** אחים ואחיות - מסלול כללי 419 | ** השתלמות רופאים כללי 420 | ** פ.ר.ח - כללי 1443 | *** אי.בי.אי השתלמות פאסיבי - מדדי אג"ח ממשלת ישראל 1445 | ** אומגה קרן השתלמות מסלול אג"ח 423 | ** קרן השתלמות עובדי חברת חשמל 1446 | ** אומגה קרן השתלמות מסלול מניות 1451 | ** קרן השתלמות לאקדמאים במדעי החברה והרוח מסלול אג"ח 1452 | ** קרן השתלמות לאקדמאים במדעי החברה והרוח מסלול מניות 1454 | ** השתלמות משפטנים מנייתי 1455 | ** השתלמות משפטנים ללא מניות 1456 | ** אחים ואחיות - מסלול ללא מניות 8628 | אקסלנס השתלמות פאסיבי-מדדי אג"ח עד 25% במדדי מניות 8629 | *** אקסלנס השתלמות פאסיבי - כללי 438 | ** קרן החיסכון לצבא הקבע כללי 8631 | *** אקסלנס השתלמות פאסיבי-מדדי אג"ח 8630 | *** אקסלנס השתלמות פאסיבי-מדדי מניות 9662 | מנורה השתלמות אג"ח עד 20% מניות 1471 | ** פ.ר.ח - אג"ח ללא מניות 1472 | ** השתלמות רופאים אג"ח ממשלת ישראל 8129 | אנליסט השתלמות כללי אג"ח עד 10% מניות 962 | *** אנליסט השתלמות כללי 963 | אנליסט השתלמות מניות 964 | *** אקסלנס השתלמות כללי 456 | *** כלל השתלמות כללי 968 | *** אקסלנס השתלמות מניות 1821 | ** ק.ס.מ מניות 1483 | *** הפניקס השתלמות -שיטת הפניקס 972 | אנליסט השתלמות אג"ח 973 | אנליסט השתלמות אג"ח ממשלת ישראל 1485 | הראל השתלמות אג"ח ללא מניות 1487 | מיטב השתלמות בניהול אישי 9676 | אינטרגמל השתלמות מעורב מחקה מדדים 1489 | הלמן-אלדובי השתלמות בניהול אישי 1491 | אינפיניטי השתלמות אג"ח קונצרני 7635 | ** עובדי מדינה - משולב-אג"ח עד 15 אחוז מניות 470 | מגדל השתלמות לבני 60 ומעלה 12256 | אלטשולר שחם השתלמות הלכה 481 | מיטב דש השתלמות כללי פאסיבי 482 | ** מורים על יסודי 2018 | *** פסגות שיא השתלמות הלכה 484 | ** מורים וגננות - מסלול כללי 485 | ** מורים תיכוניים - מסלול כללי 8679 | אנליסט השתלמות אג"ח עד 20% במניות 2024 | הפניקס השתלמות בניהול אישי 1515 | פסגות השתלמות בניהול אישי 1523 | *** הראל השתלמות מסלול כהלכה 2036 | ** מורים וגננות - מסלול אג"ח 2035 | ** מורים וגננות - מסלול הלכה 2038 | ** מורים תיכוניים - מסלול אג"ח 2039 | ** מורים וגננות - מסלול הלכה 2040 | ** מורים וגננות - מסלול אג"ח 2037 | ** מורים תיכוניים - מסלול הלכה 2042 | ** מורים תיכוניים - מסלול אג"ח 8701 | "אינטרגמל השתלמות"-מדד "מניות תל אביב 35" 1534 | כלל השתלמות הלכה 1535 | אנליסט השתלמות שקלי טווח קצר
def getMedianSer(lst):
df = pd.DataFrame([s.s for s in lst]).T
return wrap(df.median(axis=1), "median")
lst = [s for s in allKranot if s.index[0].year < 2010 and "כללי" in s.name]
lst = [s for s in lst if not " ** " in s.name] # exclude exclusive funds for specific sectors
lst = sorted(lst, key=lambda s: s.name.split("|")[1].strip(" *").split(" ")[0])
[s.name for s in lst]
['1204 | *** אי.בי.אי השתלמות כללי', '1083 | אינפיניטי השתלמות כללי', '1093 | *** אלטשולר שחם השתלמות כללי', "1290 | אלטשולר שחם השתלמות כללי ב'", '962 | *** אנליסט השתלמות כללי ', '964 | *** אקסלנס השתלמות כללי', '132 | *** הלמן-אלדובי השתלמות כללי', '154 | הראל השתלמות כללי', '1162 | ילין לפידות קרן השתלמות מסלול כללי', '456 | *** כלל השתלמות כללי', '579 | *** מגדל השתלמות כללי', '1157 | *** מגדל השתלמות ביג כללי לפחות 30% מניות', '880 | *** מיטב דש השתלמות כללי', '828 | *** מנורה מבטחים השתלמות כללי', '1059 | *** פסגות שיא השתלמות פאסיבי-כללי', '1218 | *** פסגות שיא השתלמות כללי', '396 | *** פסגות שיא השתלמות כללי']
base = get("VT:60|VFITX:40", mode="NTR")
basem = bom(base)
lst = [s.dropna() for s in lst]
medianSer = getMedianSer(lst)
show(lst, base, basem, base/medianSer, 1, ta=True, legend=False)
shown = show(lst, basem, ta=True, silent=True);
allbases = mix("VT", "VFITX", n=10, mode="NTR")
allbases = list(map(bom, allbases))
allbases = trimBy(allbases, shown)
showRiskReturn(shown + allbases)
showRiskReturn(allbases, setlim=False, lines=True, color="green")
showRiskReturn([allbases[6]], setlim=False, lines=True, color="red")
lst = trimBy(lst, lst)
lst = [s / s[0] for s in lst]
# finals = [(s, s[-1]) for s in lst]
# finals = sorted(finals, key=lambda x: x[1])
# medianSer = finals[len(finals) // 2][0]
medianSer = getMedianSer(lst)
lst2 = [s / medianSer for s in lst]
show(lst2, base, ta=False, legend=False)
[<__main__.Wrapper at 0x7fd7fa22be48>, <__main__.Wrapper at 0x7fd7fa2d2ba8>, <__main__.Wrapper at 0x7fd7fa2d2a58>, <__main__.Wrapper at 0x7fd7fa2d2550>, <__main__.Wrapper at 0x7fd7fa2d24a8>, <__main__.Wrapper at 0x7fd7fa2d2828>, <__main__.Wrapper at 0x7fd7fa2d2b00>, <__main__.Wrapper at 0x7fd7fa2d2208>, <__main__.Wrapper at 0x7fd7f99f6898>, <__main__.Wrapper at 0x7fd7f99f66d8>, <__main__.Wrapper at 0x7fd7f9d4e7f0>, <__main__.Wrapper at 0x7fd7f95d44a8>, <__main__.Wrapper at 0x7fd7f95d4cf8>, <__main__.Wrapper at 0x7fd7f95d4588>, <__main__.Wrapper at 0x7fd7f95d40f0>, <__main__.Wrapper at 0x7fd7f95d4828>, <__main__.Wrapper at 0x7fd7f95d4208>, <__main__.Wrapper at 0x7fd7f95d4940>]
# be sure to save before you publish
# when done, you will get a public link to an HTML file with the results
publish()