Я использую этот код для расчета точек поворота. < /p>
def pivots_low(osc, LBR, LBL):
pivots = []
for i in range(len(osc) - LBR):
pivots.append(0)
pivot = True
if i > LBL:
for j in range(1, LBR + 1):
if osc >= osc[i + j]:
pivot = False
for j in range(1, LBL + 1):
if osc > osc:
pivot = False
if pivot is True:
pivots[len(pivots) - 1] = osc
for i in range(LBR):
pivots.append(0)
return pivots
< /code>
Это возвращает массив с 0, где нет поворотов и значения pivot, если есть один. < /p>
При сравнении результатов с Tradingview ( Скачанный CSV с точками поворота), единственное время, когда он точно соответствует, когда влево и право - 5. В противном случае он отклоняется от количества общих стержней и местоположения некоторых. < /p>
Но но Используя этот код для расчета максимумов поворота: < /p>
def pivots_high(osc, LBR, LBL):
pivots = []
for i in range(len(osc)-LBR):
pivots.append(0)
pivot = True
if i > LBL:
for j in range(1,LBL + 1):
if osc < osc[i-j]:
pivot = False
for j in range(1,LBR + 1):
if osc
Результаты идеальны независимо от значений ощущения. Но код почти точно такой же, помимо сравнения. < /P>
Что здесь идет не так? Это день 3, чтобы иметь эту проблему, и я просто не могу ее исправить < /p>
для воспроизведения: < /p>
Загрузить данные: < /p>
Full_Data = pd.read_csv(file)
< /code>
Используйте эту простую функцию, чтобы проверить совпадения между расчетными оловами и Pivots TradingView. < /p>
def match_pivs(data, pivs_h, pivs_l): //Data is a DataFrame loaded from tradingview csv
global lblh
global lbrh
global lbll
global lbrl
start = lbrh
if lbrl > lbrh:
start = lbrl
match_h = 0
tot_hd = 0
tot_hp = 0
match_l = 0
tot_ld = 0
tot_lp = 0
for i in range(start, len(data)):
if data['PivHigh'] != 0 and pivs_h[i-lbrh] != 0:
match_h += 1
if data['PivLow'] != 0 and pivs_l[i-lbrl] != 0:
match_l += 1
if data['PivHigh'] != 0:
tot_hd += 1
if data['PivLow'] != 0:
tot_ld += 1
if pivs_h[i] != 0:
tot_hp += 1
if pivs_l[i] != 0:
tot_lp += 1
print('PivsLow ' + str(tot_lp))
print('DataLows ' + str(tot_ld))
print('MatchesL ' + str(match_l))
print('PivsHigh ' + str(tot_hp))
print('DataHighs ' + str(tot_hd))
print('MatchesH ' + str(match_h))
< /code>
и получить CSV от TradingView: < /p>
//@version=5
indicator("Data Script", overlay=true, max_labels_count=500)
leftLenL = input.int(title="Pivot Low", defval=10, minval=1, inline="Pivot Low", group=lengthGroupTitle)
rightLenL = input.int(title="/", defval=10, minval=1, inline="Pivot Low", group=lengthGroupTitle)
leftLenH = input.int(title="Pivot High", defval=10, minval=1, inline="Pivot High", group=lengthGroupTitle)
rightLenH = input.int(title="/", defval=10, minval=1, inline="Pivot High", group=lengthGroupTitle)
ph = ta.pivothigh(leftLenH, rightLenH)
pl = ta.pivotlow(leftLenL, rightLenL)
if not na(ph)
plth := ph
else
plth := 0.0
if not na(pl)
pltl := pl
else
pltl := 0.0
plot(plth, 'PivHigh')
plot(pltl, 'PivLow')
< /code>
Затем просто загрузите CSV с помощью этого сценария.pl = pivots_low(Full_Data['low'], lbll, lbrl)
ph = pivots_high(Full_Data['high'], lbrh, lblh)
match_pivs(Full_Data, ph, pl)
Подробнее здесь: https://stackoverflow.com/questions/738 ... radingview
Результаты функции поворота отличаются от TradingView ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему результаты Networkx Draw () так отличаются от результатов Spring_layout?
Anonymous » » в форуме Python - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Какие функции можно использовать для отправки данных SCTP и как они отличаются?
Anonymous » » в форуме Linux - 0 Ответы
- 569 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Какие функции можно использовать для отправки данных SCTP и как они отличаются?
Anonymous » » в форуме C++ - 0 Ответы
- 34 Просмотры
-
Последнее сообщение Anonymous
-