请教如何用WIND查询某只股票一段时间内的具体走势?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教如何用WIND查询某只股票一段时间内的具体走势?相关的知识,希望对你有一定的参考价值。

我想用WIND查询某只股票2个月时间内每天的收盘价,请问如何操作?谢谢了
要把数据导出到EXCEL文件

  把行情打到日K线图,再用鼠标点击所想要的哪一天的走势柱即可看到该天的:开盘价,最高价,最低价,收盘价,涨跌否幅,成交价,换手率,成交金额等数.

  股票走势图通常是叫做分时走势图或即时走势图,它是把股票市场的交易信息实时地用曲线在坐标图上加以显示的技术图形。坐标的横轴是开市的时间,纵轴的上半部分是股价或指数,下半部分显示的是成交量。分时走势图是股市现场交易的即时资料。
  白色曲线表示上证交易所对外公布的通常意义下的大盘指数,也就是加权数。 黄色曲线是不考虑上市股票发行数量的多少,将所有股票对上证指数的影响等同对待的不含加权数的大盘指数。
  参考白色曲线和黄色曲线的相对位置关系,可以得到以下资讯:
  当指数上涨,黄色曲线在白色曲线走势之上时,表示发行数量少的股票涨幅较大;而当黄色曲线在白色曲线走势之下,则表示发行数量多的股票涨幅较大。
  当指数下跌时,假如黄色曲线仍然在白色曲线之上,这表示小盘股的跌幅小于大盘股的跌幅;假如白色曲线反居黄色曲线之上,则说明小盘股的跌幅大于大盘股的跌幅。
  红色、绿色的柱线反映当前大盘所有股票的买盘与卖盘的数量对比情况。红柱增长,表示买盘大于卖盘,指数将逐渐上涨;红柱缩短,表示卖盘大于买盘,指数将逐渐下跌。绿柱增长,指数下跌量增加;绿柱缩短,指数下跌量减小。
  黄色柱线表示每分钟的成交量,单位为手。
参考技术A 现在的配资基本都是实盘了,虚拟盘是不合法的,所以需要您仔细分辨了。4533 参考技术B 进入WIND,选数据浏览器,就可以找到你要的股票,并看到具体信息,
希望对你有帮助本回答被提问者采纳
参考技术C 百度鑫茂财讯你就知道,不如看他们的股市直播浅显易懂

一本通1605股票交易

1605:股票交易

时间限制: 1000 ms         内存限制: 524288 KB

【题目描述】

原题来自:SCOI 2010

最近 lxhgww 又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律。

通过一段时间的观察,lxhgww 预测到了未来 T 天内某只股票的走势,第 ii 天的股票买入价为每股 APi ,第 i 天的股票卖出价为每股 BPi (数据保证对于每个 i,都有 APiBPi ),但是每天不能无限制地交易,于是股票交易所规定第 i 天的一次买入至多只能购买 ASi 股,一次卖出至多只能卖出 BSi 股。

另外,股票交易所还制定了两个规定。为了避免大家疯狂交易,股票交易所规定在两次交易(某一天的买入或者卖出均算是一次交易)之间,至少要间隔 W 天,也就是说如果在第 i 天发生了交易,那么从第 i+1 天到第 i+W 天,均不能发生交易。同时,为了避免垄断,股票交易所还规定在任何时间,一个人的手里的股票数不能超过 MaxP。

在第一天之前,lxhgww 手里有一大笔钱(可以认为钱的数目无限),但是没有任何股票,当然,T 天以后,lxhgww 想要赚到最多的钱,聪明的程序员们,你们能帮助他吗?

【输入】

输入数据第一行包括三个整数,分别是 T,MaxP,W。

接下来 T 行,第 i 行代表第 i?1 天的股票走势,每行四个整数,分别表示 APi,BPi,ASi,BSi 。

【输出】

输出数据为一行,包括一个数字,表示 lxhgww 能赚到的最多的钱数。

【输入样例】

5 2 0
2 1 1 1
2 1 1 1
3 2 1 1
4 3 1 1
5 4 1 1

【输出样例】

3

【提示】

数据范围与提示:

对于 30% 的数据,0W<T50,1MaxP50;
对于 50% 的数据,0W<T2000,1MaxP50;
对于 100% 的数据,0W<T2000,1MaxP2000,1BPi?APi?1000,1ASi?,BSi?MaxP。

 

sol:一本通居然没有数据范围太优秀了

很容易发现可以dp,dp[i][j]表示到第i个位置,有j张股票最多赚多少钱

先考虑暴力dp

1):dp[i][j]由dp[i-1][j]直接转移过来,dp[i][j]=max(dp[i][j],dp[i-1][j])

2):直接从0开始买股票 dp[i][j]=max(dp[i][j],j*AP)  (0<j≤MaxP)

3):买股票,股票从 k 张变为 j 张,dp[i][j]=max(dp[i][j],dp[i-W-1][k]-(j-k)*AP)

4):卖股票,股票从 k 张变成 j 张,dp[i][j]=max(dp[i][j],dp[i-W-1][k]+(k-j)*BP)

