一、 TradingView的技术分析
TradingView对数字货币的分析和传统证券一样,分为基本面和技术面。
基本面则包括数字货币的基本表现
以及最近一段时间的波动性
技术分析包括振荡指标和趋势指标,可以帮助您确定趋势方向,并了解当前的市场情况。
振荡指标
趋势指标
二、使用Python3获取分析数据
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import hashlib, hmac
import urllib.request, urllib.parse
import time, datetime
import json
import random
import re
import numpy as np
class TradingView:
def __init__(self):
self.__url = 'https://scanner.tradingview.com/crypto/scan'
# 概览
def Overview(self, filter = None):
if filter:
params = filter
else:
params = '{"filter":[{"left":"market_cap_calc","operation":"nempty"},{"left":"sector","operation":"nempty","right":null},{"left":"market_cap_calc","operation":"egreater","right":500000000},{"left":"name","operation":"match","right":"USD$"}],"symbols":{"query":{"types":[]}},"columns":["sector","market_cap_calc","market_cap_diluted_calc","close","total_shares_outstanding","total_shares_diluted","total_value_traded","change"],"sort":{"sortBy":"market_cap_calc","sortOrder":"desc"},"options":{"lang":"zh"},"range":[0,50]}'
url = self.__url
return self.http_request(url, params)
# 表现
def Performance(self, filter = None):
if filter:
params = filter
else:
params = '{"filter":[{"left":"market_cap_calc","operation":"nempty"},{"left":"sector","operation":"nempty","right":null},{"left":"market_cap_calc","operation":"egreater","right":500000000},{"left":"name","operation":"match","right":"USD$"}],"symbols":{"query":{"types":[]}},"columns":["sector","change","Perf.W","Perf.1M","Perf.3M","Perf.6M","Perf.YTD","Perf.Y","Volatility.D"],"sort":{"sortBy":"market_cap_calc","sortOrder":"desc"},"options":{"lang":"en"},"range":[0,50]}'
url = self.__url
return self.http_request(url, params)
# 振荡指标
def Oscillatiors(self, filter = None):
if filter:
params = filter
else:
params = '{"filter":[{"left":"market_cap_calc","operation":"nempty"},{"left":"sector","operation":"nempty","right":null},{"left":"market_cap_calc","operation":"egreater","right":500000000},{"left":"name","operation":"match","right":"USD$"}],"symbols":{"query":{"types":[]}},"columns":["sector","Recommend.Other","ADX","AO","ATR","CCI20","MACD.macd","MACD.signal","Mom","RSI","Stoch.K","Stoch.D","ADX","ADX+DI","ADX-DI","ADX+DI[1]","ADX-DI[1]","AO","AO[1]","CCI20","CCI20[1]","MACD.macd","MACD.signal","Mom","Mom[1]","RSI","RSI[1]","Stoch.K","Stoch.D","Stoch.K[1]","Stoch.D[1]"],"sort":{"sortBy":"market_cap_calc","sortOrder":"desc"},"options":{"lang":"zh"},"range":[0,50]}'
url = self.__url
return self.http_request(url, params)
# 趋势跟踪
def TrendFollowing(self, filter = None):
if filter:
params = filter
else:
params = '{"filter":[{"left":"market_cap_calc","operation":"nempty"},{"left":"sector","operation":"nempty","right":null},{"left":"market_cap_calc","operation":"egreater","right":500000000},{"left":"name","operation":"match","right":"USD$"}],"symbols":{"query":{"types":[]}},"columns":["sector","Recommend.MA","close","SMA20","SMA50","SMA200","BB.upper","BB.lower","SMA20","close","SMA50","SMA200","BB.upper","BB.lower"],"sort":{"sortBy":"market_cap_calc","sortOrder":"desc"},"options":{"lang":"zh"},"range":[0,50]}'
url = self.__url
return self.http_request(url, params)
# HTTP 请求
def http_request(self, url, params = None):
req = urllib.request.Request(url)
req.add_header('User-Agent', "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36")
# 是否携带参数 params
if params:
# data = json.dumps(params).encode('utf8')
data = params.encode('utf8')
# print(data)
f = urllib.request.urlopen(req, data)
else:
f = urllib.request.urlopen(req)
# return f.read().decode('utf-8')
return json.loads(f.read().decode('utf-8'))