Количественные стратегии торговли для анализа динамики цен в Python

Автор:Доброта, Создано: 2019-08-09 15:49:06, Обновлено: 2023-10-20 20:13:38

img

Описание стратегии ценовой динамики

Динамическая стратегия торговли позволяет проанализировать соотношения между открывающей ценой, максимальной ценой и минимальной ценой за определенный период, чтобы получить косвенное представление о распределении силы на обеих сторонах рынка.

Анализ динамики цен имеет большое количество применений в традиционных ручных списках, особенно для определения односторонних тенденций в течение дня.

В статье будет использована эта стратегия для разработки автоматизированной процедуры торговли цифровой валютой на токеновской сети.

Формулы расчета динамики цен

AR = сумма всех (открытых) дней и (открытых) дней и (открытых) дней

Вот некоторые из них:

  • N: Статистическое окно цикла суточного времени, по умолчанию обычно 30 дней, так как месяц имеет примерно 30 дней действительных торговых дней (цифровые валюты торгуют 24/7, возможно, этот показатель немного консервативен)

  • Высокая цена за сутки

  • Открытое: цена за один день

  • Низкая цена за сутки

Использование динамики цен

Движение цен в течение определенного периода времени отражает то, что цена открытия находится между наивысшей и наименьшей ценой, и именно эта позиция является основой для определения силы тяги между сторонами.

  • Предположим, что это значение около 100, более 100, когда многоголовая сила начинает увеличиваться, меньше 100, когда пустоголовая сила начинает накапливаться.
  • Высокий уровень AR означает, что рынок активен, популярен, многочисленные лидеры стремительно растут, но слишком высокий означает, что цена входит в зону перекупки, и следует выбрать временное равновесие. Высота AR не имеет конкретных критериев.
  • Низкий уровень АР означает, что рынок рецессионный, хорошие позиции на первом месте, требует больших усилий, а слишком низкий означает, что цена, возможно, уже упала в зону перепродажи.

Примечание: вышеперечисленные цифры являются значениями по умолчанию, а не утверждениями истины. В процессе реальной торговли мы должны настроить этот диапазон в соответствии с изменениями рынка.

Стратегия количественного обмена динамикой цены с помощью Python

Старое правило: мы открываем.FMZ.COM, вход в учетную запись, клик в центр управления, развертывание администраторов и ботов.

Для того, чтобы узнать, как развернуть хостеров и ботов, обратитесь к моей предыдущей статье:https://www.fmz.com/bbs-topic/4140

Читатели, которые хотят купить хост для развертывания собственных облачных серверов, могут ознакомиться с этой статьей:https://www.fmz.com/bbs-topic/2848

Далее мы нажимаем на Policy Library в левом меню и нажимаем на Create Policy.

В верхнем правом углу страницы "Правила написания" запомните, что вы выбрали язык программирования Python:

img

Далее мы запишем код Python на странице редактирования кода, ниже код, с очень подробными комментариями по строкам, которые читатели могут постепенно понять и осознать, что более важно, хотя эта стратегия была написана в соответствии с обменом на наличные деньги, но расширяемость следующего кода также учитывает торговлю фьючерсами. Интересующиеся читатели могут попробовать переписать следующий код на фьючерсные сделки, сама логика стратегии универсальна.

Мы начали реализовывать эту стратегию, используя Bitcoin cash token в торговой сети.

