מהיתרונות הבולטים שיש לנו בעולם האלגו טרייד הוא כמובן האופטימיזציה.
בכל המאמרים שתקראו באינטרנט, ספרים ובלוגים, תמצאו שכולם משתמשים באינדיקטור RSI באורך 14 עם ערכי קניות יתר 70 ומכירות יתר ב 30 .
דהיינו RSI מתחת ל 30 ניתן להכנס לעסקת קניה ו RSI מעל 70 ניתן לצאת מעסקת הקניה LONG או להיפך – להכנס לעסקת מכירה SHORT
מה לדעתכם יצטרכו לעשות כל אלה שמפרסמים מאמר על RSI-14 כאשר נבקש מהם לבדוק RSI-10 או RSI-6 או אפילו RSI-2 ?
בדיוק – כנראה שהם יצטרכו לכתוב את ההסטוריה שלהם מחדש.
אנחנו לא צריכים כי אנחנו יכולים לבצע מחקר שוק בקלות עם קטע קוד של RSI שבו נבקש מהתוכנה לבדוק איזה RSI יותר טוב
אינדיקטור RSI 2 או אולי 4 או 6 או 8 וכן הלאה…
להלן תוצאות המחקר

שימו לב לגרף היומי של תעודת הסל SPY של ה S&P500
בגרף רואים 3 אינדיקטורי RSI
האינדיקטור העליון הינו RSI-14 | האמצעי RSI-10 | התחתון RSI-4
שימו לב לרמת הרגישות של כל אחד מהם…
כמובן ש RSI-4 הרבה יותר רגיש ותזזיתי מ RSI-14 ולכן אציג לכם את המחקר שהתבצע על ערכי אורך ה RSI שכלל בדיקה של
RSI ערך 2 עד 14 בקפיצות של 2 (דהיינו 2-4-6-8-10-12 ו 14)

שימו לב ל 2 נתונים מעניינים.
1. RSI-2 ניצח בגדול כאן את התחרות באופטימיזציה פשוטה על פני 10 שנים
2. בריבוע הכתום תוכלו לראות גם שיש ל RSI-2 כמות עסקאות דיי טובה ולכן ברמה הסטטיסטית – אני באופן אישי אכן סומך על התוצאה הזו וכמובן על האינדיקטור RSI שמצליח להביא לי תוצאות טובות שוב ושוב

להלן הקוד עבור משתמשי שפת Tradestation וגם למשתמשי Multicharts
Inputs:
Capital(50000),
ReinvestProfts(0),
EnableRegime(0),
BuyThreshold(30),
SellThreshold(55),
RegimeLookback(200),
RSILookback(4);
Variables:
myCapital(0),
SharesToBuy(0),
myRSI(0),
BullMarket(false),
BearMarket(false);
if ( EnableRegime = 1 ) then
Begin
BullMarket = Close > Average(Close,RegimeLookback);
BearMarket = Close < Average(Close,RegimeLookback);
End
Else
Begin
BullMarket = true;
BearMarket = true;
End;
myRSI = RSI(Close,RSILookback);
If marketposition = 0 Then
Begin
if ( BullMarket ) and ( myRSI < BuyThreshold ) then
Begin
If ( ReinvestProfts = 1 ) then
myCapital = Capital + Netprofit
else
myCapital = Capital;
If ( Close > 0 ) then SharesToBuy = intportion( myCapital/Close ) Else SharesToBuy = 0; Buy(“LE”) SharesToBuy shares next bar at market; End;
End;
if ( myRSI >= SellThreshold ) then
Sell(“SX”) next bar at market;