Какие числа, такие как -100, +100, -200, +200 и т. Д., При использовании ta-lib в Python?

Я использую ta-lib для распознавания паттернов подсвечников, однако получаю разные числа в зависимости от функции паттерна, которую я использовал. Есть ли какая-либо ссылка, что эти цифры представляют?

3 ответа

-200 / -100 / 0 / +100 / +200

+200 бычий паттерн с подтверждением
+100 бычий паттерн (в большинстве случаев)
0 нет
-100 медвежий паттерн
-200 медвежий паттерн с подтверждением

например,
в случае функции обнаружения паттерна CDLHIKKAKE:
как вы можете видеть в источнике:

https://sourceforge.net/p/ta-lib/code/HEAD/tree/trunk/ta-lib/c/src/ta_func/ta_CDLHIKKAKE.c

вы можете получить еще один -100 или +100 (что составляет -200/+200):
если у вашего шаблона есть подтверждение.
так что расчет будет (модель + подтверждение)
таким образом,
вы потенциально можете обнаружить медвежий паттерн в некоторые дни и еще один день, подтверждающий паттерн. и в итоге получаем -200

Это библиотека TA-Lib, которая возвращает значения -100..+100. Обертка ничего не меняет. Интерпретация может различаться в разных функциях, но в целом: значение == 0 является ложным, а значение!= 0 является истинным. Знак может представлять направление.
Что касается CDLHANGINGMAN, его C-код здесь.

Согласно описанию:

   /* Proceed with the calculation for the requested range.
* Must have:
* - small real body
* - long lower shadow
* - no, or very short, upper shadow
* - body above or near the highs of the previous candle
* The meaning of "short", "long" and "near the highs" is specified with TA_SetCandleSettings;
* outInteger is negative (-1 to -100): hanging man is always bearish;
* the user should consider that a hanging man must appear in an uptrend, while this function does not consider it
*/

Хотя я думаю, что это совершенно неверно, потому что CDLHANGINGMAN возвращает только -100 или 0.

        if( TA_REALBODY(i) < TA_CANDLEAVERAGE( BodyShort, BodyPeriodTotal, i ) &&                        // small rb
        TA_LOWERSHADOW(i) > TA_CANDLEAVERAGE( ShadowLong, ShadowLongPeriodTotal, i ) &&              // long lower shadow
        TA_UPPERSHADOW(i) < TA_CANDLEAVERAGE( ShadowVeryShort, ShadowVeryShortPeriodTotal, i ) &&    // very short upper shadow
        min( inClose[i], inOpen[i] ) >= inHigh[i-1] - TA_CANDLEAVERAGE( Near, NearPeriodTotal, i-1 ) // rb near the prior candle's highs
      )
        outInteger[outIdx++] = -100;
    else
        outInteger[outIdx++] = 0;

Вы не можете получить +100 от этой функции вообще.

Я не видел полной ссылки. Лучше взглянуть на код TA-func, чтобы быть уверенным. Код свечных функций довольно прост.

Согласно этой дискуссии:

-100 обозначает медвежий паттерн Тристара, где среднее тело свечи находится выше двух других. И наоборот, +100 обозначает бычий паттерн Тристара, где среднее тело находится ниже соседних.

На странице показано несколько примеров и соответствующий исходный код.

/* Proceed with the calculation for the requested range.
* Must have:
* - 3 consecutive doji days
* - the second doji is a star
* The meaning of "doji" is specified with TA_SetCandleSettings
* outInteger is positive (1 to 100) when bullish or negative (-1 to -100) when bearish
*/
i = startIdx;
outIdx = 0;
do
{
     if( TA_REALBODY(i-2) <= TA_CANDLEAVERAGE( BodyDoji, BodyPeriodTotal, i-2 ) &&    // 1st: doji
         TA_REALBODY(i-1) <= TA_CANDLEAVERAGE( BodyDoji, BodyPeriodTotal, i-2 ) &&    // 2nd: doji
         TA_REALBODY(i) <= TA_CANDLEAVERAGE( BodyDoji, BodyPeriodTotal, i-2 ) ) {     // 3rd: doji
         outInteger[outIdx] = 0;
         if ( TA_REALBODYGAPUP(i-1,i-2)                                                  // 2nd gaps up
              &&
              max(inOpen[i],inClose[i]) < max(inOpen[i-1],inClose[i-1])                  // 3rd is not higher than 2nd
            )
             outInteger[outIdx] = -100;
         if ( TA_REALBODYGAPDOWN(i-1,i-2)                                                // 2nd gaps down
              &&
              min(inOpen[i],inClose[i]) > min(inOpen[i-1],inClose[i-1])                  // 3rd is not lower than 2nd
            )
             outInteger[outIdx] = +100;
         outIdx++;
     }
     else
         outInteger[outIdx++] = 0;
     /* add the current range and subtract the first range: this is done after the pattern recognition 
     * when avgPeriod is not 0, that means "compare with the previous candles" (it excludes the current candle)
     */
     BodyPeriodTotal += TA_CANDLERANGE( BodyDoji, i-2 ) - TA_CANDLERANGE( BodyDoji, BodyTrailingIdx );
     i++;
     BodyTrailingIdx++;
} while( i <= endIdx );

Ссылаясь на это видео. Он объясняет -100 и 100. Он даже ссылается на эту самую страницу.

https://youtu.be/lrYu9AnPw7Q?t=120

https://github.com/mrjbq7/ta-lib/issues/74

** -100 обозначает медвежий паттерн Тристара, где средний корпус свечи находится над двумя другими. И наоборот, +100 обозначает бычий паттерн Тристара, где среднее тело находится ниже соседних.

Какие числа, такие как -100, +100, -200, +200 и т. Д., При использовании ta-lib в Python?**

Другие вопросы по тегам