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

Она была разработана экономистом Эдвином Коппоком и впервые опубликована в журнале Barron's в 1962 году. Кривая Коппока рассчитывается путем взятия суммы 14-периодной скорости изменения и 11-периодной скорости изменения рыночного индекса или акции. цене, а затем сглаживая ее с помощью 10-месячной взвешенной скользящей средней.

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

В этой статье мы обсудим, как создать торговую стратегию кривой Коппока, используя код Python. Мы также покажем вам, как протестировать стратегию на истории, чтобы определить ее историческую эффективность.

Чтобы создать кривую Коппока в Python, мы будем использовать библиотеку Pandas для манипулирования данными и библиотеку Talib для технического анализа. Далее мы рассчитаем 14-периодную скорость изменения и 11-периодную скорость изменения данных индекса и сумму их. Наконец, мы сгладим сумму двух темпов изменения, используя 10-месячную взвешенную скользящую среднюю.

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

if (df.iloc[i]['COP'] > df.iloc[i-1]['COP'])  and (df.iloc[i]['COP'] < df.iloc[i+1]['COP']):
        signals.append(1)
    elif (df.iloc[i]['COP'] < df.iloc[i-1]['COP'])  and (df.iloc[i]['COP'] > df.iloc[i+1]['COP']) :
        signals.append(-1)

Чтобы протестировать торговую стратегию кривой Коппока, мы будем использовать сглаженную кривую Коппока, чтобы определить, когда покупать и продавать ETHUSDT.

df["signal"] = signals
print(signals)
investment = 1000
current_investment = 1000
invested_amount = 0
fees = 0
profit = 0
is_invested = False
best_trade = -99999999
worst_trade = 99999999
largest_loss = 0
largest_gain = 0
total_trades = 0
for i in range(0, len(df)):
    signal = df.iloc[i]['signal'] 
    close = df.iloc[i]['close']

    if signal == 1 and not is_invested:
        Entrypoint = close
        print(signal)
        print(close)
        quantity = (current_investment / close)
        print(current_investment)       
        print(quantity)
        invested_amount = quantity * close
        is_invested = True
    elif signal == -1 and is_invested:
        print(signal)
        print(close)
        profit = quantity * (close - Entrypoint) - 2
        print(profit)
        current_investment += profit
        invested_amount = 0
        total_trades += 1
        is_invested = False
        if profit > largest_gain:
            largest_gain = profit
        if profit < largest_loss:
            largest_loss = profit
        if profit > best_trade:
            best_trade = profit
        if profit < worst_trade:
            worst_trade = profit
    else: 
        pass
        
final_profit = current_investment - investment
print("Final Profit: ", final_profit)
print("Best Trade: ", best_trade)
print("Worst Trade: ", worst_trade)
print("Largest Loss: ", largest_loss)
print("Largest Gain: ", largest_gain)
print("Total Trades: ", total_trades)

Когда кривая поднимется выше своего предыдущего минимума, мы будем покупать индекс, а когда она упадет ниже своего предыдущего максимума, мы продадим индекс.

В заключение, кривая Коппока — популярная торговая стратегия, которую можно реализовать на Python.

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

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