Что нового

Получить значения со страницы в переменную скрипта

Grizli

Новичок
Сообщения
48
Репутация
2
Здравствуйте уважаемые! Прошу вашей помощи.
Как на странице https://ru.tradingview.com/chart/4HHIN7JX/ внизу страницы есть график индикатора ADX and DI
Зеленая и красная линия это сигналы DI+ и DI-.
Каким образом можно со страницы получать значения DI+ и DI- в переменные для дальнейшей обработки в скрипте?
Браузер желательно IE, но можно и любой другой.
Если нужен то вот исходный код самого индикатора ADX and DI
study("ADX and DI")
len = input(title="Length", type=integer, defval=14)
th = input(title="threshold", type=integer, defval=20)

TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0


SmoothedTrueRange = nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange
SmoothedDirectionalMovementPlus = nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus = nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus

DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
ADX = sma(DX, len)

plot(DIPlus, color=green, title="DI+")
plot(DIMinus, color=red, title="DI-")
plot(ADX, color=black, title="ADX")
hline(th, color=black, linestyle=dashed)
 
Автор
G

Grizli

Новичок
Сообщения
48
Репутация
2
А еще есть окно с данными, как раз все те что нужны http://shot.qip.ru/00UQ3N-3lRCWJwZM/
но ни _INetGetSource($Url) ни BinaryToString(InetRead($Url)) ни _IEDocReadHTML () не содержат значений этих данных. Я так понимаю потому-что они в скрипте js выводятся или может это динамическая страница, у меня только догадки
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Grizli [?]
получать значения DI+ и DI- в переменные
Браузер желательно IE
Код:
#include <UIAutomate.au3> ; http://autoit-script.ru/index.php/topic,16780.0.html

$oIE = _UIA_GetElementFromHandle(ControlGetHandle("[class:IEFrame]", "", "Internet Explorer_Server1"))

; вариант 1
$oDIp = _UIA_GetControlTypeElement($oIE, "UIA_TextControlTypeId", "DI+")
$iP = _UIA_ElementGetPropertyValue(_UIA_ElementGetPreviousNext($oDIp)[1], "Name")
$oDIm = _UIA_GetControlTypeElement($oIE, "UIA_TextControlTypeId", "DI-")
$iM = _UIA_ElementGetPropertyValue(_UIA_ElementGetPreviousNext($oDIm)[1], "Name")
ConsoleWrite("DI+ " & $iP & " : DI- " & $iM & @CRLF)

; вариант 2
$aAll = _UIA_FindAllElements($oIE, "ControlType", $UIA_TextControlTypeId)
$aDI = _UIA_FindElementsInArray($aAll, "Name", "DI", True, True)
$iP = _UIA_ElementGetPropertyValue($aAll[$aDI[2] + 1], "Name")
$iM = _UIA_ElementGetPropertyValue($aAll[$aDI[3] + 1], "Name")
ConsoleWrite("DI+ " & $iP & " : DI- " & $iM & @CRLF)
 
Автор
G

Grizli

Новичок
Сообщения
48
Репутация
2
:laugh: Примного благодарен! Отличное решение
 
Верх