⑴ 股票公式求助高手幫助,謝謝
在通達信軟體中,要想將信號只顯示最後一個圓點,可以使用"最新信號顯示"功能。具體方法如下:
1.在通達信軟體中,點擊工具欄上的「系統設置」按鈕,彈出「通用參數設置」對話框。
2.在「通用參數設置」對話框中,點擊「通達信參數」標簽頁,找到「最新信號顯示」選項。
3.將「最新信號顯示」選項設置為「只顯示最後一個信號」,然後點擊兆亮「確定」按鈕保存設置。
4.重新打開你的股票公式,即可看汪陪到只顯示最後一個圓點的信號。
具體到你的公式中,修改後困猜蠢的代碼如下:
EO:MA(C,5);
IF(CROSS(EO,MA(EO,2)),EO,DRAWNULL) ,COLORMAGENTA,LINETHICK8;
LASTBARONLY;
⑵ 急求,信號處理中的SCR,SIR,SINR分別指的是什麼及其定義
信號與干擾加雜訊比 (Signal to Interference plus Noise Ratio)是指:信號與干擾加雜訊比(SINR)是接收到的有用信號的強度與接收到的干擾信號(雜訊和干擾)的強度的比值;可以簡單的理解為「信噪比」
SCR指標,又稱為籌碼集中度,顧名思義就是指人(股東)均所持的股票多少在流通總股本中所佔的分額。SCR籌碼集中度指標反映的是股票集中程度的變化趨勢,是一個追蹤主力資金建倉與減倉的重要指標,也是股民選股與買進、賣出的股票的重要參考標准SIR: 信號干擾比 Signal to Interference Ratio定義為(RSCP/Interference)×SF。這里針對的下行信號RSCP為DPCH或者PDSCH信道上接收和慶信號碼功率; Interference為在RSCP測量的時隙上不能被接收機消除的干擾;具體獲取方法依賴於具體的設備。目前pecker取的是對應時隙的ISCP作為Interference。SF為使用的擴頻因子轉換為dB,計算公式為:SIR( dB ) = RSCP(dBm)- ISCP(dBm) + 10log(SF)。 如果UE佔用了多個下行時隙,那麼喚盯握這里給出的是第一個時隙的SIR。 C/I代表的是鄰頻干擾就是同一設備接受到的有用信號碼則滑功率和干擾信號碼功率之比。即PCCPCH C/I = PCCPCH RSCP(dB) - ISCP[0] 其中ISCP是干擾信號碼功率,在特定時隙內的midamble上測量的接收信號中的干擾。ISCP的參考點必須是Rx天線連接器。S:@ P-CCPCH RSCP 是基本公共控制物理信道(Primary Common Control Physical Channel )接收信號的碼功率(Received Signal Code Power ),本小區或相鄰小區P-CCPCH的接收功率。參考點必須是UE天線連接器。.
⑶ 請教signal 11 code 1 SEGV
項目問題,目前已解決;在此記錄。
前些天在調試Camera模塊;發現相同的代碼在廠家提供的環境碰橘畝里邊編譯、就是ok的伍做,在我們的源碼樹中編譯,將HAL庫推進去後、就會signal 11退出。
一、現象
[plain] view plain
F/libc ( 4250): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 4358 (CameraPreviewTh)
I/DEBUG ( 2366): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 2366): Build fingerprint: 'TV/tclm6/tclm6:4.2.1/V8-AML7601-LF1R001/20130523:eng/test-keys'
I/笑森DEBUG ( 2366): Revision: '32'
I/DEBUG ( 2366): pid: 4250, tid: 4358, name: CameraPreviewTh >>> /system/bin/mediaserver <<<
I/DEBUG ( 2366): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
I/DEBUG ( 2366): r0 00000000 r1 00000500 r2 45498500 r3 0000001e
I/DEBUG ( 2366): r4 00000280 r5 00000000 r6 00000780 r7 00000000
I/DEBUG ( 2366): r8 00000500 r9 00000780 sl 00000f00 fp 45498f00
I/DEBUG ( 2366): ip 00000280 sp 46054d80 lr 4410816f pc 44108214 cpsr 80030030
I/DEBUG ( 2366): d0 696765623e3e3e31 d1 3e3e3e2d2d2d2d2d
I/DEBUG ( 2366): d2 3234767975793e3e d3 32766e5f6f745f32
I/DEBUG ( 2366): d4 54535f5745495645 d5 4552503e2d455441
I/DEBUG ( 2366): d6 4154535f57454956 d7 0000823549742400
I/DEBUG ( 2366): d8 0000000000000000 d9 0000000000000000
I/DEBUG ( 2366): d10 0000000000000000 d11 0000000000000000
⑷ 如何用quartz signal快速實現worldquant 101 alpha
優礦的500萬實盤在如火如荼地進行中,我們已經看到有礦友利用經典的機器學習演算法和新姿肆好的Quartz Signal模塊對於優礦上現有因子的利用進行探索,但是對於大多數信號/因子研究者來說,尋找新的Alpha依然是其孜孜以求的目標。
如何去尋找新的Alpha因子的靈感跡鉛成為擺在量化研究者面前無法迴避的問題。
我們注意到,Zura Kakushadze 等人最新發表的論文101 Formulaic Alpha(http://papers.ssrn.com/sol3/papers.cfm?abstra…) 里提到了很多基於價量數據構建的"Alpha"因子,為我們提供了很多新的靈感。
本文將先簡單介紹論文中提到的Alpha因子表達式語法以及含義,之後會介紹如何用Quartz Signal便捷地實現這些Alpha,最後會提供2個在論文中出現並且效果不錯的Alpha因子供大家參考。
Formulaic Alpha簡介
研讀過上文提到的論文,我們發現,論文中提到的Formulaic Alpha就是用一個表達式來表示一個Alpha因子:
· 寫出的表達式是在每一個調倉日對每一支股票按照該表達式進行計算
· 例如:1/close; 對universe中每一支股票,計算1/closePrice,然後此向量被標准化,即除以其數值的總和(所有數值相加的結果為 1)。這將為所有股票創建了一個基於「權重」的向量,每個權重代表投資組合中投資於該股票的資金比例
· 其支持的數據有:open(開盤價)/close(收盤價)/high(最高價)/low(最低價)/vwap(日內交易量加權價格)/returns(單日收益率)等等
我們認為這種Formulaic Alpha的表達形式有以下特點:
· 表達簡潔,但隱藏了太多細節,用戶無法看到具體的調倉信息
· 受限於表達式表達能力的不足,提供了豐富的內置函數,幫助用戶完成了cross-sectional信息的處理
內置函數
· 可分為橫截面函數和時間序列函數兩大類,其中時間序列函數名多為以ts_開頭
· 大部分函數命名方式較為直觀
· abs(x) log(x)分別表示x的絕對值和x的自然對數
· rank(x)表示某股票x值在橫截面上的升序排名序號,並將排名歸一到[0,1]的閉區間
· delay(x,d)表示x值在d天前的值
· delta(x,d)表示x值的最新值減去x值在d天前的值
· correlation(x,y,d) covariance(x,y,d)分別表示x和y在長度為d的時間窗口上的Pearson相關系數和協方差
· ts_min(x,d) ts_max(x,d) ts_argmax(x,d) ts_argmin(x,d) ts_rank(x) sum(x,d) stddev(x,d)等均可以通過函數名稱了解其作用
· 更多地函數解釋可以參考論文的附錄
Quartz Signal模塊簡介
正如API幫助文檔中提到的,Signal模塊是優礦為方便因子/信號研究者提供的工雹襲具,將用戶從與信號研究無關的數據獲取、下單邏輯中抽離出來,用戶可以將精力集中於按照自己的思路開發新的信號。
使用Signal自定義信號的通用實現過程如下:
def foo(data, dependencies=['PE 39;], max_window=4):
return data['PE 39;].mean()
# in initialize(account)
a = Signal("signal_a", foo)
account.signal_generator = SignalGenerator(a)
# in handle_data(account)
account.signal_result['signal_a']
我們可以將Quartz Signal的使用過程分為四個步驟:
定義實現信號邏輯的函數(在上例中即為foo函數)
在initialize函數中定義Signal,在實例化Signal類時將信號名字和描述函數作為參數傳入
在initialize函數中將需要使用的信號注冊到account.signal_generator中,可以注冊多個信號
在handle_data中通過account.signal_result獲取計算好的信號值
我們重點介紹一下用戶需要完成的信號描述函數:
信號描述函數實際上是用戶在每一個調倉日對於可以獲得數據的處理邏輯
信號描述函數名可以按照Python函數的命名規范任意定義,但其參數必須為一個非關鍵字參數data,兩個關鍵字參數dependencies和max_window
dependencies的參數格式必須為str構成的list,list的元素為該函數中需要使用的因子名稱,具體支持因子列表參考幫助文檔
max_window的參數格式為int,表示用戶希望用到過去max_window天的因子數據
data則是根據dependencies和max_window,Quartz Signal模塊幫助用戶取到的數據,其格式為一個dict,key為因子名稱,value為max_window*universe_length的Pandas DataFrame
信號描述函數的返回值必須為一個長度與data中每一元素列數相同的Pandas Series
如下圖所示:
上圖描述的就是data的結構,其中data只有一個元素,其key為"PE",value就是上圖表格所示的Pandas DataFrame,具體地,其columns為universe的secID,其index為%Y%m%d格式的日期字元串
Quartz Signal v.s. Formulaic Alpha
由上述描述可見,使用Quartz Signal模塊可以便捷地實現Formulaic Alpha,同時相比Formulaic Alpha表達式有以下優勢:
更加直觀:
o用戶在預先定義信號描述函數時,就可以明晰地定義自己需要的因子數據和時間窗口
o用戶可以在Quartz框架中靈活定義自己的調倉頻率和下單邏輯,並可以直觀地看到每次調倉的股票列表
更加靈活:
oFormulaic Alpha限制了表達式的計算結果必須代表相應股票在投資組合中的權重,而Quartz Signal並沒有此限制,用戶可以在handle_data中按照自己的想法任意處理信號值
o信號描述函數的data是以Pandas DataFrame的格式傳入的,這樣用戶就可以在函數中同時看到橫截面數據和時間序列數據,為用戶提供了更多可能
更加強大:信號描述函數的data是以Pandas DataFrame的格式傳入的,Pandas豐富的內置函數可以幫助我們完成較復雜Formulaic Alpha表達式才能完成的任務(見最後一個示例)
更多數據:Quartz Signal不僅支持openPrice/closePrice/highPrice/lowPrice/turnoverVol等價量信息,還支持PE、RSI等更豐富的因子
下面我們就用Quartz Signal模塊實現了一個論文中提到的Formulaic Alpha:
用Quartz Signal實現一個Formulaic Alpha
以WebSim論文中alpha 53為例,其原始表達式為:
(−1∗delta((((close−low)−(high−close))/(close−low)),9))
化簡可得,((close - low) - (high - close)) / (close - low)的9日之前值-當前值
繼續化簡可得:(2∗close−low−high)/(close−low)
我們深入研究該因子可以發現:
(2∗close−low−high)/(close−low)=1−(high−close)/(close−low)
前面的常數1可以通過delta消掉,其實可以簡化為(high−close)/(close−low)的現值-9天之前的值
而(high−close)/(close−low)本身則代表了收盤價在日內波動中的位置,可以看做是買入意願的一種體現
我們強烈建議大家在實現這些Formulaic Alpha因子之前先花一些精力去理解其經濟含義,不僅可以加深對其原理的理解,在某些時候還可以簡化實現。
我們以論文中的Alpha 26為例,其原始表達式為:
−1∗ts_max(correlation(ts_rank(volume,5),ts_rank(high,5),5),3)
我們當然可以按照其原始表達式一步步地先對過去5天的成交量和最高價進行排名,再取相關系數;但是較熟悉Pandas DataFrame內置函數或者統計知識較豐富的研究者可以發現,correlation(ts_rank(volume,5),ts_rank(high,5),5) 其實就是在計算Spearman Rank Correlation Coefficient,使用DataFrame內置的corr(method="spearman")函數就可以完成計算,可以大大提高開發效率。
在我們的模擬的過程中發現,如果按照原公式進行計算,無論是long還是short的結果都跑不贏大盤,同時對於成交量和最高價相關性較高的股票將會是市場追逐的熱點股票,應該分配更大的權重。
所以在上述代碼中我們將原Formulaic Alpha前面的負號去掉。
當然,對於論文中出現的某些因子可能較難於理解其經濟學意義,我們鼓勵大家用Quartz Signal將其實現之後發到社區上與大家一起討論。
對於Quartz Signal模塊有哪些不盡如人意的地方也可以反饋給我們,幫助我們持續改進。
⑸ signal(SIGINT, SIG_IGN)和signal(SIGQUIT, SIG_IGN)是什麼意思啊
SIGINT是信帶簡辯號名咐物稱,你可以將之替換為其他的你想要的任何信號,SIG_IGN是蠢缺函數指針。
這條代碼的意思是如果發生SIGINT信號則中斷,轉去執行SIG_IGN函數。
signal(SIGQUIT, SIG_IGN)
同理
⑹ 怎麼打開STK文件
免費軟體 Stock Analyzer
適用於 Windows 98, 2000, ME, XP & NT
安裝新版本之前先卸去老的版本
下載
請點擊 http://www.stock-anal.com/b-c-trial.exe (980 KB), 免費下載
按提宴凳示安裝這個軟體.
使用步驟
1. 在你桌面上點擊 Best-Charts 圖標,開始使用這個軟體
2. 上網分析股票:
(1) 在Symbol 框中輸入上海股票代碼例如600019.ss 或晌配旅^SSEA 或 ^SSEB
(2) 或者在Symbol 框中輸入深圳股票代碼例如 000031.sz或^SZSA 或 ^SZSB
(3) 點擊按鈕"Read quotes from website",這個軟體免費從網上自動下載歷史股價,自動進行技術分析,馬上顯示技術分析圖和買賣信號.
圖上"o"表示買信號, "x"表示賣信號.
選擇菜單"Window"中的 "New Window"和 "Tile" 可以比較這些賣橡圖.
選擇菜單"File"中的"New"和"Window"中的"Tile"可以比較不同股票的分析圖
(4) 點擊 "123" 按鈕,檢查日期和股價.
(5) 點擊 "Candlestick Signal List" 按鈕看30天K線蠟燭圖買賣信號.
3. 離線分析股票:
(1) 點擊你桌面上"我的計算機"圖標,打開文件夾C:\M-C, 創建新文件夾C:\M-C\CN .
(2) 在 http://stock.21cn.com/sjxz.html 網頁下載本月股價. 每個交易日一個STK文件 建議存到C:\M-C\CN文件夾中(以後只需下載當天股價一個文件)
(3) 將STK 文件轉換為TXT 文件
(a) 下載股票數據專家 將這個 zip 文件解壓得到"stksetup601".
(b) 點擊"stksetup601",在"安裝程序"對話框中Destination Directory應為C:\M-C\CN\STKDATA,點擊"OK"得到"股票數據專家V6.01".
(c) 點擊"股票數據專家V6.01". 系統參數設定:系統路徑為C:\M-C\CN\STKDATA, 點擊"保存設置".
(d) 點擊"安裝分析數據", 點擊"源文件" 選一個STK 文件, 打開.
(e) 點擊最右邊的 "將通用數據轉換為純文本文件" 按鈕, 生成的純文本文件路徑為 例如 C:\M-C\CN\STKDATA\20011018.TXT
(f) 點擊"開始安裝" 按鈕.
(g) 重復上述過程將所有STK 文件轉換為TXT 文件.
(4) 分析股票:在Symbol框中輸入股票代碼,點擊 "Read end of day quotes from ASCII file" 按鈕,這個軟體馬上顯示技術分析圖和買賣信號.(股票數據在60天以上效果較好)
(5) 分析了一個股票後,選擇菜單"Stocks>Analyze stock online or offline" 可以離線分析股票.
4. 管理你的股票:
(1) 點擊菜單Portfolios中的Edit List..., 在Select a List對話框中選擇一個表(例如 List 1) 點擊OK按鈕.
(2) 在Edit List對話框中輸入表名(例如 Tech), 輸入股票代碼,股票代碼由空格分開,點擊OK按鈕.
(3) 點擊菜單Portfolios中的List 1: Tech, Best-Charts馬上顯示股票數據.
(4) 選中表中的一個股票, 點擊 Technical Analysis (TA)按鈕, 這個軟體馬上顯示技術分析圖和買賣信號.(如果同時運行中文輸入軟體應設置在英文輸入或ASCII輸入狀態)
(5) 點擊菜單Portfolios中的Analyze 40 Stocks in the List, 一次分析這個表中的40個股票.
5. 改變技術分析演算法的參數:
建議調整技術分析演算法的參數以便獲得最佳分析效果.
(1)選擇菜單例如"Stocks/Change Parameter of TA/Change Parameter Set 1".
(2) 輸入新參數
(3) 移卷標到對話框底部,點擊 "OK" 按鈕. 這個軟體用剛輸入的新參數分析股票.
⑺ 我想在股票軟體當中加入一個單線MACD,應該怎麼加
你把兩根線的參數設為同一數字就可以了。滿意請採納謝謝
⑻ C語言中(void)signal(SIGALRM, alarmhandle);是什麼意思
signal(SIGALRM, alarmhandle); 表示給當前進程注冊SIGALRM信號處理代碼,如果收到SIGALRM信號,就會去執行alarmhandle函數
$mansignal
...
SYNOPSIS
#include<signal.h>
typedefvoid(*sighandler_t)(int);
sighandler_tsignal(intsignum,sighandler_thandler);
DESCRIPTION
Thesignal().,oreitherSIG_IGNorSIG_DFL.
signal()函數是個系統調用,正廳畢該函數按signum設定一個新的舉芹信號處理句柄(函數).新設定的處理函數可以是用戶自定義的函數,也可以是系統指定的SIG_IGN或SIG_DFL.
參考代碼:
#include<signal.h>
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
voidalarmhandle(intsig)
{
printf("recvsig:%d ",sig);
printf("exit! ");
exit(0);
}
intmain()
{
signal(SIGALRM,alarmhandle);
printf("begin... ");
alarm(5);//定時器,伏陸用於在5秒後產生SIGALRM信號
while(1);
return0;
}
運行結果:
begin...
recv sig:14
exit!
⑼ c的signal函數
signal()是一種系統調用,用於通知運行時系統,當某種特定的「軟體中斷」發生時調用特定的程序。它的真正的名字應該是「Call_that_routine_when_this_interrupt_Comes_in(當該中斷發生時調用那個程序)」,調用signal()函數,並通過參數傳遞告訴它終端類型以及用於處理中斷的程中兄序。ANSIC 標准中,signal()函數的聲明如下:
void (*signal (int sig ,void (*func)(int))) (int) ;
函數返回與給定sig信號相關聯的func的磨顫以前值
這個函數的模樣很恐怖,它的意思是:
signal是一個函數,他返回一個函數指針,後者所指向的函數接受一個賣游襲int參數並返回void 。
可以用typedef進行簡化:
typedef void (*ptr_to_func) (int) ;
/*表示ptr_to_func是一個函數指針,該函數接受一個Int參數,並返回void */
ptr_to_func signal (int , ptr_to_func );
實例:捕捉段錯誤信號的信號處理函數:
#include <signal.h>
#include <stdio.h>
void handler(int s)
{
if (s == SIGBUS) printf(" now got a bus error signal\n");
if (s == SIGSEGV) printf(" now got a segmentation violation signal\n");
if (s == SIGILL) printf(" now got an illegal instruction signal\n");
exit(1);
}
main ()
{
int *p=NULL;
signal(SIGBUS, handler);
signal(SIGSEGV, handler);
signal(SIGILL, handler);
*p=0;
}
由於p是一個空指針,對空指針賦值會引發一個段錯誤,於是程序捕捉到SIGSEGV信號,並列印消息」now got a segmentation violation signal「後退出。
打開windows下的signal.h頭文件,發現在這個頭文件里定義了很多符號,但是沒有找到SIGBUS,所以上面的代碼在windows下編譯不通過:
error C2065: 'SIGBUS' : undeclared identifier
把涉及到SIGBUS的相關部分刪去即可。
使用setjmp、longjmp從信號中恢復:
#include <setjmp.h>
#include <signal.h>
#include <stdio.h>
jmp_buf buf;
void handler(int s)
{
if (s == SIGINT) printf(" now got a SIGINT signal\n");
longjmp(buf, 1);
/*NOTREACHED*/
}
main ()
{
signal(SIGINT, handler);
if (setjmp(buf)) {
printf("back in main\n");
return 0;
}else
printf("first time through\n");
loop:
/* spin here, waiting for ctrl-c */
goto loop;
}