Perkenalan Python skrip kecil yang mudah - Perkhidmatan berterusan satu sisi statistik

Penulis:bb, Dicipta: 2018-07-23 15:53:45, Dikemas kini: 2018-07-24 12:27:27

Baru-baru ini saya belajar kuantiti, tidak mempunyai asas, mengetuk sesuatu perlahan-lahan.

Hari ini, saya mengetuk skrip kecil yang digunakan untuk menganggarkan jumlah satu sisi pasaran (meningkat atau jatuh secara berturut-turut) dalam tempoh 50 hari terakhir (seperti platform OK analog hanya boleh mengulang 50 hari?). Saya mahu menulis ↓. Yang penting, anda perlu mengesan apa yang berlaku dan apa yang berlaku.https://www.fmz.cn/bbs-topic/1638Dengan menggunakan paras rendah baru pada kitaran berikutnya untuk membandingkan paras tinggi baru pada kitaran ini, idea ini digunakan untuk menentukan trend. Terima kasih kepada penulis untuk artikel ini, tetapi ketika saya menguji, saya menetapkan kitaran K-line, yang hanya dapat mengulangi 50 hari, dan tempoh masa yang ditetapkan tidak berfungsi, jadi tidak ada data yang disokong.

Hasilnya adalah seperti berikut:

img

Urutan output ialah: id>Time>harga tertinggi peringkat>harga terendah peringkat>harga penurunan>pengeluaran berterusan

  • Penapisan berturut-turut turun turun dan mengekalkan keadaan selari seperti: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
  • Untuk membandingkan harga tertinggi pada kitaran seterusnya dengan harga tertinggi pada kitaran ini, anda juga boleh menggunakan harga tertinggi pada kitaran seterusnya.
  • Jika anda ingin mengetahui lebih lanjut mengenai masa yang digunakan untuk mengesan semula, maka anda perlu tahu bahawa masa yang digunakan untuk mengesan semula adalah sangat memalukan, contohnya, garis 3 minit adalah 00:57>01:00>01:57>02:00>02:57... mengapa???
  • Permintaan untuk tidak terlalu sombong dan tidak menulis Python.

Ada yang boleh dihidangkan?

  • Saya rasa ia berguna, lebih baik daripada menonton, tetapi tempoh masa terlalu pendek dan tidak dapat melihat undang-undang menonton.
  • Tetapi jika kita melihat pasaran sekarang, mengikut garis hari, telah meningkat secara bersendirian selama 12 hari berturut-turut, apakah kemungkinan kenaikan pada hari ke-13?
  • Saya telah membuat ujian ini dengan idea yang sama, dan saya tidak mahu menyusahkan orang lain, tetapi saya perlu mengubah fikiran saya untuk mencuba.
  • Selamat bertukar, saya adalah burung cucuk yang normal.

Berikut adalah beberapa kod 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)

Kemudian, satu lagi yang tidak mempunyai kesan yang sama seperti yang ada pada kod yang lebih sederhana, 21 baris lebih banyak daripada yang ada 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)

Lebih lanjut

SifarTerima kasih kerana berkongsi, ada satu lagi edisi, forum ini adalah dalam format markdown.

bbMaaf, kod yang saya hantar hanya separuh diselesaikan, jadi cubalah.

qq89520Terima kasih kerana berkongsi.

bbTerima kasih, zero. Terima kasih!