#includestdio.h#includefstream.h#includewindows.h#includeiomanipstructStock{charName[10];intflag;//1买入2卖出0都是不floatPri[20];floatPrice;//记录股票当前价格};structStockS[5]={{桂冠电力,0},{华北制药,0},{ST金泰,0},{伊利股份,0},{柳州重工,0}};intcishu=0;//全局变量,记录变化的次数inttime1,time2,time3,time4,time5;//全局变量,记录买入股票的时间floatZhiYin,ZhiSun;//全局变量,记录用户设定的止盈/止损金额floatMairujia[5];//全局变量,记录买入价floatMaichujia[5];//全局变量,记录卖出价intGupiaoshu;//全局变量,设置每次买入股票的数目intPreNum=0;//记录当前所有的股票数目floatDQGB;//记录当前股本voidprint(StockS[])//输出函数{inti;system(cls);/*运行前清屏*/printf(\n\t\t〓股票自动交易系统[深市全部列表]〓\n\n);printf(\n\t\t股票名称当前股价涨速买/卖\n\n);for(i=0;i5;i++){printf(\t\t%s,S[i].Name);//股票名称printf(\t%4.2f(元/股),S[i].Price);//当前股价(元/股)if(cishu0&&cishu=20)//涨速%{if(S[i].Pri[cishu]S[i].Pri[cishu-1])printf(\t+%4.2f,S[i].Pri[cishu]-S[i].Pri[cishu-1]);elseprintf(\t%4.2f,S[i].Pri[cishu]-S[i].Pri[cishu-1]);if(S[i].Pri[cishu]S[i].Pri[cishu-1])printf(↑);if(S[i].Pri[cishu]S[i].Pri[cishu-1])printf(↓);if(S[i].flag==0)//显示买入卖出printf();if(S[i].flag==1)printf(买入);if(S[i].flag==2)printf(卖出);}elseprintf(\t\t);printf(\n);printf(\n);}printf(\n);printf(当前你拥有股本为:%4.2f(元)\n当前你拥有股票数:%d(股)\n,DQGB,PreNum);if(PreNum==0)//因为第一次股票数是零,而零不能作分母,所以在此作一个判定printf(当前股票成本为:\n);elseprintf(当前股票成本为:%4.2f(元/股)\n,DQGB/PreNum);}voidchange(StockS[])//股价动态变化函数{cishu++;inti,j;for(i=0;i5;i++){S[i].Price=S[i].Pri[cishu];}//定时买入设置买入标志买入时记下买入价格记录当前股本记录当前拥有的股票数目if(time1==cishu){S[0].flag=1;Mairujia[0]=S[0].Price;DQGB+=Gupiaoshu*Mairujia[0];PreNum+=Gupiaoshu;}if(time2==cishu){S[1].flag=1;Mairujia[1]=S[1].Price;DQGB+=Gupiaoshu*Mairujia[1];PreNum+=Gupiaoshu;}if(time3==cishu){S[2].flag=1;Mairujia[2]=S[2].Price;DQGB+=Gupiaoshu*Mairujia[2];PreNum+=Gupiaoshu;}if(time4==cishu){S[3].flag=1;Mairujia[3]=S[3].Price;DQGB+=Gupiaoshu*Mairujia[3];PreNum+=Gupiaoshu;}if(time5==cishu){S[4].flag=1;Mairujia[4]=S[4].Price;DQGB+=Gupiaoshu*Mairujia[4];PreNum+=Gupiaoshu;}for(j=0;j5;j++){if(S[j].flag==1)if(S[j].Price-Mairujia[j]ZhiYin)//止盈{//设置卖出标志记录卖出价格记录当前股本记录当前拥有的股票数目S[j].flag=2;Maichujia[j]=S[j].Price;DQGB-=Gupiaoshu*Maichujia[j];PreNum-=Gupiaoshu;}if(S[j].flag==1)if(Mairujia[j]-S[j].PriceZhiSun)//止损{S[j].flag=2;Maichujia[j]=S[j].Price;DQGB-=Gupiaoshu*Maichujia[j];PreNum-=Gupiaoshu;}}}voidmain()//主函数{inti,j;printf(\n请输入欲购五支股票买入时间:___点(24小时制)\n\n);printf(--);scanf(%d%d%d%d%d,&time1,&time2,&time3,&time4,&time5);printf(\n\n请输入每次买入的股票数:__\n\n--);scanf(%d,&Gupiaoshu);printf(\n\n请输入止盈值:__\n\n--);scanf(%f,&ZhiYin);printf(\n\n请输入止损值:__\n\n--);scanf(%f,&ZhiSun);system(cls);/*运行前清屏*/printf(\n\n\n\n\n\n\t\t\t\t正在进入大盘...);Sleep(5000);ifstreamfin;fin.open(gupiao.txt);for(i=0;i5;i++)for(j=0;j20;j++)finS[i].Pri[j];fin.close();for(i=0;i5;i++)//给股价初始化S[i].Price=S[i].Pri[0];for(i=0;i15;i++){print(S);Sleep(2000);change(S);Sleep(2000);}}/*例如机械的设定正负10%为止损、止盈点,或者一旦从高点下跌5%就止盈股票成本=(买入股票数*单股股价+买入股票数*单股股价-卖出股票数*单股股价)/现有股票数*/