① 我要做程序化交易編程, 國內那些股票/期貨軟體支持C或者C++行情分析編程介面
你自己私自是不能獲取行情數據的,證券行的股票交易軟體是通過自己公司的伺服器來獲取證券交易所的行情信息的
② 跪求c語言高手幫忙解答一個問題~~!!!期末用的!!
親手給你寫的,汗!
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
char stockname[16];
float coeffi;
float price_per;
float est_price;
} STOCK;
void calc(STOCK stock_arr[],int n)
{
int i;
for(i=0;i<n;i++)
stock_arr[i].est_price=stock_arr[i].coeffi * stock_arr[i].price_per;
}
void InputData(STOCK st)
{
char buff[128];
char *p;
for(int i=0;i<5;i++)
{
puts("請輸入數據");
gets(buff);
p=strtok(buff,"");
memcpy(st[i].stockname,p);
p=strtok(NULL,"");
st[i].coeffi=atof(p);
p=strtok(NULL,"");
st[i].price_per=atof(p);
}
}
OutputResult(STOCK st)
{
puts("Results are as follows:");
puts("=============================");
puts("股票名稱\t股票估格\n");
for(int i=0;i<5,i++)
printf("%s\t%f",st[i].stockname,st[i].est_price);
}
void main()
{
STOCK stoc[5];
InputData(stoc);
calc(stoc,5);
OutputResult(stoc);
}
③ C語言或者VB怎麼實現從別的程序獲得數據
你這需要進程間通信機制。
以你舉的例子來說,你的「自動提示系統」和股票軟體之間,需要能夠互相通信,或者說互相調用對方的介面。你的例子里,不太可能實現的是,股票軟體不太可能提供介面給你的軟體。
具體要實現進程間通信的話,有一些現成的框架,比如CORBA。
CORBA是為了解決分布式計算而設計的協議,有一些公司的產品(比如orbix)實現了這個協議。
使用CORBA架構互相通信的進程可以不在一台機器上,可以應用在網路環境。
使用CORBA這樣的協議,程序還是比較復雜的。
④ 股票選股公式 AND C<20 是什麼意思
股票選股公式 AND C<20 的意思是當前一個條件符合,並且收盤價小於20元。因為AND表示「並且」的意思;C=CLOSE,表示收盤價,<小於符號。
在股市中經常看的大盤就是一個龐大的資料庫,它保存著從有股市以來所有股票的有用數據,如收盤價、最高價、最低價、開盤價等。股民要選股可以自己根據K線走勢去選,也可以根據自己的要求通過函數設計出公式來找到自己所要選的股,這個公式我們就叫選股公式。假如要找股價小於5.00元的股票,那麼只要設一個公式: c>5.00;這個就是簡單的選股公式。
⑤ 某投資組合僅由A、B、C三隻股票構成,其相關數據如下表所示。
根據每隻股票的價值算出期初權重,A=30*200,以此類推。
計算每種情況下每隻股票的收益率,例如A股票繁榮時的收益率為(34.5-30)/30=0.15.
根據計算出的收益率計算每隻股票的期望收益率等於收益率乘以概率,然後組合的收益率就是每隻股票的權重乘以每隻股票的期望收益率。
在Excel中,根據數據計算每隻股票的方差,協方差矩陣。
組合方差就是每隻股票權重的平方乘以方差+2*每兩支股票的權重乘以兩只股票的協方差。
組合標准差就是方差開方。可計算得出結果
⑥ c語言讀取txt文件數據後再次運算後保存入TXT文檔
#include<stdio.h>
#include<stdlib.h>
#defineX100;
intN=X;
intmain()
{
FILE*fin=NULL;
FILE*fout=fopen("out.txt","w");
inta[881][2];
fin=fopen("股票數據TXT格式.txt","r");//打開文件,按讀的方式打開
inti=0;
while(fscanf(fin,"%d%d",&a[i][0],&a[i][1])!=EOF)i++;
fclose(fin);
intn=i;
for(i=0;i<n;i++)
{
printf("%d%d ",a[i][0],a[i][1]);
if(a[i][0]<N&&a[i][0]>0)
{
fprintf(fout,"%d%d ",a[i][0],a[i][1]);
}
}
return0;
}
⑦ 股票軟體編程問題
這個嘛,的確有些異想天開,但只要你努力,編個軟體是做的到的。
第一步,您可以嘗試在一些免費軟體上寫指標,很多軟體都提供公式編輯功能,這些公式編輯器就是一種簡化的計算機語言,如果您對股市的想法不復雜,使用別人的軟體做平台,自己加些東西,可能是上手最快的辦法。
如果您期望獲得的是獨立完整的產品,就需要找數據源了。如果您計算機水平足夠高,任何一款免費軟體的數據都能夠導出來。如果您做不到這一點,可以找個免費的數據介面。這些數據介面在許多軟體論壇上有提供,至於怎樣使用這些介面,您需要找介面的提供者咨詢。免費數據介面是網上的一些編程高手提供的,有些收費,有些免費。即使收費,費用也不高。
找到數據後,就可以寫自己的軟體了。通過各軟體商的摸索,股票軟體幾乎唯一的選擇是C語言。早前人們嘗試過幾乎所有當前流行的計算機語言寫股票軟體,但目前大品牌的正版付費軟體幾乎都是C語言寫的,其他語言在處理數據流上效率太低,以至於不能商品化。
當您的軟體已經可以向市場推廣時,就需要購買正式的數據源了。來自交易所的數據有兩個版本:Level-1和Level-2,Level-1每年約80萬,Level-2是買不到的,後者屬於特許經營,您需要是注冊資本1000萬以上的公司,通過向交易所特別申請才能獲得。運營Level-2數據的投資額大約是3000萬/年,包括研發、市場和數據傳輸平台。
如果您的軟體創新度有限,您的商業機會不多。如果您有自己的創造,那您就有機會了。在這個市場上,獲得每年3000萬的營業額不困難。
如果您試圖獲得每年上億的營業額並在創業板上市,您需要找到不低於4000萬的風險投資,並且組建一個不小於150人的團隊。
祝您成功吧,有志者事竟成。
⑧ 在同花順的指標公式里 如何引用其他股票的數據 在通達信下可以"601600$C "的方式 但同花順好像不行
通達信編輯公式我到沒用過。
同花順裡面,好像你說的那種引用其他股票的方式,從來沒見到相關的函數。
感覺引用其他股票,沒想出有什麼必要性。
可以編好公式後,充分利用組合條件選股,設置條件。
⑨ 在線c語言編程高手
#include <stdio.h>
int main()
{
float price=-1, last_price=-1;
int cnt = 0, total = 0;
int increase_flag = 0;
while(~scanf("%f", &price))
{
total++;
printf("%d\t%7.3f", total, price);
if(cnt > 2)
printf("\t%s", increase_flag ? "sell" : "buy");
printf("\n");
if(last_price != -1)
{
if(price > last_price)
{
if(increase_flag) cnt ++;
else increase_flag = 1, cnt = 1;
}
else if(price < last_price)
{
if(!increase_flag) cnt ++;
else increase_flag = 0, cnt = 1;
}
else cnt++;
}
last_price = price;
}
return 0;
}
part3的
#include <stdio.h>
int main()
{
float price=-1, last_price=-1;
int cnt = 0, total = 0;
int increase_flag = 0;
float cash = 10000, shares = 0;
printf("period price cash shares value\n");
printf("-----------------------------------------------\n");
while(~scanf("%f", &price))
{
total++;
if(cnt > 2)
{
if(increase_flag)
{
if(shares != 0)
{
cash = shares * price;
shares = 0;
}
}
else
{
if(cash != 0)
{
shares = cash / price;
cash = 0;
}
}
}
printf(" %3d \t%7.3f\t%10.2f\t%7.2f\t%10.2f\n", total, price, cash, shares, cash+shares * price);
if(last_price != -1)
{
if(price > last_price)
{
if(increase_flag) cnt ++;
else increase_flag = 1, cnt = 1;
}
else if(price < last_price)
{
if(!increase_flag) cnt ++;
else increase_flag = 0, cnt = 1;
}
else cnt++;
}
last_price = price;
}
return 0;
}