0
konzentrieren Sie sich auf
0
Anhänger

Einfaches Python-Skript für Einsteiger - Statistiken zum einseitigen kontinuierlichen Markt

Erstellt in: 2018-07-23 15:53:45, aktualisiert am: 2018-07-24 12:27:27
comments   4
hits   2168

Ich habe in letzter Zeit viel gelernt, aber keine Grundlagen geschaffen.

Heute wurde ein kleines Skript geschrieben, um die Anzahl der Einseitigkeiten zu ermitteln, die in den letzten 50 Tagen aufgetreten sind. Ich wollte es schreiben. Es ist einfach, Trends und Schwankungen zu erkennen. https://www.fmz.cn/bbs-topic/1638 Der Gedanke, Trends zu beurteilen, besteht darin, neue Tiefststände der letzten Periode mit neuen Höchstständen dieser Periode zu vergleichen. Aufwärts- und Abwärtstrends können verwendet werden. Danke für den Beitrag, aber ich habe beim Testen eine K-Linien-Periode eingestellt, die maximal 50 Tage zurückläuft, und die Zeitspanne ist auch nicht relevant, so dass keine Daten zur Unterstützung der Annahme vorhanden sind.

Das Ergebnis lautet:

Einfaches Python-Skript für Einsteiger - Statistiken zum einseitigen kontinuierlichen Markt

Die Reihenfolge der Ausgabe ist: id>Time>Phasenhöchstpreis>Phasentiefstpreis>Phasenuntergang>Zahlung

  • Die Filterung von Einmal- und Parallelzuständen wie Auf/Ab/Ganz/Ganz/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/Gewöhnlich/
  • Vergleichen Sie den Höchstpreis der nächsten Periode mit dem Höchstpreis dieser Periode. Vergleichen Sie den Höchstpreis der nächsten Periode mit dem Höchstpreis der nächsten Periode. Vergleichen Sie den Höchstpreis der nächsten Periode mit dem Höchstpreis dieser Periode.
  • Die Zeit, in der die Bewegung erfasst wurde, war sehr peinlich, zum Beispiel die 3-Minuten-Linie, die 00:57 Uhr> 01:00 Uhr> 01:57 Uhr> 02:00 Uhr> 02:57 Uhr.
  • Das ist nicht so schwierig, wie es in Python ist.

Ist das hilfreich?

  • Ich finde das sehr nützlich, zumindest besser als das Züchten, aber die Zeitspanne ist zu kurz, um das Züchten zu sehen.
  • Aber wenn wir jetzt in einer Situation sind, in der es nach der Sonnenlinie 12 Tage lang eine einseitige Erhöhung gibt, wie groß ist dann die Wahrscheinlichkeit, dass es am 13. Tag zu einer Erhöhung kommt?
  • Ich habe mir diese Idee ausgedacht, um diesen Test durchzuführen, und ich habe nicht nur alle beliebt, sondern auch andere Ideen, um es zu versuchen.
  • Willkommen, ich bin ein normaler Neuling.

Hier ist der vereinfachte Code.


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)

Und dann kommt noch ein Code, der nicht veredelt ist, aber 21 Zeilen mehr hat.

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)