Создание и торговля индексом диапазона Гопалакришнана в Python.

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

Я только что опубликовал новую книгу после успеха моей предыдущей «Новые технические индикаторы на Python». Он содержит более полное описание и добавление структурированных торговых стратегий со страницей GitHub, посвященной постоянно обновляемому коду. Если вы считаете, что это вас заинтересует, перейдите по ссылке ниже или, если вы предпочитаете купить версию в формате PDF, вы можете связаться со мной через LinkedIn.



Создание индекса GRI

Также называемый индексом GAPO, GRI рассчитывает относительную силу между максимумами и минимумами, деленную на их период ретроспективного анализа.

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

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

# The function to add a number of columns inside an array
def adder(Data, times):
    
    for i in range(1, times + 1):
    
        new_col = np.zeros((len(Data), 1), dtype = float)
        Data = np.append(Data, new_col, axis = 1)
        
    return Data
# The function to delete a number of columns starting from an index
def deleter(Data, index, times):
    
    for i in range(1, times + 1):
    
        Data = np.delete(Data, index, axis = 1)
        
    return Data
    
# The function to delete a number of rows from the beginning
def jump(Data, jump):
    
    Data = Data[jump:, ]
    
    return Data
# Example of adding 3 empty columns to an array
my_ohlc_array = adder(my_ohlc_array, 3)
# Example of deleting the 2 columns after the column indexed at 3
my_ohlc_array = deleter(my_ohlc_array, 3, 2)
# Example of deleting the first 20 rows
my_ohlc_array = jump(my_ohlc_array, 20)
# Remember, OHLC is an abbreviation of Open, High, Low, and Close and it refers to the standard historical data file
def gri_index(Data, lookback, high, low, where):
    
    Data = adder(Data, 1)
    
    for i in range(len(Data)):
        
        try:
            Data[i, where] = abs(np.log(max(Data[i - lookback + 1:i + 1, high]) - min(Data[i - lookback + 1:i + 1, low])) / np.log(lookback))
            
        except ValueError:
            pass 
                            
    return Data

Одним из ограничений GRI является то, что он не сообщает вам направление тренда. Вы должны сами это обнаружить.

lookback = 14
my_data = gri_index(my_data, lookback, 1, 2, 4)

Если вы хотите поддержать меня и статьи, которые я регулярно публикую, рассмотрите возможность подписки на мой ЕЖЕДНЕВНЫЙ информационный бюллетень (доступен бесплатный план) по приведенной ниже ссылке. В нем есть некоторые из моих статей о Medium, другие торговые стратегии и уроки программирования, связанные с исследованиями и анализом. Оформив подписку, вы можете рассчитывать на 5–7 статей в неделю. Это поможет мне продолжать делиться своими исследованиями. Спасибо!



Создание стратегии по GRI

Индекс GRI можно использовать во многих стратегиях следования за трендом. Из-за своей природы подтверждения новых максимумов и новых минимумов, мы можем перечислить несколько стратегий ниже:

  • Рынок имеет тренд, если GRI растет, поэтому мы можем установить пороговые значения, которые необходимо преодолеть, чтобы понимать, когда мы можем назвать рынок трендовым.
  • Если GRI не меняется, то мы можем использовать самую высокую точку на рынке в качестве уровня сопротивления и самую низкую точку на рынке в качестве уровня поддержки.
  • Мы можем использовать GRI с MACD, чтобы подтвердить тренд. Предлагаемая стратегия заключается в том, что всякий раз, когда мы видим пересечение MACD и растущий GRI, мы можем иметь лучшее убеждение.

Если вас также интересуют другие технические индикаторы и использование Python для создания стратегий, то мой бестселлер по техническим индикаторам может вас заинтересовать:



Заключение

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

Я твердо убежден, что нельзя кормить с ложечки. Я научился на практике, а не копируя. Вы должны понять идею, функцию, интуицию, условия стратегии, а затем разработать (даже лучше) одну из них самостоятельно, чтобы вы протестировали и улучшили ее, прежде чем принимать решение о том, чтобы применить ее вживую или отказаться от нее. Мой выбор в пользу отказа от предоставления конкретных результатов тестирования на истории должен побудить читателя лучше изучить стратегию и больше работать над ней.

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



Подводя итог, можно ли сказать, что стратегии, которые я предлагаю, реалистичны? Да, но только путем оптимизации среды (надежный алгоритм, низкие затраты, честный брокер, надлежащее управление рисками и управление заказами). Предусмотрены ли стратегии исключительно для торговли? Нет, это нужно для стимулирования мозгового штурма и получения новых торговых идей, поскольку мы все устали слышать о перепроданности RSI как о причине для открытия короткой позиции или о преодолении сопротивления как о причине идти долго. Я пытаюсь представить новую область под названием «Объективный технический анализ», в которой мы используем достоверные данные для оценки наших методов, а не полагаемся на устаревшие классические методы.