import types # 导入Types模块库,这是为了应对代码中将要用到的各种数据类型
def main(): # 主函数,策略逻辑从这里开始
    IDLE = 0 # 用来标记持仓状态,可以理解为0即为空闲状态,也就是空仓状态
    LONG = 1 # 多头持仓
    SHORT = 2 # 空头持仓,注意,此策略应用于现货市场,所以不存在空头开仓或者持仓情况,这里这样写,是为了方便理解策略和以后的扩展(如扩展到期货市场)
    state = IDLE # 标记持仓状态的变量
    while True: # 进入循环
        r = exchange.GetRecords() #GetRecords是发明者量化平台的官方API,详细用法请参见:https://www.fmz.com/api
        if len(r) <= 1: # 判断K线是否大于一根,也就是当前是否为开盘状态,否则可能会进入死循环,这里也方便读者进行扩展,大一些的K线周期趋势状态更稳定。
           Log("bar的数量不足, 等待下一根bar...") # 输出日志
           continue # Python循环控制语句,继续下边的循环内容

        # 开始进行价格动量的量化分析
        ar = sum(r.High - r.Open) / sum(r.Open - r.Low) * 100 # 计算公式

        account = _C(exchange.GetAccount) # 获取账户信息,_C同样为发明者量化平台的官方API,用法请参见:https://www.fmz.com/api

        if ar < 95 and (state == IDLE or state == SHORT) :  # AR值小于超卖线且账户拥有资金,则全仓买入
           
           if account["Balance"] > 50:
                exchange.Buy(-1, account["Balance"] * 0.9) # 市价单全仓买入
                state = LONG # 改变持仓状态为LONG
                  
        elif ar > 80 and (state == IDLE or state == LONG):  # AR值大于超买线且账户有持仓,则全仓卖出
            
           if account["Stocks"] > 0.01:
                exchange.Sell(-1, account["Stocks"] * 0.9) # 市价单全仓卖出
                state = SHORT # 改变持仓状态为SHORT
                      
        LogStatus(_D(), exchange.GetAccount() , state) # 更新日志信息

Стратегическая рецензия

После написания стратегии, первое, что мы должны сделать, это проанализировать ее, чтобы увидеть, как она будет выглядеть в исторических данных, но обратите внимание читателей, что результаты проанализированы не равносильны предсказаниям в будущем, проанализированы только в качестве справочной информации, чтобы рассмотреть эффективность нашей стратегии. Как только рынок изменится, и стратегия начнет иметь большие убытки, мы должны вовремя обнаружить проблемы, а затем изменить стратегию, чтобы адаптироваться к новой рыночной среде, например, к упомянутому выше порогу.

Нажмите на страницу редактирования стратегии, на странице редактирования, параметры могут быть настроены в зависимости от потребностей, чтобы сделать дешифровку удобной и быстрой, особенно для логически сложных стратегий с большим количеством параметров, без необходимости возвращаться к исходному коду, чтобы изменить их по отдельности.

Мы выбираем последний месяц, нажимаем добавить токены на эксклюзивном рынке, BTC торговый индекс.

img

Проверьте результаты повторного тестирования

img

Как вы можете видеть, эта стратегия показала хорошие результаты в этом месяце.

Преимущества и недостатки стратегии ценовой динамики

  • Преимущества

По сравнению с некоторыми другими традиционными техническими показателями, преимущество динамики цен заключается в том, что она использует не единую цену открытия или закрытия, а введение максимальной и минимальной цены. Для их динамического сравнения используются внутридневные колебания цен, что делает информацию о рынке более полной, быстро реагирующей и более макрологичной.

  • Недостатки

Самостоятельное использование динамики цены для определения того, слишком высока или низка цена, для определения того, что делать больше/менее, вполне вероятно, что слишком рано уйдет в большой волне тренда, или слишком рано перейдет в большой волне падения рынка. В целом эта стратегия по-прежнему относится к стратегии эффективности шока.

Установка порога стратегии также должна зависеть от характеристик индикаторов торговли. Цены на цифровых валютных рынках очень высоки, и их объемы очень велики, особенно на основных валютах, таких как биткоин, и нет никаких ограничений на падение и падение. Поэтому порог выше, чем на традиционных фондовых рынках, 80 линий перепродажи, которые обычно трудно дотронуться, и создают меньше сигналов к покупке; а 170 линий перепродажи, которые часто находятся под порогом, а сигналы к продаже часто запускаются.

Таким образом, в этом рынке никогда не было никакой священной стратегии торговли, которая могла бы заработать вечно без повторения, без диспозиции. Мы, количественные трейдеры и субъективные трейдеры, в конечном итоге имеем одинаковые шансы, которые должны быть изменены в соответствии с изменениями на рынке, в зависимости от местности, в зависимости от того, что меняется, когда стратегия неэффективна, нужно своевременно ее корректировать.

Друзья с проблемами могут прийти.https://www.fmz.com/bbsЕсли вы хотите узнать больше о том, что происходит на платформе, обратитесь к специалистам, которые всегда готовы ответить на ваши вопросы.


Связанные

Больше

МайкеоОчень полезно, спасибо!