بی نظیر چارت
آموزش
دسترسی سریع
کریپتو

بی نظیر چارت

ورود | عضویت
logo بی نظیر چارت
ورود | عضویت

پیشنهاد همکاری

خوشحالیم که بینظیر چارت را انتخاب کرده اید.

پیشنهاد همکاری خود را در یکی از پیام رسان های زیر ارسال نمایید.

تبلیغات

خوشحالیم که بینظیر چارت را انتخاب کرده اید.

نام محصول وحوزه فعالیت را به پشتیبانی در پیام رسان های زیر ارسال نمایید.

فیلتر واگرایی rsi رایگان

سطح دوره پیشرفته
آخرین بروزرسانی 1403/09/15

کد فیلتر

true==function()
{
var findpivot = function(day)
    {
        var dayp = 0;
        var type = 0;
        var pivot = [];
        var count = 0;
        
        
        for (var j = 1;j<=day;j++)
        {
            if(j<=4)
            for (var k = j-1;k<=j+3;k++)
            {
               if(typeof [ih][j] == "undefined" ||typeof [ih][k] == "undefined")continue;
                
                if([ih][j].PDrCotVal>[ih][k].PDrCotVal)
                {
                    count ++
                }
                if([ih][j].PDrCotVal<[ih][k].PDrCotVal)
                {
                    count --
                }
                if(k==j+3&&type===0)
                {
                    //pivot +
                    if(count>=4)
                    {
                        type = 1;
                        dayp=j;
                        pivot.push(type);
                        pivot.push(dayp);
                    }
                    //pivot -
                    if(count<=-4)
                    {
                        type = -1;
                        dayp=j
                        pivot.push(type)
                        pivot.push(dayp)
                    }
                    count = 0;
                }
                }
                

            //start pivot
            if(j>4)
            for (var i = j-4;i<=j+4;i++)
            {
                if(typeof [ih][j] == "undefined" ||typeof [ih][i] == "undefined")continue;
                
                if([ih][j].PDrCotVal>[ih][i].PDrCotVal)
                {
                    count ++
                }
                if([ih][j].PDrCotVal<[ih][i].PDrCotVal)
                {
                    count --
                }
                if(i==j+4)
                {
                    //pivot +
                    if(count>=7)
                    {
                        type = 1;
                        dayp=j;
                        pivot.push(type);
                        pivot.push(dayp);
                    }
                    //pivot -
                    if(count<=-7)
                    {
                        type = -1;
                        dayp=j
                        pivot.push(type)
                        pivot.push(dayp)
                    }
                    count = 0;
                }
            }
            //end pivot
        }


        return pivot
    };
    
    function rsi(day,start){
        
        var len = [ih].length;
        
        for(var i=0;i<len-1;i++){
            
            [ih][i].Change=[ih][i].PDrCotVal-[ih][i+1].PDrCotVal;
            
            if([ih][i].Change>=0){
                
                [ih][i].Gain=[ih][i].Change;
                [ih][i].Loss=0;
                
            }else{
                
                [ih][i].Gain=0;
                [ih][i].Loss=(-1)*[ih][i].Change;
                
            }
            
        }
        
        var SumGain=0;
        var SumLoss=0;
        for(var i=len-1-day;i<len-1;i++){
            
            SumGain+=[ih][i].Gain;
            SumLoss+=[ih][i].Loss;
            
        }
        var FirstAvgGain=SumGain/day;
        var FirstAvgLoss=SumLoss/day;
        
        
        for(var i=len-1-day;i>=0;i--){
            
            if(i==len-1-day){
                
                [ih][i].AvgGain=FirstAvgGain;
                [ih][i].AvgLoss=FirstAvgLoss;
                
            }else{
                
                [ih][i].AvgGain=(([ih][i+1].AvgGain*(day-1))+[ih][i].Gain)/day;
                [ih][i].AvgLoss=(([ih][i+1].AvgLoss*(day-1))+[ih][i].Loss)/day;
                
            }
            
            [ih][i].RS=[ih][i].AvgGain/[ih][i].AvgLoss;
            [ih][i].RSI=100-(100/(1+[ih][i].RS));
            
        }
        
        return ([ih][start].RSI).toFixed(2);
        
    }
    
 var divergence = function(per)
 {
     var lptype=0;
     var lpdate=0;
     var pivot = [];
     pivot = findpivot(per)
     //مشخص کردن روز و نوع آخرین پیووت تشکیل شده
     //دنبال واگرایی در پیووت های ماژور هستیم فقط یک استثنا داریم که اگر آخرین پیووت تشکیل شده
     //مینور باشد اونم در نظر میگیریم
     if(pivot.length>1)
     {
     lptype=pivot[0]
     lpdate=pivot[1]
     }
   //اگر آخرین پیووت تشکیل شده دره باشد
   if(lptype<0)
   {
       var lpprice =[ih][lpdate].PDrCotVal
       var lprsi =rsi(14,lpdate)
       var daychek =[]
       var day = 0
       var chprice = 0
       var chrsi = 0
       var rp = 0
       var rr = 0
       var dif = 0
       var rpf = 0
       var rrf = 0
       var diff = 0
       var dayf = 0
       var difchek = 0
       var rep1 = "ندارد"
       var rep2 = "0"
       var rep3 = 0
       
       //از صفر شروع کردیم که دی چک خالی نمونه
       for(var i = 0; i<pivot.length;i+=2)
       {
           if(pivot[i]<0)
               daychek.push(pivot[i+1])
           
       }
       for(k=0;k<daychek.length;k++)
       {
           day = daychek[k]
           chprice = [ih][day].PDrCotVal
           chrsi = rsi(14,day)
           rp = (((lpprice-chprice)/chprice)*100).toFixed(2)
           rr = (lprsi-chrsi).toFixed(2)
           dif = (Math.abs(rp)+Math.abs(rr)).toFixed(2)
           if(dif>difchek)
           {
               difchek=dif
               dayf = day
               diff = dif
               rrf = rr
               rpf = rp
           }
       }
       
       if (dayf != 0)
       {
       if(rpf<0&&rrf>0)
       {
           rep1 = "normal positive divergence"
           rep2 = lpdate + "and" + dayf
           rep3 = diff
       }
       if(rpf>0&&rrf<0)
        {
           rep1 = "hieden positive divergence"
           rep2 = lpdate + "and" + dayf
           rep3 = diff
       }
       }
       
       return [rep1,rep2,rep3]
       
   }
   
  //اگر آخرین پیووت تشکیل شده قله باشد
  if(lptype>0)
  {
       var lpprice =[ih][lpdate].PDrCotVal
       var lprsi =rsi(14,lpdate)
       var daychek =[]
       var day = 0
       var chprice = 0
       var chrsi = 0
       var rp = 0
       var rr = 0
       var dif = 0
       var rpf = 0
       var rrf = 0
       var diff = 0
       var dayf = 0
       var difchek = 0
       var rep1 = "ندارد"
       var rep2 = "0"
       var rep3 = 0
       
       //از صفر شروع کردیم که دی چک خالی نمونه
       for(var i = 0; i<pivot.length;i+=2)
       {
           if(pivot[i]>0)
               daychek.push(pivot[i+1])
           
       }
       for(k=0;k<daychek.length;k++)
       {
           day = daychek[k]
           chprice = [ih][day].PDrCotVal
           chrsi = rsi(14,day)
           rp = (((lpprice-chprice)/chprice)*100).toFixed(2)
           rr = (lprsi-chrsi).toFixed(2)
           dif = (Math.abs(rp)+Math.abs(rr)).toFixed(2)
           if(dif>difchek)
           {
               difchek=dif
               dayf = day
               diff = dif
               rrf = rr
               rpf = rp
           }
       }
       if (dayf != 0)
       {
       if(rpf<0&&rrf>0)
       {
           rep1 = "hieden negative divergence"
           rep2 = lpdate + "and" + dayf
           rep3 = diff
       }
       if(rpf>0&&rrf<0)
        {
           rep1 = "normal negative divergence"
           rep2 = lpdate + "and" + dayf
           rep3 = diff
       }
       }
       return [rep1,rep2,rep3]

  }
  
  if(lptype==0)
  {
      return lptype;
  }
 };
 var final = []
 final = divergence(50)
if(final[2]>25)
{

return true;
}
}()
 

هنوز بازخوردی برای این محصول ثبت نشده است

برچسب ها