Untitled

 avatar
unknown
plain_text
a year ago
4.7 kB
2
Indexable
                def point(df, pivot_length = 14):   
                    trend = 1
                    pivot_high = []
                    pivot_low = []
                    pivot_length_index = 0

                    for i in range(pivot_length, len(df)):
                        if trend == 1:
                            low_mum = df['low'][i-pivot_length:i].min()
                            if df['low'][i] <= low_mum:
                                pivot_high.append(df['high'][pivot_length_index:i].max())#'index': pivot_length_index,'high': 
                                trend = -1
                                pivot_length_index = i
                        else:
                            high_mum = df['high'][i-pivot_length:i].max()
                            if df['high'][i] >= high_mum:
                                pivot_low.append(df['low'][pivot_length_index:i].min())#'index': pivot_length_index, 'low':                                   
                                trend = 1
                                pivot_length_index = i   
                        
                    return pivot_high, pivot_low
                
                high_point, low_point = point(df)   
                #print(coin, high_point[-2], high_point[-1], low_point[-2], low_point[-1])
                
                """high_index_numarasi = df.index[df['high'] == high_point[-2]][-1]
                low_index_numarasi = df.index[df['low'] == low_point[-2]][-1]
                
                if high_index_numarasi < low_index_numarasi:   
                    bu_ab = ((high_point[-2] - low_point[-2]) / low_point[-2]) * 100          
                    bu_cd =  ((high_point[-1] - low_point[-1]) / low_point[-1]) * 100 
                    if max(bu_ab, bu_cd) - min(bu_ab, bu_cd) < 0.5: 
                        print(coin, "Bullish", bu_ab, bu_cd)
                    
                else:
                    be_ab = ((high_point[-2] - low_point[-2]) / low_point[-2]) * 100          
                    be_cd =  ((high_point[-1] - low_point[-1]) / low_point[-1]) * 100
                    if max(be_ab, be_cd) - min(be_ab, be_cd) < 0.5:
                        print(coin, "Bearish", be_ab, be_cd)"""
                        
                                                   
                def fibCalculate(A, B):
                    value_618 = A + ((B - A) * 618 / 1000)                    
                    value_786 = A + ((B - A) * 786 / 1000)
                    value_1272 = A + ((B - A) * 1272 / 1000)
                    value_1618 = A + ((B - A) * 1618 / 1000)
                    return value_618, value_786, value_1272, value_1618
                
                high_index_numarasi = df.index[df['high'] == high_point[-2]][-1]
                low_index_numarasi = df.index[df['low'] == low_point[-2]][-1]
                
                if high_index_numarasi > low_index_numarasi:
                    A_point = low_point[-2]
                    B_point = high_point[-2]
                    C_point = low_point[-1]
                    D_point = high_point[-1]
                    
                    fib_618, fib_786, fib_1272, fib_1618 = fibCalculate(A_point, B_point)
                    
                    kural1 = C_point >= A_point
                    kural2 = D_point >= B_point
                    kural3 = C_point > A_point and C_point < B_point
                    kural4 = fib_618 >= C_point < fib_786
                    kural5 = B_point > fib_1618 > D_point > fib_1272

                    if kural1 and kural2 and kural3 and kural4 and kural5:
                        print(f"{coin} {zaman} A: {A_point} ==> B: {B_point} C: {C_point} ==> D: {D_point} Bearish AB=CD")
                    
                else:    
                    A_point = high_point[-2]
                    B_point = low_point[-2]
                    C_point = high_point[-1]
                    D_point = low_point[-1]
                    
                    fib_618, fib_786, fib_1272, fib_1618 = fibCalculate(A_point, B_point)
                    
                    kural1 = C_point <= A_point
                    kural2 = D_point <= B_point
                    kural3 = C_point < A_point and C_point < B_point
                    kural4 = fib_618 <= C_point > fib_786
                    kural5 = B_point < fib_1618 < D_point < fib_1272
                    
                    if kural1 and kural2 and kural3 and kural4 and kural5:
                        print(f"{coin} {zaman} A: {A_point} ==> B: {B_point} C: {C_point} ==> D: {D_point} Bullish AB=CD")
                        
Editor is loading...
Leave a Comment