技术图片
#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{
    ll s=0;
    bool f=0;
    char ch= ;
    while(!isdigit(ch))
    {
        f|=(ch==-);
        ch=getchar();
    }
    while(isdigit(ch))
    {
        s=(s<<3)+(s<<1)+(ch^48);
        ch=getchar();
    }
    return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
    if(x<0)
    {
        putchar(-);
        x=-x;
    }
    if(x<10)
    {
        putchar(x+0);
        return;
    }
    write(x/10);
    putchar((x%10)+0);
    return;
}
inline void writeln(ll x)
{
    write(x);
    putchar(
);
    return;
}
#define W(x) write(x),putchar(‘ ‘)
#define Wl(x) writeln(x)
const int N=2005;
int T,MaxP,W;
int dp[N][N];
int main()
{
//    freopen("trade1.in","r",stdin);
    int i,j,k;
    R(T); R(MaxP); R(W);
    memset(dp,-63,sizeof dp);
    for(i=1;i<=T;i++)
    {
        int AP=read(),BP=read(),AS=read(),BS=read();
        for(j=1;j<=min(AS,MaxP);j++) dp[i][j]=-1*AP*j;
        for(j=0;j<=MaxP;j++) dp[i][j]=max(dp[i][j],dp[i-1][j]);
        if(i<=W+1) continue;
        for(j=1;j<=MaxP;j++)
        {
            for(k=max(j-AS,0);k<j;k++)
            {
                dp[i][j]=max(dp[i][j],dp[i-W-1][k]-AP*(j-k));
                /*
                    dp[i][j]=max(dp[i][j],dp[i-W-1][k]-AP*j+AP*k);
                    dp[i][j]=max(dp[i][j],(dp[i-W-1][k]+AP*k)-AP*j)
                    (dp[i-W-1][k]+AP*k)最大的单调队列队首
                */
            }
        }
        for(j=0;j<MaxP;j++)
        {
            for(k=j+1;k<=min(MaxP,j+BS);k++)
            {
                dp[i][j]=max(dp[i][j],dp[i-W-1][k]+(BP*(k-j)));
                /*
                    dp[i][j]=max(dp[i][j],dp[i-W-1][k]+BP*k-BP*j);
                    dp[i][j]=max(dp[i][j],(dp[i-W-1][k]+BP*k)-BP*j);
                    (dp[i-W-1][k]+BP*k)最大的单调队列队首
                */
            }
        }
    }
    Wl(max(dp[T][0],0));
    return 0;
}
/*
input
5 2 0
2 1 1 1
2 1 1 1
3 2 1 1
4 3 1 1
5 4 1 1
output
3
*/
暴力代码

然后因为这是暴力dp转移,复杂度是T*MaxP*MaxP,可以得到70pts的好成绩

单调队列优化

把式子拆开可得如下(暴力代码注释)

dp[i][j]=max(dp[i][j],dp[i-W-1][k]-AP*j+AP*k);
dp[i][j]=max(dp[i][j],(dp[i-W-1][k]+AP*k)-AP*j)
所以可以维护一个单调队列,(dp[i-W-1][k]+AP*k)最大的单调队列队首

另一个同理

技术图片
#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{
    ll s=0;
    bool f=0;
    char ch= ;
    while(!isdigit(ch))
    {
        f|=(ch==-);
        ch=getchar();
    }
    while(isdigit(ch))
    {
        s=(s<<3)+(s<<1)+(ch^48);
        ch=getchar();
    }
    return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
    if(x<0)
    {
        putchar(-);
        x=-x;
    }
    if(x<10)
    {
        putchar(x+0);
        return;
    }
    write(x/10);
    putchar((x%10)+0);
    return;
}
inline void writeln(ll x)
{
    write(x);
    putchar(
);
    return;
}
#define W(x) write(x),putchar(‘ ‘)
#define Wl(x) writeln(x)
const int N=2005,inf=0x3f3f3f3f;
int T,MaxP,W;
int dp[N][N];
struct Record
{
    int Shuz,Weiz;
}Ddq[N];
int main()
{
//    freopen("trade1.in","r",stdin);
    int i,j,Head,Tail;
    R(T); R(MaxP); R(W);
    memset(dp,-63,sizeof dp);
    for(i=1;i<=T;i++)
    {
        int AP=read(),BP=read(),AS=read(),BS=read();
        for(j=1;j<=min(AS,MaxP);j++) dp[i][j]=-1*AP*j;
        for(j=0;j<=MaxP;j++) dp[i][j]=max(dp[i][j],dp[i-1][j]);
        if(i<=W+1) continue;
        Head=1; Tail=0;
        for(j=0;j<=MaxP;j++)
        {
            while(Head<Tail&&Ddq[Head].Weiz<j-AS) Head++;
            while(Head<=Tail&&dp[i-W-1][j]+AP*j>Ddq[Tail].Shuz) Tail--;
            Ddq[++Tail]=(Record){dp[i-W-1][j]+AP*j,j};
            dp[i][j]=max(dp[i][j],Ddq[Head].Shuz-j*AP);
        }
        Head=1; Tail=0;
        for(j=MaxP;j>=0;j--)
        {
            while(Head<Tail&&Ddq[Head].Weiz>j+BS) Head++;
            while(Head<=Tail&&dp[i-W-1][j]+BP*j>Ddq[Tail].Shuz) Tail--;
            Ddq[++Tail]=(Record){dp[i-W-1][j]+BP*j,j};
            dp[i][j]=max(dp[i][j],Ddq[Head].Shuz-j*BP);
        }
    }
    int ans=0;
    for(i=0;i<=MaxP;i++) ans=max(ans,dp[T][i]);
    Wl(ans);
    return 0;
}
/*
input
5 2 0
2 1 1 1
2 1 1 1
3 2 1 1
4 3 1 1
5 4 1 1
output
3
*/
单调队列优化





以上是关于请教如何用WIND查询某只股票一段时间内的具体走势?的主要内容,如果未能解决你的问题,请参考以下文章

一本通1605股票交易

SCOI 2010股票交易

[SCOI2010]股票交易

[SCOI2010]股票交易

单调队列优化DP

bzoj 1855: [Scoi2010]股票交易