Écrire un générateur de stock aléatoire de Mosbirzhe en JavaScript

L'idée est née après avoir accidentellement vu un générateur similaire pour l'échange américain NASDAQ , où le script bash télécharge une liste récapitulative de documents américains à partir d'un serveur FTP et le transforme en JSON, composé uniquement de tickers, puis affiche le framework bootstrap et le JavaScript pur à l'écran un ticker boursier aléatoire lors de la connexion au populaire Yahoo! La finance


La «magie» de la plateforme CodePen pour la Bourse de Moscou

Le code a été adapté aux réalités russes et, en plus de recevoir une liste de titres de la Bourse de Moscou, un calcul de rentabilité pour les n dernières années a été effectué.

Un serveur supplémentaire n'était pas nécessaire, car l'API Mosbirzh peut effectuer l'émission immédiatement au format JSON.

De quoi a-t-on besoin pour le fonctionnement du générateur de partage aléatoire?


  1. « » (boardid) .

    //      
    url = 'https://iss.moex.com/iss/engines/stock/markets/shares/boards/'
  2. boardid .

    boardid = 'TQBR' //  
    url = 'https://iss.moex.com/iss/engines/stock/markets/shares/boards/'+ boardid +'/securities.json?iss.meta=off&iss.only=securities&securities.columns=SECID,SECNAME'
  3. .
  4. .

    boardid = 'TQBR' //  
    url = 'http://iss.moex.com/iss/engines/stock/markets/shares/boards/'+ boardid +'/securities.json?iss.meta=off&iss.only=securities&securities.columns=SECID,PREVADMITTEDQUOTE'
  5. n . API boardid, SECID , :
    — boardid = TQBR
    — SECID = SBER
    — date = 2015-01-10
    .

    boardid = 'TQBR' //   
    SECID = 'SBER' // 
    date = '2015-01-10' // 
    url = 'http://iss.moex.com/iss/history/engines/stock/markets/shares/boards/'+ boardid +'/securities/'+ SECID +'.json?iss.meta=off&iss.only=history&history.columns=SECID,TRADEDATE,CLOSE&limit=1&from=' + date
  6. 5 , .

    curStock = 'AFKS'
    dateNow = '2020-03-06'
    datePre = '2015-03-06'
    fetch(getCost(curStock, datePre)).then(result => {
        return (result.json())
    }).then(res => {
        let costPre = res.history.data[0][2];
        return (costPre)
    }).then(costPre => {
        fetch(getCost(curStock, dateNow)).then(result => {
            return (result.json())
        }).then(res => {
            let costNow = res.history.data[0][2];
            console.log(costPre);
            console.log(costNow);
            console.log(parseInt((costNow * 100) / costPre, 10) - 100)
        })
    })
    
    function getCost(id, date) {
        let url = `http://iss.moex.com/iss/history/engines/stock/markets/shares/boards/TQBR/securities/${id}.json?iss.meta=off&iss.only=history&history.columns=SECID,TRADEDATE,CLOSE&limit=1&from=${date}`
        return url;
    }

Il n'y avait pas de grandes exigences pour le code, il était important qu'il fonctionne et accomplisse sa tâche.


GIF avec une démonstration du générateur de générateur aléatoire Mosbirzi en JavaScript

Pour une raison quelconque, l'API Mosbirzi n'émet des données historiques que depuis juin 2014, c'est-à-dire qu'il n'est pas possible d'obtenir des données antérieures via une demande.

Code complet sur GitHub et CodePen .

Total


Le générateur de stock aléatoire de la Bourse de Moscou fonctionne et émet non seulement des papiers aléatoires, mais prend également en compte le rendement pour un intervalle de temps personnalisé.

Je tiens également à noter qu'il n'est en aucun cas lié à la Bourse de Moscou et que j'utilise ISS Mosbirzhy uniquement pour des intérêts personnels.

Auteur: Mikhail Shardin .
Code: Alexander Palachev .

3 avril 2020

All Articles