首页 > 其他分享 >按条件搜索期货品种

按条件搜索期货品种

时间:2024-08-10 19:39:13浏览次数:11  
标签:code const 品种 item 搜索 obj 期货 return data

豆粕m2409:连续10天在10日均线下方,30天内有20天在均线下方

 

import axios from 'axios';
import fs from 'fs-extra';
const instance = axios.create();
const api={
    //获取纯碱实时价格
    async getSaRealPrice(){
        const res=await instance.get('https://futsseapi.eastmoney.com/list/variety/115/22?callback=aaa_callback&orderBy=zdf&sort=desc&pageSize=20&pageIndex=0&callbackName=aaa_callback&token=58b2fa8f54638b60b87d69b31969089c&field=dm%2Csc%2Cname%2Cp%2Czsjd%2Czde%2Czdf%2Cf152%2Co%2Ch%2Cl%2Czjsj%2Cvol%2Ccje%2Cwp%2Cnp%2Cccl&blockName=callback&_='+(new Date().getTime()))
        const func=new Function('aaa_callback','return '+res.data)
        const data=func(function(item){return item})
        return data;
    },
    //获取纯碱每日价格
    async getSaDayPrice(code){
        const url=`https://finance.pae.baidu.com/selfselect/getstockquotation?all=1&code=${code}&isIndex=false&isBk=false&isBlock=false&isFutures=true&isStock=false&newFormat=1&ktype=1&market_type=ab&group=quotation_futures_kline&finClientType=pc`
        const res=await instance.get(url)
        return res.data.Result.newMarketData;
    },
    async test(){
        const url="https://d.10jqka.com.cn/v6/line/49_884022/01/last60.js?hexin-v=A-idlXgdGjnHFDa9SGwcVWfkv93_EU0tLnUhsaIZNGNW_YbDSiEcq36F8CLx"
        const res=await instance.post(url)
        console.log(res.data)
        const func=new Function('aaa_callback','return '+res.data)
        const data=func(function(item){return item})
        return data;
    }
}
async function getSrc(){
    const codeMap={
        '纯碱':['SA409','SA410','SA411','SA412','SA501','SA502','SA503','SA504','SA505','SA506','SA507'],
        '菜粕':['RM409','RM411','RM501','RM503','RM505','RM507'],
        '豆粕':['m2409','m2411','m2412','m2501','m2503','m2505','m2507'],
    }
    const nameMap=[]
    const codeLists=[]
    for(let name in codeMap){
        codeMap[name].forEach(function (code){
            nameMap[code]=name
            codeLists.push(code)
        })
    }
    const effectiveTime=12*60*60*1000
    const nTime=Date.now()
    const paiMingList=[]
    let codesLen=codeLists.length
    for(let i=0;i<codesLen;i++){
        const code=codeLists[i];
        const filepath='src/'+code+'.json'
        let data
        if(fs.existsSync(filepath)&&nTime-effectiveTime<fs.statSync(filepath).mtime.getTime()){
            data=fs.readJsonSync(filepath)
        }else{
            data=await api.getSaDayPrice(code)
            console.log(code,data)
            fs.outputJsonSync(filepath,data)
        }
        const dLen=30;//统计最近30天
        const lists=data.marketData.split(';').map(str=>str.split(','))
        const list20=lists.splice(lists.length-dLen,lists.length).reverse()
        let down=0
        let up=0
        let cLen=0
        list20.forEach((item,i)=>{
            const high=Number(item[data.headers.indexOf('最高')])
            const low=Number(item[data.headers.indexOf('最低')])
            const ma10avgprice=Number(item[data.headers.indexOf('ma10均价')])
            if(low>ma10avgprice){
                if(up===i){
                    cLen=up+1
                }
                up++
            }else if(high<ma10avgprice){
                if(down===i){
                    cLen=down+1
                }
                down++
            }
        })
        paiMingList.push({
            code,
            dLen,
            cLen,
            order:cLen+Math.max(up,down),
            ma10avgprice:up>down?up:-down
        })
    }
    paiMingList.sort(function (a,b){
        return b.order-a.order
    })
    const obj=paiMingList[0]
    console.log(`${nameMap[obj.code]}${obj.code}:连续${obj.cLen}天在10日均线${obj.ma10avgprice>0?'上':'下'}方,${obj.dLen}天内有${Math.abs(obj.ma10avgprice)}天在均线${obj.ma10avgprice>0?'上':'下'}方`)
    console.log(paiMingList)
}

