0
fokus pada
0
Pengikut

Skrip sederhana tingkat pemula Python - statistik pasar berkelanjutan satu sisi

Dibuat di: 2018-07-23 15:53:45, diperbarui pada: 2018-07-24 12:27:27
comments   4
hits   2168

Saya tidak tahu apa-apa, saya tidak tahu apa-apa, saya tidak tahu apa-apa.

Hari ini saya mengetikkan sebuah skrip kecil yang digunakan untuk menghitung berapa kali terjadi (meningkat atau turun secara terus menerus) dalam 50 hari terakhir. Saya ingin menulisnya. Mengidentifikasi Guncangan dan Tren Sangat Mudah! https://www.fmz.cn/bbs-topic/1638 Pemikiran ini digunakan untuk menilai tren. Tren naik dan turun dapat digunakan. Terima kasih atas artikel ini, tapi ketika saya melakukan tes, saya mengatur siklus K-line, yang hanya dapat diperiksa kembali hingga 50 hari, dan tidak ada yang bisa dilakukan dengan pengaturan periode waktu, sehingga tidak ada data untuk mendukung asumsi tersebut.

Hasilnya adalah sebagai berikut:

Skrip sederhana tingkat pemula Python - statistik pasar berkelanjutan satu sisi

Output berurutan adalah: id>Time>Peringkat harga tertinggi di periode>Peringkat harga terendah di periode>Peringkat status penurunan>Kontinuitas

  • Menyaring penurunan tunggal dan kondisi paralel seperti: naik > turun > naik > rata > turun > rata > tinggi > keadaan tanpa kontinuitas ini tidak dicetak, tidak membantu analisis.
  • Dengan menggunakan harga tertinggi periode berikutnya dengan harga tertinggi periode ini, Anda juga dapat menggunakan harga tertinggi periode berikutnya. Low dengan periode ini. High, seperti di atas.
  • Saya tidak tahu apa yang terjadi, tapi saya tidak tahu apa yang terjadi, saya tidak tahu apa yang terjadi, saya tidak tahu apa yang terjadi, saya tidak tahu apa yang terjadi.
  • Jangan terlalu tinggi, jangan menulis Python.

Apa gunanya?

  • Saya pikir itu cukup berguna, setidaknya lebih baik daripada mengunyahnya, tetapi siklus waktu terlalu singkat untuk melihat pola mengunyahnya.
  • Tapi jika kita melihat dari garis matahari, 12 hari berturut-turut ada kenaikan harga satu sisi, berapa besar kemungkinan kenaikan harga pada hari ke-13?
  • Saya punya ide untuk melakukan tes ini, dan saya akan mencoba untuk mengubah cara berpikir saya.
  • Selamat datang, saya seorang pemula yang sedang dalam proses normal.

Berikut adalah kode yang disederhanakan.


def main():
    k_line = exchange.GetRecords(PERIOD_M1) #设置1分钟K线数据
    i1 = 0 #i1 i2分别记录涨、跌次数
    i2 = 0
    j_c = 0 #用作记录所有持续行情次数总和的变量
    for i,k_line_single in enumerate(k_line): #i为记录循环次数 从0开始 k_line_single为单行记录文本
        otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", time.localtime(k_line_single.Time / 1000))#时间戳转换代码
        state_text = "" #重置state_text 避免状态连续继承  状态文本
        Duration = "" #重置持续行情次数变量
        if k_line_single.High > k_line[i-1].High: #判断最高价高于前一周期最高价的情况         
            i2 = 0 #重置连续下跌计数变量
            if k_line[i-1].High > k_line[i-2].High or k_line[i+1].High > k_line_single.High: #当高于前一周期或后一周期高于此周期价
                state_text = "连续上涨UP UP UP!"
                i1 += 1 #记录连续上涨次数
        elif k_line_single.High < k_line[i-1].High: #判断不为持平状态  
            i1 = 0
            if k_line[i-1].High < k_line[i-2].High or k_line[i+1].High < k_line_single.High:#当前一周期价格低于前前一周期 或 后一周期价格低于当前周期,表示一定是连续下跌
                state_text = "连续下跌LOW LOW !" 
                i2 += 1 #记录连续下跌次数
        else:
            i1 = 0 #重置连续行情次数
            i2 = 0
        if state_text == "连续上涨GO GO GO!" or state_text == "连续下跌LOW LOW !": #只有当连续上涨或下跌时 才会打印结果 
            j_c += 1
            Duration = "Duration:",i1 + i2 #连续单边行情持续次数
            Log(i+1,"-- Time:",otherStyleTime,"-- High:",k_line_single.High,"-- Low:",k_line_single.Low,"--》",state_text,Duration)
    Log("运行完毕。。符合条件的总数为:",j_c)

Berikutnya adalah kode yang tidak disederhanakan, 21 baris lebih banyak dari yang di atas.

def main():
    k_line = exchange.GetRecords(PERIOD_M1)
    state_text = "" #状态文本
    i1 = 0
    i2 = 0
    i3 =0
    state_3 = 0 #行情状态 涨=1 跌=2 平=3
    j_c = 0 #用作记录所有持续行情次数总和的变量
    for i,k_line_single in enumerate(k_line): #i为记录循环次数 从0开始 k_line_single为单行记录文本
        timeStamp = k_line_single.Time / 1000 #时间戳转换代码开始
        timeArray = time.localtime(timeStamp)
        otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray)#时间戳转换代码结束
        
        if k_line_single.High > k_line[i-1].High: #判断最高价高于前一周期最高价的情况
            state_text = "价格出现上涨"
            i2 = 0
            i3 = 0
            state_3 = 1
            if k_line[i-1].High > k_line[i-2].High or k_line[i+1].High > k_line_single.High: #当高于前一周期或后一周期高于此周期价
                state_text = "连续上涨GO GO GO!"
                i1 += 1
        else:
            if k_line_single.High != k_line[i-1].High:
                state_text = "价格出现下跌"
                i1 = 0
                i3 = 0
                state_3 = 2
                if k_line[i-1].High < k_line[i-2].High or k_line[i+1].High < k_line_single.High:
                    state_text = "连续下跌LOW LOW !"
                    i2 += 1
            else:
                state_text = "价格相比持平"
                i1 = 0
                i2 = 0
                state_3 = 3
                if k_line[i-1].High == k_line[i-2].High:# or k_line[i+1].High == k_line_single.High:
                    state_text = "连续持平PING PING !"
                    i3 = 0 #不调试持平持续数量了
        if state_3 != 3: #不打印持平的结果
            Duration = i1 + i2 + i3
            if Duration == 0:
                Duration = ""
            else:
                Duration = "Duration:",i1 + i2 + i3
            if i1 != 0 or i2 != 0: #只有当连续上涨或下跌时 才会打印结果
                j_c += 1
                Log(i+1,"-- Time:",otherStyleTime,"-- High:",k_line_single.High,"-- Low:",k_line_single.Low,"--》",state_text,Duration)
    Log("运行完毕。。符合条件的总数为:",j_c)