Dekstop Programming 28 Nov 2020 33 views 0 komentar

Code

Code
import os
import mysql.connector
import xlwt

con = mysql.connector.connect(
  host="localhost",
  user="root",
  password="12345678",
  database="kinz7761_project"
)

ma_arr = [5,20,50,60,100,120,200]

cursor = con.cursor()
sql = "select Date,Ticker,Close from saham_screening where Date='2020-11-24' limit 1"
cursor.execute(sql)
record = cursor.fetchall()
for row in record:
    date = row[0]
    ticker = row[1]
    close = row[2]
    sma = []
    wma = []
    print(ticker)
    
    for ma in ma_arr:
        sql = "select Close from saham_screening where Date <= '"+str(date.strftime("%Y/%m/%d"))+"' and Ticker='"+ticker+"' order by Date Desc Limit "+str(ma)
        cursor.execute(sql)
        record2 = cursor.fetchall()
        if len(record2) == ma :
            #SMA
            close_sma = 0
            for row2 in record2:
                close_sma = close_sma + row2[0]

            sma.append(round(close_sma/ma,0))
            
            #WMA
            close_wma = 0
            ma_wma = ma
            period_wma = 0
            
            
            for row3 in record2: 
                close_wma = close_wma + (ma_wma * row3[0])
                period_wma = period_wma + ma_wma
                ma_wma = ma_wma -1

            wma.append(round(close_wma/period_wma,0))
    
    
    #Envelope
    sql = "select Close from saham_screening where Date <= '"+str(date.strftime("%Y/%m/%d"))+"' and Ticker='"+ticker+"' order by Date Desc Limit 5"
    cursor.execute(sql)
    record3 = cursor.fetchall()
    close_envelope = 0
    for row4 in record3:
        close_envelope = close_envelope + row4[0]
    sma_envelope = close_envelope/5
    deviasi = 5/100

    upper_envelope = round(float(sma_envelope) + (float(sma_envelope) * float(deviasi)),0)
    mid_envelope = round(float(sma_envelope),0)
    lower_envelope = round(float(sma_envelope) - (float(sma_envelope) * float(deviasi)),0)

    """
    #Stochastic
    cursor.execute("Select a.Low,a.High from (select Date,Low,High FROM saham_screening where date <= '"+str(date.strftime("%Y/%m/%d"))+"' and Ticker='"+ticker+"' order by Date Desc Limit 14) as a order by a.Date asc Limit 1")
    record4 = cursor.fetchall()
    stochastic_k = 0
    stochastic_k2 = 0
    for row5 in record4:
        stochastic_k = round(((close - row5[0]) / (row5[1] - row5[0])) * 100,0)

    cursor.execute("select Date FROM saham_screening where date < '"+str(date.strftime("%Y/%m/%d"))+"' and Ticker='"+ticker+"' order by Date Desc Limit 2")
    record5 = cursor.fetchall()
    for row6 in record5:
        cursor.execute("Select a.Low,a.High from (select Date,Low,High FROM saham_screening where date <= '"+str(row6[0].strftime("%Y/%m/%d"))+"' and Ticker='"+ticker+"' order by Date Desc Limit 14) as a order by a.Date asc Limit 1")
        record6 = cursor.fetchall()
        for row7 in record6:
            stochastic_k2 = stochastic_k2 + round(((close - row7[0]) / (row7[1] - row7[0])) * 100,0)
    
       
    stochastic_d = round((stochastic_k + stochastic_k2)/3,0)
    print("--Stochastic----")
    print(stochastic_k)
    print(stochastic_d)
    """

    sql = "update saham_screening set sma5="+str(sma[0])+",sma20="+str(sma[1])+",sma50="+str(sma[2])+",sma60="+str(sma[3])+",sma100="+str(sma[4])+",sma120="+str(sma[5])+",sma200="+str(sma[6])+",wma5="+str(wma[0])+",wma20="+str(wma[1])+",wma50="+str(wma[2])+",wma60="+str(wma[3])+",wma100="+str(wma[4])+",wma120="+str(wma[5])+",wma200="+str(wma[6])+",Envelope_Upper="+str(upper_envelope)+",Envelope_Mid="+str(mid_envelope)+",Envelope_Lower="+str(lower_envelope)+" where Date = '"+str(date.strftime("%Y/%m/%d"))+"' and Ticker='"+ticker+"' "
    cursor.execute(sql)
          

con.commit()

cursor.close()
con.close()




Tags Artikel: #Code

Bagikan artikel ini:

Komentar (0)

Belum ada komentar. Jadilah yang pertama memberikan tanggapan!

Tinggalkan Komentar