getSrc()
export default api;

 

标签:code,const,品种,item,搜索,obj,期货,return,data
From: https://www.cnblogs.com/caoke/p/18352708

相关文章

  • 【数据结构与算法】输出二叉树中从每个叶子结点到根结点的路径 C++实现(二叉树+栈+深度
    二叉树叶子节点到根节点的路径题目描述给定一棵二叉树的后序遍历序列post[s1..t1]和中序遍历序列in[s2..t2],设计一个算法,输出二叉树中从每个叶子节点到根节点的路径。请使用栈的数据结构解决。输入格式输入包括两行:第一行为后序遍历序列post[s1..t1]。第二行为中序......
  • chatgpt这么火,现在AI搜索引擎有哪些呢?
    常用国外的AI搜索引擎:ChatGPT(OpenAI):一个基于自然语言处理的AI助手,能够回答问题、生成文本内容并执行多种语言任务。GoogleBard:Google的AI驱动搜索引擎,集成了自然语言处理技术,旨在提供更加智能和个性化的搜索体验。MicrosoftBing(AI-Powered):微软将OpenAI的GPT模型集成到......
  • 直播平台开发,基础搜索方式之拼音搜索
    直播平台开发,基础搜索方式之拼音搜索核心思想:先获取的汉字的拼音,然后对其进行匹配获取汉字的拼音我这里使用的是pinyin;简单介说一下pinyin包的用法importpyfrom"pinyin";py("中心");//[['zhōng'],['xīn']]默认是带声调的py("中心",{heteronym:t......
  • 直播软件搭建,利用精准搜索优化用户搜索体验
    精准搜索核心思想:将用户输入的字符串作为一个整体去与数组的每一项做匹配,把符合的保存下来即可。这里主要用到的JavaScript字符串的indexOf()方法——返回某个指定的字符串值在字符串中首次出现的位置,如果不存在,则返回-1。有一点需要注意,`indexOf()`方法对大小写敏感!另外数......
  • 直播软件开发,实现模糊搜索的代码分析
    直播软件开发,实现模糊搜索的代码分析核心思想:将用户输入的字符串进行拆分去与数组的每一项做匹配,把符合的保存下来即可。要进行拆分这里就需要用到正则表达式实现//其余代码同上handleSearch(queryString){letqueryStringArr=queryString.split("");letst......
  • 【VSCode】《VSCode安装本地历史记录插件并配置搜索忽略》
    前言VSCode本地会记录修改和保存的历史文件信息,当没有使用git管理的时候,就可以通过本地历史搜索快速比对还原历史代码。插件安装目前最新版本停留在1.8.1更新时间为2020/3/4号;估计作者后续也没有更新计划了。安装后会在左下角和左上角出现LOCALHISTORY和./history两个......
  • 搜索之meet in middle(有效的小方法)
    题目:[https://www.luogu.com.cn/problem/P2962](P2962[USACO09NOV]LightsG)算法:meetinmiddle(折半搜索)思路:有\(35\)个点,总共的操作状态有\(2^{35}\)种情况。如果我们采用一般的搜索方式,时间上会毫不犹豫得爆掉。所以,我们要用折半搜索的方式。将所有的点拆分成两个集合,对......
  • ecosia 搜索引擎爬虫
    因为他有cloudflare五秒盾所以需要先破五秒盾网上找的资料已验证可用 然后替换代码里的url_baseDocker运行一个容器就可以了。启动命令为:dockerrun-d\--name=flaresolverr\-p8191:8191\-eLOG_LEVEL=info\--restartunless-stopped\ghcr.io/flareso......
  • Windows 11 搜索要点功能,删除搜索广告
    点击搜索设置关闭要点搜索使用Windows+R快捷键打开「运行」对话框,执行gpedit.msc打开组策略编辑器。依次展开「计算机配置」>「管理模板」>「Windows组件」>「搜索」。在右侧面板中找到并双击「允许搜索要点」策略。根据需要,选择「已启用」或「已禁用」,然后点击「......
  • 吃瓜云网盘资源搜索技巧有哪些?
    ......