Introducción a Python: un pequeño guión sencillo - Estadísticas de un lado continuo

El autor:B.B., Creado: 2018-07-23 15:53:45, Actualizado: 2018-07-24 12:27:27

Recientemente estoy estudiando cuantificación y no tengo fundamento, golpeando algo lentamente.

Hoy se ha tocado un pequeño guión para calcular el número de veces que se han producido tendencias unilaterales en los últimos 50 días (que parecen ser solo 50 días con la plataforma OK analogue de retrospectiva) (aumentos o caídas continuos). Se trataba de un ↓. ¡Realmente es muy sencillo!https://www.fmz.cn/bbs-topic/1638Utilizando los nuevos bajos de un ciclo posterior para contrastarlos con los nuevos altos de este ciclo, esta idea puede ser utilizada para determinar la tendencia. Gracias por este artículo, pero cuando lo probé, establecí un ciclo de K-line que solo puede retroceder hasta 50 días, y el intervalo de tiempo no sirvió, por lo que no tenía la idea de soporte de datos.

El resultado es el siguiente:

img

El orden de salida es el siguiente: id>Time>Alto precio de la fase>Mejor precio de la fase>Bajo precio de la fase>Alto precio de la fase>Durante

  • El filtro de un solo descenso y mantenimiento de la parallelidad, como: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
  • También se puede contrastar el precio más alto del siguiente ciclo con el precio más alto de este ciclo con el del siguiente ciclo.
  • La hora de la transacción obtenida es realmente incómoda, por ejemplo, la línea de 3 minutos es 00:57>01:00>01:57>02:00>02:57... ¿Por qué?
  • En la actualidad, la mayoría de los usuarios de Python no tienen acceso a este servicio.

¿Tienes algo?

  • Me parece que es útil, al menos mejor que mirar, pero el ciclo de tiempo es demasiado corto y no se puede ver la ley de la mirada.
  • Sin embargo, si el mercado actual, según el calendario, ha tenido una subida unilateral durante 12 días consecutivos, ¿cuál es la probabilidad de que el día 13 sea el día de la subida?
  • Yo era el que tenía la idea de hacer esta prueba, no para complacer a nadie, sino para cambiar de idea y probarla.
  • Bienvenido al intercambio, soy un laberinto normal.

Aquí hay un poco de código simplificado


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)

Y luego un código sin el mismo efecto de barra, con 21 líneas más de código.

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)

Más.

No hay nadaGracias por compartir, está listo, el foro está en formato markdown.

B.B.Lo siento, el código que he enviado sólo se ha resuelto a la mitad.

¿Qué es esto?Gracias por compartir.

B.B.¡Gracias a todos!