комментарии luks sluk на форуме

  1. Логотип Tradingview
    TradingView Технический анализ js-snippet to update data in browser
    ru.tradingview.com/symbols/MOEX-SBER/technicals/

    js-snippet to update data in browser

    Click tabs in loop every 3 seconds 

    1 минута 5 минут 15 минут 1 час 4 часа 1 день

    var radiobuttons = $('.tab-1Yr0rq0J').slice(0,5);
    var i = 0;
    var rollDemRadios = setInterval(function() {
    var currentbutton = radiobuttons[i];
    currentbutton.click();
    i = (i + 1) % radiobuttons.length; 
    }, 3000);



    Авто-репост. Читать в блоге >>>
  2. Логотип Tradingview
    TradingView technical analysis API wrapper

    An unofficial python API wrapper to retrieve technical analysis from TradingView.
    ru.tradingview.com/symbols/MOEX-SBER/technicals/

    from tradingview_ta import TA_Handler, Interval, Exchange
    
    sber = TA_Handler(
        symbol="SBER",
        screener="russia",
        exchange="MOEX",
        interval=Interval.INTERVAL_1_DAY
    )
    print(sber.get_analysis().summary)
    # Example output: {"RECOMMENDATION": "BUY", "BUY": 8, "NEUTRAL": 6, "SELL": 3}
    Interval.INTERVAL_1_MINUTE
    Interval.INTERVAL_5_MINUTES
    Interval.INTERVAL_15_MINUTES
    INTERVAL_1_HOUR
    Interval.INTERVAL_4_HOURS
    Interval.INTERVAL_1_DAY
    Interval.INTERVAL_1_WEEK
    Interval.INTERVAL_1_MONTH


    Documentation
    python-tradingview-ta.readthedocs.io/en/latest/overview.html



    Авто-репост. Читать в блоге >>>
  3. Логотип Tradingview
    Автоматизация сигналов из TradingView за 2 минуты. Websockets Python
    from websocket import create_connection
    import json
    import random
    import string
    import re
    import pandas as pd
    import csv
    from datetime import datetime
    from time import sleep
    
    def filter_raw_message(text):
        try:
            found = re.search('"m":"(.+?)",', text).group(1)
            found2 = re.search('"p":(.+?"}"])}', text).group(1)
            print(found)
            print(found2)
            return found1, found2
        except AttributeError:
            print("error")
        
    
    def generateSession():
        stringLength=12
        letters = string.ascii_lowercase
        random_string= ''.join(random.choice(letters) for i in range(stringLength))
        return "qs_" +random_string
    
    def generateChartSession():
        stringLength=12
        letters = string.ascii_lowercase
        random_string= ''.join(random.choice(letters) for i in range(stringLength))
        return "cs_" +random_string
    
    def prependHeader(st):
        return "~m~" + str(len(st)) + "~m~" + st
    
    def constructMessage(func, paramList):
        #json_mylist = json.dumps(mylist, separators=(',', ':'))
        return json.dumps({
            "m":func,
            "p":paramList
            }, separators=(',', ':'))
    
    def createMessage(func, paramList):
        return prependHeader(constructMessage(func, paramList))
    
    def sendRawMessage(ws, message):
        ws.send(prependHeader(message))
    
    def sendMessage(ws, func, args):
        ws.send(createMessage(func, args))
    
    def generate_csv(a):
        out= re.search('"s":\[(.+?)\}\]', a).group(1)
        x=out.split(',{\"')
        
        with open('data_file.csv', mode='w', newline='') as data_file:
            employee_writer = csv.writer(data_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
        
            employee_writer.writerow(['index', 'date', 'open', 'high', 'low', 'close', 'volume'])
            
            for xi in x:
                xi= re.split('\[|:|,|\]', xi)
                print(xi)
                ind= int(xi[1])
                ts= datetime.fromtimestamp(float(xi[4])).strftime("%Y/%m/%d, %H:%M:%S")
                employee_writer.writerow([ind, ts, float(xi[5]), float(xi[6]), float(xi[7]), float(xi[8]), float(xi[9])])
                
    
    
    # Initialize the headers needed for the websocket connection
    headers = json.dumps({
        # 'Connection': 'upgrade',
        # 'Host': 'data.tradingview.com',
        'Origin': 'https://data.tradingview.com'
        # 'Cache-Control': 'no-cache',
        # 'Upgrade': 'websocket',
        # 'Sec-WebSocket-Extensions': 'permessage-deflate; client_max_window_bits',
        # 'Sec-WebSocket-Key': '2C08Ri6FwFQw2p4198F/TA==',
        # 'Sec-WebSocket-Version': '13',
        # 'User-Agent': 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 Edg/83.0.478.56',
        # 'Pragma': 'no-cache',
        # 'Upgrade': 'websocket'
    })
    
        
    # Then create a connection to the tunnel
    ws = create_connection(
        'wss://data.tradingview.com/socket.io/websocket',headers=headers)
    
    session= generateSession()
    print("session generated {}".format(session))
    
    chart_session= generateChartSession()
    print("chart_session generated {}".format(chart_session))
    
    # Then send a message through the tunnel 
    sendMessage(ws, "set_auth_token", ["unauthorized_user_token"])
    sendMessage(ws, "chart_create_session", [chart_session, ""])
    sendMessage(ws, "quote_create_session", [session])
    sendMessage(ws,"quote_set_fields", [session,"ch","chp","current_session","description","local_description","language","exchange","fractional","is_tradable","lp","lp_time","minmov","minmove2","original_name","pricescale","pro_name","short_name","type","update_mode","volume","currency_code","rchp","rtc"])
    sendMessage(ws, "quote_add_symbols",[session, "BINANCE:BTCUSDT", {"flags":['force_permission']}])
    
    sendMessage(ws, "resolve_symbol", [chart_session, "symbol_1","={\"symbol\":\"BINANCE:BTCUSDT\",\"adjustment\":\"splits\"}"])
    sendMessage(ws, "create_series", [chart_session,"s1","s1","symbol_1","1",300])
    
    sendMessage(ws, "quote_fast_symbols", [session,"BINANCE:BTCUSDT"])
    
    sendMessage(ws, "create_study", [chart_session,"st1","st1","s1","Volume@tv-basicstudies-118",{"length":20,"col_prev_close":"false"}])
    sendMessage(ws, "quote_hibernate_all", [session])
    
    #st='~m~140~m~{"m":"resolve_symbol","p":}'
    #p1, p2 = filter_raw_message(st)
    #sendMessage(ws, "resolve_symbol", [chart_session,"symbol_1","={\"symbol\":\"BINANCE:BTCUSDT\",\"adjustment\":\"splits\",\"session\":\"extended\"}"])
    #sendMessage(ws, "create_series", [chart_session, "s1", "s1", "symbol_1", "1", 2])
    #sendMessage(ws, "create_study", [chart_session,"st4","st1","s1","ESD@tv-scripting-101!",{"text":"BNEhyMp2zcJFvntl+CdKjA==_DkJH8pNTUOoUT2BnMT6NHSuLIuKni9D9SDMm1UOm/vLtzAhPVypsvWlzDDenSfeyoFHLhX7G61HDlNHwqt/czTEwncKBDNi1b3fj26V54CkMKtrI21tXW7OQD/OSYxxd6SzPtFwiCVAoPbF2Y1lBIg/YE9nGDkr6jeDdPwF0d2bC+yN8lhBm03WYMOyrr6wFST+P/38BoSeZvMXI1Xfw84rnntV9+MDVxV8L19OE/0K/NBRvYpxgWMGCqH79/sHMrCsF6uOpIIgF8bEVQFGBKDSxbNa0nc+npqK5vPdHwvQuy5XuMnGIqsjR4sIMml2lJGi/XqzfU/L9Wj9xfuNNB2ty5PhxgzWiJU1Z1JTzsDsth2PyP29q8a91MQrmpZ9GwHnJdLjbzUv3vbOm9R4/u9K2lwhcBrqrLsj/VfVWMSBP","pineId":"TV_SPLITS","pineVersion":"8.0"}])
    
    
    # Printing all the result
    a=""
    while True:
        try:
            sleep(1)
            result = ws.recv()
            pattern = re.compile("~m~\d+~m~~h~\d+$")
            if pattern.match(result):
                ws.recv()
                ws.send(result)
                print("\n\n\n hhhhhhhhhhhhhhhhhhhhhh "+ str(result) + "\n\n")
            print(result)
            a=a+result+"\n"
        except Exception as e:
            print(e)
            break
        
    generate_csv(a)
    'https://github.com/rushic24/tradingview-scraper'

    Авто-репост. Читать в блоге >>>
  4. Логотип Открытие Инвестиции
    Открытие брокер — когда планируется внедрение API интерфейса типа Тинькофф Инвестиции OpenApi или Exante Market Data & Trade API
    smart-lab.ru/blog/612267.php
  5. Логотип Открытие Инвестиции
    Открытие брокер - когда планируется внедрение API интерфейса типа Тинькофф Инвестиции OpenApi или Exante Market Data & Trade API
    Открытие брокер — когда планируется внедрение API интерфейса типа Тинькофф Инвестиции OpenApi или Exante Market Data & Trade API?
    Вопрос к представителям Открытие брокера.

    FIX, Plaza, TWIME, FAST/Multicast — не предлагать, т.к. вышеупомянутые OpenApi и Market Data & Trade API — бесплатные
    Коннекторы к Quik и Metatrader и подобные костыли не упрощают получение Market Data

    Авто-репост. Читать в блоге >>>
Чтобы купить акции, выберите надежного брокера: