當前位置:首頁 » 股市行情 » c如何獲取股票價格
擴展閱讀
黃色在線免費視頻 2025-08-18 15:24:34
股票交易傭金萬3千3 2025-08-18 15:11:02

c如何獲取股票價格

發布時間: 2021-07-09 07:06:22

❶ 在編程中如何能能獲得股票的數據 例如當前價,最高價,最低價,當前成交量等等

要看使和什麼數據了,每個軟體數據的存儲格式不同,有的還是加密存儲的(如指南針)。

以常見的錢龍數據來說吧(錢龍是最簡單的存儲格式)當前價,最高價,最低價,當前成交量等等都是以隨機文件存儲的長整型數據。下面是讀取錢龍數據的C源碼,你可以參考一下:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

typedef struct { ------->定義數據類型
unsigned long date; ------->定義日期為長整
unsigned long open; ------->定義開盤為..
unsigned long high; ------->定義最高為..
unsigned long low; ------->定義最低為..
unsigned long close; ------->定義收盤為..
unsigned long travl; ------->定義成交量..
unsigned long traca; ------->定義成交額..
char unuse[12];
} RECORD;

RECORD reco;
int readrec(FILE *);

void main()
{
FILE *fp;
if((fp = fopen("000001.day","rb")) == NULL) // 打開深發展日線

{ printf("Error: Can't open 000001.DAY !\n");
exit(0); }
readrec(fp);
fclose(fp);
if(getch()==0) getch();
exit(0);
}

int readrec(FILE *fp)

{

float fn;

while (! feof(fp)) {

fread(&reco,sizeof(RECORD),1,fp);

printf("%10lu ",reco.date);
fn=float(reco.open)/1000;

printf("%8.2f ",fn);
fn=float(reco.high)/1000; .
printf("%8.2f ",fn); .
fn=float(reco.low)/1000; .
printf("%8.2f ",fn); .
fn=float(reco.close)/1000; .
printf("%8.2f ",fn); .
printf("%8lu ",reco.travl); .
printf("%8lu\n",reco.traca);
}
printf("\n");

return 0;

❷ 通達信中,請問如何用公式獲取股票某天的價格 如條件選股時用 2010.12.21的收盤價大於15

設置參數N 最小值1070101,最大值9999999,預設值1101221
NN:=BARSLAST(DATE=N);
VAR2:REF(C,NN)>15;
若要設置另外某一天,只要調整參數N就可以了。
這個指標的意思是選取2010年12月21日那一天的收盤價大於15的股票。
PS:不知道是不是你要用的公式~~

❸ 請問用C#如何提取新浪等網站的股票實時動態行情數據

找到一個利用webservice的方法,希望能夠幫助你

聲明: 這篇文章適合在C#命令行編譯器下的開發借鑒,對於已經裝了MS.NET的朋友,開發客戶端時將會更容易一些,我隨後對登出我自己的開發程序,這篇文章為我摘錄的.摘錄URL:http://www.knowsky.com/2016.html

(一)

Web Services,即Web服務,是微軟.NET戰略中非常重要的一個概念。它的目的是將Web站點轉變為集組織、應用、服務以及設備於一體的可設計Web站點,使Web站點不再處於被動的地位。

本文將介紹如何建立和使用一個在.NET 平台上提供股票報價的Web服務。我們將使用Yahoo的一項以CSV(以逗號分隔的值)的格式提供股票報價的免費服務,將其包含在我們的web 服務中。

注意:這個報價服務常式的運行大約延遲15分鍾,只用於教學目的。

建立Web服務

下面將採用逐步講解代碼的形式來幫助你理解在.NET 中Web服務的編程模式。我們可以使用notepad等任何文本編輯器來編寫 這里的Web服務常式代碼,最後將文件存儲為StockQuote.asmx。請注意:所有的Web服務文件保存時都使用擴展名 *.asmx。

<%@ WebService Language="C#" class="DailyStock" %>

代碼的第一行定義了一個 Web 服務,使用的語言是C#。class屬性用來指示Web服務應該調用和使用的類。如果在Web服務中使用了許多類,那麼就應該用這個屬性來表明Web服務應該首先調用的類。

using System ;

using System.Web.Services ;

using System.Net ;

using System.IO ;

using System.Text ;

以上代碼負責引入必要的名稱空間。 請記住永遠都要引入System.Web.Services這個名稱空間。根據類的需要,再引入保留的名稱空間。

public class DailyStock : WebService

{

......

....

}

這里我們將公共類定義為 DailyStock,它擴展了 System.Web.Services.WebService 類。所有想暴露為 Web服務的類都應該擴展System.Web.Services.WebServices類。 另外,Web 服務的存取修飾語永遠都是public。

[WebMethod]

public string GetQuote(string symbol)

{

........

........

}

以上我們定義了一個公共Web方法 GetQuote。同類的定義一樣,Web 方法也都要用 public這個修飾語來聲明。 [WebMethod] 屬性呈現出將要被用在Web服務中的一些潛在方法,希望客戶存取的所有方法都應該用[WebMethod] 屬性進行標記。GetQuote方法接受一個字元串輸入參數,它包含了使用者所需要的報價符號。這個方法返回一個字元串,其中包含股票報價或錯誤

string ret;

try

{

// The Path to the Yahoo Quotes Service

string fullpath = @"http://

// Create a HttpWebRequest object on the Yahoo url

HttpWebRequest webreq = (HttpWebRequest)WebRequestFactory.Create(fullpath);

// Get a HttpWebResponse object from the Yahoo url

HttpWebResponse webresp = (HttpWebResponse)webreq.GetResponse();

// Create a StreamReader object and pass the Yahoo Server stream as a parameter

StreamReader strm = new StreamReader(webresp.GetResponseStream(), Encoding.ASCII);

// Read a single line from the stream (from the server)

// We read only a single line, since the Yahoo server returns all the

// information needed by us in just one line.

ret= strm.ReadLine();

// Close the stream to the server and free the resources.

strm.Close();

}

catch(Exception)

{

// If exception occurred inform the user

ret="Exception Occurred" ;

}

file://Return the Quote or Exception

return ret ;

以上是GetQuote 方法的內容。這里使用一個 try-catch模塊來截獲從Yahoo中得到股票報價的過程中可能發生的錯誤。在 try-catch模塊內部聲明了一個字元串變數,這個變數中保存著獲取yahoo服務的完整路徑,用戶提供的symbol字元串變數被加到這個連接字元串上。

路徑建立好之後,就要從連接字元串中構造一個 HttpWebRequest對象和一個 HttpWebResponse 對象。接著,用StreamReader打開一個到Yahoo

(二)

配置Web服務

配置Web 服務與一個配置ASP.NET應用程序相同。如果自己有Web伺服器,那麼就創建一個稱為stockquote 的虛擬目錄,然後將 StockQuote.asmx復制到這個目錄中。如此就完成了Web 服務的配製。要調用Web服務,首先啟動瀏覽器,然後鍵入Web 服務的路徑,如 http://localhost/stockquote/StockQuote.asmx,接著看到的頁面就是由Web服務運行時間環境自動生成的結果。在文本框中鍵入符號,例如AOL 或 MS,再點擊invoke按鈕,這時就會彈出一個新的窗口,在其中向你顯示了Web服務的輸出信息。

使用Web服務

基本上有兩種使用Web 服務的方法。可以通過瀏覽器直接調用 Web 服務,並按照上面介紹的方法來使用它。或者,也可以在應用程序使用它。下面就看看如何建立一個Web 應用程序和一個控制台應用程序,通過它們來使用Web服務。當然,也可以使用Win Form 應用程序作為替代來使用Web 服務。

獲取服務的描述

為了與Web服務進行通信,客戶應該知道這個Web服務支持哪種方法以及如何與它們進行通信。.NET 上的Web服務自動用SDL(服務描述語言)產生一個 XML格式文檔,這樣就使客戶能夠獲取與Web服務通信時所需要的信息。 在Web 服務URL之後附加 ?SDL 使Web服務生成客戶能夠使用的SDL文檔。要查閱這里接受的Web 服務的SDL,可以在瀏覽器中鍵入http://localhost/stockquote/StockQuote.asmx?SDL。

(三)

構造代理庫

.NET 平台上的應用程序可以使用代理庫來調用Web服務上的方法,這樣使用Web服務就非常容易。生成代理庫的第一步是從SDL中生成一個Web服務的代理類。.NET SDK提供了一個叫做WebServiceUtil.exe的工具,它能夠幫助我們生成一個代理類。要生成Web服務的代理類,首先進入命令行環境,然後轉到將要開發客戶應用程序的那個目錄,接著輸入以下命令:

WebServiceUtil /c:proxy /pa:http://localhost/stockquote/StockQuote.asmx?SDL /n:Quotes

以上命令執行後,會在運行這個命令的目錄中生成一個 C# 源代碼文件,叫做 DailyStock.cs (要記住Web服務類的名稱也是 DailyStock,)。現在來看這些自變數的含義:

l /c:proxy:告訴WebServiceUtil生成一個代理類

l /pa:http://localhost/stockquote/StockQuote.asmx?SDL:向SDL提供Web服務的路徑。如果已經將Web服務的SDL 保存到了硬碟上,我們甚至可以提供SDL文件的本地路徑。

l /n:Quotes:告訴WebServiceUtil將代理類放在 Quotes名稱空間。這樣做的目的是為了更容易地管理和使用代理庫。

代理庫准備好之後,我們使用C# 編譯器從上面步驟中剛創建的代理類中生成一個代理庫:

csc /target:library /r:System.dll;System.Web.Services.dll;System.Net.dll;

System.IO.dll;System.Xml.Serialization.dll DailyStock.cs

生成代理庫的時候,我們使用了 /target:library開關以表示想要輸出一個庫文件。我們還引用一些曾經在Web服務中使用過的集合。編譯器將在運行命令所在目錄中生成一個名為DailyStock.dll 的dll 庫。

(四)

創建 Web應用程序用戶

下面創建一個Web應用程序StockConsumer.aspx,它作為這個StockQuote(股票報價) Web服務的第一個用戶。

<%@ Page language="C#" %>

<%@ Import Namespace="System.Xml" %>

<%@ Import Namespace="Quotes" %>

以上引入必要的名稱空間。要記住也要引入 Quotes名稱空間,它是代理庫的名稱空間。

<html>

<head>

<script runat=server>

// Wire up the onClick event for a button

protected void button1_Click(object sender, EventArgs e)

{

file://Create a object of the class DailyStock (the proxy class)

DailyStock ds = new DailyStock();

// Call the GetQuote method of the proxy class DailyStock and

// pass the symbol string from the textbox

string res = ds.GetQuote(symbol.Text);

// The returned string has values which are separated

// by commas.

// Hence we split the returned string into parts

char[] splitter = {','} ;

string[] temp = res.Split(splitter);

// Check if the string array returned has more than one

// elements since if there are less than one elements

// then an exception must have been returned

if(temp.Length >1)

{

// The WebService returns a lot of information about the

// stock. We only show the relevant portions

// Set the label to current Index

curindex.Text = "Current Index :"+temp[1];

// Set the label to current Date Time

curdate.Text ="Last Update on"+temp[2]+" at "+temp[3];

}

else

{

error.Text = "Error :"+res ; file://set the error label

}

}

</script>

以上ASP.NET頁面代碼中,首先對Web 服務DailyStock進行例示。由於已經生成了代理庫,因此Web服務的調用方法與其它任何庫的調用方法都相同。調用DailyStock 類的GetQuote()方法後,將返回一個字元串,其中包含了以逗號分隔的列表符號的完整信息。

我們將限制顯示給客戶的信息為只顯示當前指數和所報告指數的日期/時間。為了將字元串分成若干不同的部分,這里使用了字元串類的Split方法,在出現逗號的地方將字元串分割成部分。並且,將分割開的字元串組成數組之後,再使用相關的數值為Web頁面設置不同的標簽。

代碼的其餘部分

<body>

<center>

<h2>.NET101 Stock Quote Consumer </h2>

<form runat=server >

<table border=1 celspacing=1>

<tr><th>Please enter the symbol below</th></tr>

<tr><td>

<asp:textbox id=symbol runat=server />

<asp:button id=button1 text="Get Quote" onClick="button1_Click" runat=server />

</td></tr>

<tr><td><asp:label id=curindex runat=server /></td></tr>

<tr><td><asp:label id=curdate runat=server /></td></tr>

<tr><td><asp:label id=error runat=server /></td></tr>

</table>

</form>

</center>

</body>

</html>

(五)

小結

下面總結一下配置Web應用程序的步驟:

l 創建一個叫做StockConsumer的虛擬目錄

l 將 StockConsumer.aspx 文件復制到這個虛擬目錄下

l 在wwwroot 文件夾中創建一個 bin 虛擬目錄

l 設置bin目錄以執行代碼的許可權

l 將代理 dll 文件DailyStock.dll復制到這個目錄下,ASP.NET 運行時間引擎會自動從Bin目錄中選擇對外部庫的引用。這里的例子中,這個外部庫是DailyStock.dll。

現在調用文件 http://localhost/StockConsumer/StockConsumer.aspx,然後鍵入股票的符號,點擊 "Get Quote"(獲取報價)按鈕,就能看到正在使用的Web服務了。注意:Web服務應該能夠使用yahoo伺服器,否則它就會返回一個錯誤信息。

❹ 請教大神股票程序編寫:怎樣獲取某一天的(如10天內最高價這一天的開盤價(O) 或收盤價(C),這句怎樣寫

{10天內最高價這一天的開盤價}
REF(O,HHVBARS(H,10));
===============
{10天內最高價這一天的收盤價}
REF(C,HHVBARS(H,10));

❺ C語言(股價預測函數)

#include <stdlib.h>
#include <time.h>
float prediction(float x, int n){//從x隨機行走n步
static float delta=0.01;
static char first=1;//定義靜態局部變數
int i;
if(first){//如果第一次運行
srand(time(NULL));//用系統時間初始化隨機數發生器
first=0;
}
for(i=0;i<n;++i){
x+=rand()/(1.0+RAND_MAX)*2*delta-delta; //x加上一個[-Δ,Δ)之間的隨機小數
}
return x;
}

❻ 求股票價格是如何計算出來的

(賣出股票的價錢-買如股票的價錢)乘以*你買的股數=基本上的你的利潤(裡麵包含印花稅)
計算股票指數時,往往把股票指數和股價平均數分開計算。按定義,股票指數即股價平均數。但從兩者對股市的實際作用而言,股價平均數是反映多種股票價格變動的一般水平,通常以算術平均數表示。人們通過對不同的時期股價平均數的比較,可以認識多種股票價格變動水平。而股票指數是反映不同時期的股價變動情況的相對指標,也就是將第一時期的股價平均數作為另一時期股價平均數的基準的百分數。通過股票指數,人們可以了解計算期的股價比基期的股價上升或下降的百分比率。由於股票指數是一個相對指標,因此就一個較長的時期來說,股票指數比股價平均數能更為精確地衡量股價的變動。

1. 股價平均數的計算

股票價格平均數反映一定時點上市股票價格的絕對水平,它可分為簡單算術股價平均數、修正的股價平均數、加權股價平均數三類。人們通過對不同時點股價平均數的比較,可以看出股票價格的變動情況及趨勢。

(1)簡單算術股價平均數

簡單算術股價平均數是將樣本股票每日收盤價之和除以樣本數得出的,即:

簡單算術股價平均數=(P1+P2+P3+…+ Pn)/n

世界上第一個股票價格平均——道·瓊斯股價平均數在1928年10月1日前就是使用簡單算術平均法計算的。

現假設從某一股市采樣的股票為A、B、C、D四種,在某一交易日的收盤價分別為10元、16元、24元和30元,計算該市場股價平均數。將上述數置入公式中,即得:

股價平均數=(P1+P2+P3+P4)/n

=(10+16+24+30)/4

=20(元)

簡單算術股價平均數雖然計算較簡便,但它有兩個缺點:一是它未考慮各種樣本股票的權數, 從而不能區分重要性不同的樣本股票對股價平均數的不同影響。二是當樣本股票發生股票分割派發紅股、增資等情況時,股價平均數會產生斷層而失去連續性,使時間序列前後的比較發生困難。例如,上述D股票發生以1股分割為3股時,股價勢必從30元下調為10元, 這時平均數就不是按上面計算得出的20元, 而是(10+16+24+10)/4=15(元)。這就是說,由於D股分割技術上的變化,導致股價平均數從20元下跌為15元(這還未考慮其他影響股價變動的因素),顯然不符合平均數作為反映股價變動指標的要求。

(2)修正的股份平均數

修正的股價平均數有兩種:

一是除數修正法,又稱道式修正法。 這是美國道·瓊斯在1928年創造的一種計算股價平均數的方法。該法的核心是求出一個常數除數,以修正因股票分割、增資、發放紅股等因素造成股價平均數的變化,以保持股份平均數的連續性和可比性。具體作法是以新股價總額除以舊股價平均數,求出新的除數,再以計算期的股價總額除以新除數,這就得出修正的股介平均數。即:

新除數=變動後的新股價總額/舊的股價平均數

修正的股價平均數=報告期股價總額/新除數

在前面的例子除數是4,經調整後的新的除數應是:

新的除數=(10+16+24+10)/20=3,將新的除數代入下列式中,則:

修正的股價平均數=(10+16+24+10)/3=20(元)得出的平均數與未分割時計算的一樣,股價水平也不會因股票分割而變動。

二是股價修正法。股價修正法就是將股票分割等,變動後的股價還原為變動前的股價,使股價平均數不會因此變動。美國《紐約時報》編制的500 種股價平均數就採用股價修正法來計算股價平均數。

(3)加權股價平均數

加權股價平均數是根據各種樣本股票的相對重要性進行加權平均計算的股價平均數,其權數(Q) 可以是成交股數、股票總市值、股票發行量等。

2.股票指數的計算

股票指數是反映不同時點上股價變動情況的相對指標。通常是將報告期的股票價格與定的基期價格相比,並將兩者的比值乘以基期的指數值,即為該報告期的股票指數。股票指數的計算方法有三種:一是相對法,二是綜合法,三是加權法。

(1)相對法

相對法又稱平均法,就是先計算各樣本股票指數。再加總求總的算術平均數。其計算公式為:

股票指數=n個樣本股票指數之和/n

英國的《經濟學家》普通股票指數就使用這種計演算法。

(2)綜合法

綜合法是先將樣本股票的基期和報告期價格分別加總,然後相比求出股票指數。即:

股票指數=報告期股價之和/基期股價之和

代入數字得:

股價指數=(8+12+14+18)/(5+8+ 10 + 15) = 52/38=136.8%

即報告期的股價比基期上升了36.8%。

從平均法和綜合法計算股票指數來看,兩者都未考慮到由各種采樣股票的發行量和交易量的不相同,而對整個股市股價的影響不一樣等因素,因此,計算出來的指數亦不夠准確。為使股票指數計算精確,則需要加入權數,這個權數可以是交易量,亦可以是發行量。

(3)加權法

加權股票指數是根據各期樣本股票的相對重要性予以加權,其權數可以是成交股數、股票發行量等。按時間劃分,權數可以是基期權數,也可以是報告期權數。以基期成交股數(或發行量)為權數的指數稱為拉斯拜爾指數;以報告期成交股數(或發行量)為權數的指數稱為派許指數。

拉斯拜爾指數偏重基期成交股數(或發行量),而派許指數則偏重報告期的成交股數(或發行量)。目前世界上大多數股票指數都是派許指數。

❼ 如何用C程序實現 讀取DAT股票文件數據

int a = 0x19554c32;
這樣就能拿到數據,但讀文件的時要二進制打開讀,就是fopen("數據文件名「,"rb");
然後fread讀,都到一個buf里,讓後將buf按照你的類型強轉就行。

❽ 股票當前的價格是怎麼計算的

一、目前A股市場上股票上市的定價方法是建立在企業當年的預測利潤基礎上,比過去採用前三年利潤的平均值來確定股價相對科學一些,因為投資者是投資未來的業績而非過去的回憶。目前國內A股股票上市價格計算公式為:
發行價格P=每股利潤EPS*市盈率R
其中:每股利潤=發行當年預測利潤/發行當年加權股本數
二、決定股票上市價格主要有以下幾個因素:
(1)上市企業的整體評估價值V(主要是企業核心技術的評估價值)。此因素是決定股票上市價格的重中之重,其評估方法和結果不但要得到二板上市委員會的認可,而且必須通過投資者的最後檢驗,因為只有投資者才是購買股票的顧客,是上帝。研究上市企業的整體評估價值是目前內地券商研究機構必須重點研究的二板市場課題。
(2)投資者對上市企業價值的認可度M1。此因素決定於保薦人向潛在投資者宣傳企業價值的營銷戰略是否成功。
(3)上市時企業所屬國家和地區、上市地和全球政治、經濟、金融形勢,稱之為宏觀影響系數M2。很明顯,亞洲金融危機的爆發對潛在投資者在亞洲的投資決策的影響難以估量,直接影響到股票的發行價格乃至發行成功與否。
(4)投資者在一級市場申購新股的合理投資回報率R。若沒有誘人的投資回報,誰會動用資金去申購具有更大風險的二級市場股票呢?風險資金的成本一般是比較高的。

❾ 如何使用 Yahoo Finance stock API 獲取股票數據

1、通過API獲取實時數據

請求地址

http://finance.yahoo.com/d/quotes.csv?s=<股票名稱>&f=<數據列選項>

參數

s – 表示股票名稱,多個股票之間使用英文加號分隔,如」XOM+BBDb.TO+JNJ+MSFT」,羅列了四個公司的股票:XOM, BBDb.TO, JNJ, MSFT。

f – 表示返回數據列,如」snd1l1yr」。更詳細的參見雅虎股票 API f 參數對照表。

2、通過API獲取歷史數據

請求地址

http://ichart.yahoo.com/table.csv?s=<string>&a=<int>&b=<int>&c=<int>&d=<int>&e=<int>&f=<int>&g=d&ignore=.csv

參數

s – 股票名稱

a – 起始時間,月

b – 起始時間,日

c – 起始時間,年

d – 結束時間,月

e – 結束時間,日

f – 結束時間,年

g – 時間周期。Example: g=w, 表示周期是』周』。d->』日』(day), w->』周』(week),m>』月』(mouth),v->』dividends only』一定注意月份參數,其值比真實數據-1。如需要9月數據,則寫為08。

3、通過API獲取深滬股票數據

雅虎的API是國際性的,支持查詢國內滬深股市的數據,但代碼稍微變動一下,如浦發銀行的代號是:600000.SS。規則是:上海市場末尾加.ss,深圳市場末尾加.sz。