Perkenalan Python Scripts sederhana - Statistik Serial Unilateral

Penulis:bb, Dibuat: 2018-07-23 15:53:45, Diperbarui: 2018-07-24 12:27:27

Saya baru-baru ini belajar kuantitas, dan tidak memiliki dasar, mengetuk sesuatu perlahan-lahan.

Hari ini saya mengetuk skrip kecil untuk menghitung jumlah pasar sepihak (meningkat atau turun secara berturut-turut) yang terjadi dalam 50 hari terakhir. Saya ingin menulis ↓. Anda dapat mengidentifikasi pergolakan dan tren, itu sangat sederhana!https://www.fmz.cn/bbs-topic/1638Dengan menggunakan low baru pada siklus berikutnya untuk membandingkan dengan high baru pada siklus ini, ide ini dapat digunakan untuk menentukan tren. Terima kasih atas artikel ini, tapi ketika saya mengujinya, saya mengatur siklus garis K, yang hanya dapat diulang maksimal 50 hari, dan pengaturan rentang waktu tidak berfungsi, jadi tidak ada dukungan data.

Hasilnya adalah sebagai berikut:

img

Urutan output adalah: id> Time> harga tertinggi pada tahap> harga terendah pada tahap> harga jatuh> jumlah yang berlangsung

  • Filter satu kali jatuh turun dan terus berlanjut, seperti:















































































    <
  • Dengan menggunakan harga tertinggi dari siklus berikutnya untuk membandingkan harga tertinggi dari siklus ini, Anda juga dapat menggunakan harga tertinggi dari siklus berikutnya. Low untuk membandingkan siklus ini. High untuk membandingkan, seperti di atas.
  • Waktu yang diperoleh untuk melakukan pengukuran adalah sangat memalukan, misalnya garis 3 menit adalah 00:57>01:00>01:57>02:00>02:57... Mengapa???
  • Saya tidak akan menulis Python, saya tidak akan menulisnya.

Apakah ada yang bisa digunakan?

  • Saya pikir itu berguna, setidaknya lebih baik daripada menatap, tetapi siklus waktu terlalu pendek dan tidak dapat melihat hukum menatap.
  • Namun jika kita melihat pasar saat ini, menurut garis waktu, telah terjadi kenaikan pasar satu sisi selama 12 hari berturut-turut, berapa kemungkinan kenaikan pada hari ke-13?
  • Saya adalah orang yang memiliki ide untuk melakukan tes ini, dan saya tidak ingin orang lain senang, tapi saya harus mengubah pikiran saya untuk mencobanya.
  • Selamat bertukar pikiran, saya adalah burung cucuk normal.

Di bawah ini adalah beberapa 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)

Kemudian ada kode yang tidak disempurnakan yang memiliki efek yang sama, lebih dari 21 baris kode.

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 banyak

Tidak adaTerima kasih untuk berbagi, ada satu versi lagi, forum ini dalam format markdown.

bbMaaf, kode yang saya kirim hanya setengah diuraikan, jadi silakan.

QQ89520Terima kasih untuk berbagi.

bbTerima kasih. Terima kasih.