Введение в Python Простые небольшие сценарии - Статистические односторонние последовательности

Автор:бб, Создано: 2018-07-23 15:53:45, Обновлено: 2018-07-24 12:27:27

Последнее время я изучаю количественную математику, и я не знаю, что делать, так что нажмите на что-то медленнее.

Сегодня мы нажали на небольшой скрипт, который используется для оценки количества случаев одностороннего рынка за последние 50 дней (похоже, что платформа может использовать только 50 дней для обратной связи с ОК)? Я хотел написать ↓. Очень просто - распознать потрясения и тенденции!https://www.fmz.cn/bbs-topic/1638Эта мысль используется для определения тенденции, используя новые минимумы последнего цикла против новых максимумов этого цикла. Спасибо автору за эту статью, но когда я тестировал, я установил K-линейный цикл, который может повториться только на 50 дней, и установил временной интервал, который не работает, поэтому отсутствует поддержка данных.

В результате он выглядит так:

img

Порядок вывода: id-пакет> Time-пакет> максимальная цена этапа> минимальная цена этапа> падежная цена> продолжительное количество раз

  • Профилируются однократные падения и параллельные состояния, такие как: подъем> падение> подъем> средний> падение> средний> верхний> этот не использует непрерывность, не помогает анализу.
  • Вы можете использовать максимальную цену следующего цикла для сравнения с наивысшей ценой этого цикла. Вы можете использовать максимальную цену следующего цикла для сравнения с наивысшей ценой следующего цикла.
  • Например, 3-минутная линия - это 00:57>01:00>01:57>02:00>02:57... Почему?
  • Не будьте слишком высокомерными и не пишите на Python.

Есть кухонные принадлежности?

  • Я считаю, что это полезно, по крайней мере, лучше, чем смотреть, но цикл времени слишком короткий, и я не вижу законов кулинарии.
  • Однако, если в данный момент рынок, согласно календарю, 12 дней подряд наблюдается односторонний рост, то какая вероятность того, что на 13-й день рынок вырастет?
  • Именно с этой мыслью я решил сделать этот тест, чтобы не разочаровывать людей, а также изменить свое мнение.
  • Приветствую обмен, я нормальный лапша.

Ниже приведены некоторые упрощенные варианты кода.


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)

И вот ещё один, без упрощенного кода, который имеет такой же эффект, как и предыдущий, 21 строку больше.

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)

Больше

НульСпасибо, что поделились, уже есть версия, форум в формате markdown.

ббПрошу прощения, но я написал только половину кода, так что присоединяйтесь.

qq89520Спасибо.

ббСпасибо, ноль. Спасибо!