導航:首頁 > 基金投資 > highwatermark基金

highwatermark基金

發布時間:2021-08-07 14:03:25

基金中的 high water mark什麼意思

對沖基金與公募基金的重要區別之一就是高水位線條款(high water marks, 以下簡稱HWM),這是以美國為代表的西方私募資產管理業,特別是對沖基金業管理費設計的一個關鍵技術條款。HWM條款可能是對沖基金成功的重要制度保證之一。

平庸對沖基金經理的剋星

在西方對沖基金的實際運作中,基於HWM條款的業績報酬在每個季度、每半年或者每年支付一次。以每年支付一次業績報酬為例,若投資者投資100萬元,在第一年末得到10%的收益,資產變成110萬元,如果業績報酬的提取比例是20%,那麼基金經理獲得的業績報酬就是2萬元。第二年投資虧損,資產變成105萬元,則不能提取業績報酬。到了第三年,資產增值到120萬元,由於HWM條款的規定,投資者不用為第三年末相比第二年末的15萬元資產增值支付業績報酬,只需從超過歷史資產價值最高水平的110萬元的10萬元中計提業績報酬,相應業績報酬為5萬元,投資者不需要為資產第二次達到110萬元支付業績報酬。也就是說,如果對沖基金在某一期發生了虧損,由於HWM條款規定了不得重復提取業績報酬,下一期的收益必須在彌補了上一期的虧損,並且使得基金凈值達到歷史最高水平之後,基金經理才可以從超過歷史最高水平的資產增值中提取業績報酬。 因此HWM條款充分體現了管理費制度對基金經理的激勵約束和對投資者的保護功能。

研究表明,HWM條款在對沖基金中確實發揮著積極作用。首先,HWM條款中規定,如果發生虧損,需要彌補了所有虧損之後對沖基金才能夠提取業績報酬,所以在面臨虧損時,投資者的利益得到了比較充分的保障。其次,HWM條款有識別好壞基金經理的作用。Aragon和Qian(2007)採用博弈論的方法,通過實證檢驗發現,在信息不對稱的情況下,優秀的對沖基金經理人更願意採用HWM條款,因為優秀的對沖基金經理自信也確實能夠實現更高的投資回報,導致的結果是HWM條款中規定的用盈利來補虧的情況很少發生。相比之下,表現平庸的對沖基金經理不敢採用HWM條款,因為若使用該條款,假設某一年度基金凈值由於市場系統因素大幅度上升(而非基金經理的管理水平導致),則大牛市之後,對於平庸的基金經理來說,未來很難超越歷史最高的基金凈值,HWM條款限制了平庸基金經理未來的業績報酬收入。

但是,HWM條款也有一些消極影響。在合同即將結束時,最後一期的損失不再需要用未來盈餘彌補,不再會影響到投資管理人未來的業績報酬,所以投資管理人會因為HWM條款的存在而在最後期限中無限增大風險。當對沖基金投資業績較差、遠低於歷史最高凈值的情況出現時,此時基金經理會使得基金投資組合的波動率顯著增大,風險增大,導致客戶進行贖回的比例也增大,使對沖基金更容易破產。

改良HWM條款有助基金激勵

我國開放式基金中,採取類似HWM條款的主要是博時價值增長基金(採用「價值增長線」條款)和海富通收益增長基金(採用「收益增長線」條款)。另外,博時價值增長的復制基金——博時價值增長貳號採用了「價值增長線」,天治財富增長基金採用的是「動態資產保障線」,後兩者只作為基金資產的保底目標,均未與管理費掛鉤。

增長線由規定的公式定期計算,只增不減。如果未來的基金單位資產凈值低於預先設定的價值增長線,基金管理人將從下一日開始暫停收取基金管理費,直至單位資產凈值回到增長線之上。增長線條款與美國對沖基金中的HWM條款有相似之處,都是設定一條只增不減的基準線,區別在於價值增長線作為固定管理費的提取標准,因此具有嚴格的懲罰機制——當基金單位凈值低於價值增長線時,基金將得不到任何管理費。而HWM條款是業績報酬的提取基準,當基金凈值低於HWM時,基金經理只是不能獲得業績報酬,並不影響固定管理費的提取,懲罰機制相對較弱。

既然設定了類似HWM的條款,那麼博時增長和海富通收益在同類基金中的表現如何呢?我們採用三個經典的基金業績衡量指標Sharpe比率、Treynor比率和Jensen比率,將這兩只基金置身於同類開放式混合型基金中進行了比較。

經比較發現,博時增長和海富通收益這兩只基金的表現都不理想,在同類基金中都排在偏後的位置。同時,晨星2009年5月披露的開放式基金業績兩年和三年的星級排行榜中,這兩只基金得到的評級也較低。海富通收益在兩年和三年的評級中僅獲得一星,博時增長兩年的業績水平雖然得到四星級的評級,但是三年的評級只有三星。產生這種狀況的原因是復雜的,我們認為其中的重要原因在於,由於價值增長線條款的存在,基金經理在市場狀況好的時候過於保守。因為如果基金凈值增長很快,就會提高增長線水平,一旦市場狀況變差,基金凈值低於增長線的可能性就會大大增加,所以基金經理在牛市中由於擔憂失去未來的管理費收入,放棄了進一步獲利的機會。

可以印證的事實是,在市場低迷的情況下,兩只基金都出現過無法獲得管理費收入的情況。比如博時增長2003年是所有開放式基金凈值增長率的第一名,但在2005年的熊市中不得不暫停收取管理費,2008年年中再次停收。至2009年5月,該基金凈值一直低於價值增長線,無法獲得管理費收入。海富通收益也曾在2005年中止提取管理費。基金公司也許意識到了停收管理費的風險,這種價值增長線條款等於是自念「緊箍咒」,自海富通收益之後,國內的開放式基金再也沒有一家採用類似條款。

HWM條款雖然有相當的優勢,但對於現階段的公募基金來說,由於投資者的不確定性、社會公眾性和風險承受力有限,引入HWM條款時,不應用作是否收取固定管理費的標准,而應作為業績報酬的提取標准。否則,基金管理者可能在牛市中表現過度保守,在市場低迷的情況下得不到任何管理費收入,投資者不能得到合理回報。基金管理公司從事專戶理財或者一對多的理財服務時,完全可以採用標準的高水位線條款,具體設計可由基金公司和客戶協商決定。

❷ 淺析nodejs的buffer比較怎麼比較的

Buffer是一個典型的Javascript和C++結合的模塊,性能相關部分用C++實現,非性能相關部分用javascript實現。

Node在進程啟動時Buffer就已經加裝進入內存,並將其放入全局對象,因此無需require

Buffer對象:類似於數組,其元素是16進制的兩位數。

Buffer內存分配

Buffer對象的內存分配不是在V8的堆內存中,在Node的C++層面實現內存的申請。

為了高效的使用申請來得內存,Node中採用slab分配機制,slab是一種動態內存管理機制,應用各種*nix操作系統。slab有三種狀態:

(1) full:完全分配狀態

(2) partial:部分分配狀態

(3) empty:沒有被分配狀態

ASCII、UTF-8、UTF-16LE/UCS-2、Base64、Binary、Hex

new Buffer(str, [encoding]),默認UTF-8
buf.write(string, [offset], [length], [encoding])

buf.toString([encoding], [start], [end])

Buffer不支持的編碼類型

通過Buffer.isEncoding(encoding)判斷是否支持

iconv-lite:純JavaScript實現,更輕量,性能更好無需C++到javascript的轉換

iconv:調用C++的libiconv庫完成

注意 "res.on('data', function(chunk) {})",其中的參數chunk是Buffer對象,直接用+拼接會自動轉換為字元串,對於寬位元組字元可能會導致亂碼產生

(1) 通過可讀流中的setEncoding()方法,該方法可以讓data事件傳遞不再是Buffer對象,而是編碼後的字元串,其內部使用了StringEncoder模塊。

(2) 將Buffer對象暫存到數組中,最後在組裝成一個大Buffer讓後編碼轉換為字元串輸出。

Buffer在文件I/O和網路I/O中廣泛應用,其性能舉足輕重,比普通字元串性能要高出很多。

Buffer的使用除了與字元串的轉換有性能損耗外,在文件讀取時候,有一個highWaterMark設置對性能影響至關重要。

a,highWaterMark設置對Buffer內存的分配和使用有一定影響。

b, highWaterMark設置過小,可能導致系統調用次數過多。

什麼時候該用buffer,什麼時候不該用 ------ 純粹的javascript支持unicode碼而對二進制不是很支持,當解決TCP流或者文件流的時候,處理流是有必要的,我們保存非utf-8字元串,2進制等等其他格式的時候,我們就必須得使用 」Buffer「 。

❸ high-water mark是什麼意思

基金中的
high
water
mark意思就基金高水標。
附註:
來源於huttenlocher先生在2009年第三季度,超過了他所謂的高水位線的投資收益彌補投資者的損失,使基金恢復充電費用投資利潤。

❹ oracle刪5千萬數據要多長時間

這個要看你怎麼刪了
單表還是多表數據
要不要保留回滾
或者要不要保留表結構等等
delete
from
表名
刪除數據
表結構還在
可以rollback
需要提交後完成刪除動作
drop
table
表名
刪除表
表結構與數據全部刪除
truncate
table
表名
刪除數據
保留表結構
不能回滾
相同點:truncate和不帶where子句的delete,
以及drop都會刪除表內的數據
不同點:
一.
truncate和
delete只刪除數據不刪除表的結構(定義)
drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger),索引(index);
依賴於該表的存儲過程/函數將保留,但是變為invalid狀態.
二.delete語句是DML,這個操作會放到rollback
segement中,事務提交之後才生效;如果有相應的trigger,執行的時候將被觸發.
truncate,drop是DDL,
操作立即生效,原數據不放到rollback
segment中,不能回滾.
操作不觸發trigger.
三.delete語句不影響表所佔用的extent,
高水線(high
watermark)保持原位置不動
顯然drop語句將表所佔用的空間全部釋放
truncate
語句預設情況下見空間釋放到
minextents個
extent,除非使用reuse
storage;
truncate會將高水線復位(回到最開始).

速度,一般來說:
drop>
truncate
>
delete
五.安全性:小心使用drop
和truncate,尤其沒有備份的時候.否則哭都來不及

❺ netty3.6.2中寫數據的過程,以及寫數據寫不出去後怎麼處理

netty寫數據的時候,會先放到一個緩存隊列AbstractNioChannel.writeBufferQueue中,這個隊列是WriteRequestQueue
Java代碼
public void eventSunk(
ChannelPipeline pipeline, ChannelEvent e) throws Exception {
if (e instanceof ChannelStateEvent) {
……
} else if (e instanceof MessageEvent) {
MessageEvent event = (MessageEvent) e;
NioSocketChannel channel = (NioSocketChannel) event.getChannel();
boolean offered = channel.writeBufferQueue.offer(event);//寫到channel的writeBufferQueue
assert offered;
channel.worker.writeFromUserCode(channel);
}
}
WriteRequestQueue的offer方法中會根據緩存消息的總大小(位元組數)判斷是否超過了高水位線highWaterMark,如果第一次超過了超過高水位線,就會fireChannelInterestChanged;後邊如果仍然一直往隊列放數據,緩存的消息的大小持續超過高水位線的時候,不會再fireChannelInterestChanged。
Java代碼
public boolean offer(MessageEvent e) {
boolean success = queue.offer(e);
assert success;

int messageSize = getMessageSize(e);
int newWriteBufferSize = writeBufferSize.addAndGet(messageSize);
int highWaterMark = getConfig().getWriteBufferHighWaterMark();

if (newWriteBufferSize >= highWaterMark) {
if (newWriteBufferSize - messageSize < highWaterMark) {
highWaterMarkCounter.incrementAndGet();
if (!notifying.get()) {
notifying.set(Boolean.TRUE);
fireChannelInterestChanged(AbstractNioChannel.this);
notifying.set(Boolean.FALSE);
}
}
}
return true;
}
fireChannelInterestChanged這個會調到SimpleChannelUpstreamHandler.handleUpstream,觸發SimpleChannelUpstreamHandler.channelInterestChanged,可以通過繼承這個方法來自定義做些事情。高水位的值可以通過Bootstrap設置,最終會調到DefaultNioSocketChannelConfig.setOption。writeBufferHighWaterMark默認值為64K
Java代碼
public boolean setOption(String key, Object value) {
if (super.setOption(key, value)) {
return true;
}
if ("writeBufferHighWaterMark".equals(key)) {
setWriteBufferHighWaterMark0(ConversionUtil.toInt(value));
} else if ("writeBufferLowWaterMark".equals(key)) {
setWriteBufferLowWaterMark0(ConversionUtil.toInt(value));
} else if ("writeSpinCount".equals(key)) {
setWriteSpinCount(ConversionUtil.toInt(value));
} else if ("".equals(key)) {
(() value);
} else if ("receiveBufferSizePredictor".equals(key)) {
setReceiveBufferSizePredictor((ReceiveBufferSizePredictor) value);
} else {
return false;
}
return true;
}
然後在write0的時候會從隊列拉數據,拉數據的時候,如果發現本次拉的數據會導致緩存的數據大小(位元組)從低水位writeBufferLowWaterMark之上,掉到了低水位之下,即跨過了低水位,會再次觸發fireChannelInterestChanged事件。writeBufferLowWaterMark默認值為32K
Java代碼
public MessageEvent poll() {
MessageEvent e = queue.poll();
if (e != null) {
int messageSize = getMessageSize(e);
int newWriteBufferSize = writeBufferSize.addAndGet(-messageSize);
int lowWaterMark = getConfig().getWriteBufferLowWaterMark();


if (newWriteBufferSize == 0 || newWriteBufferSize < lowWaterMark) {
if (newWriteBufferSize + messageSize >= lowWaterMark) {//本次拉取,是的緩存數據大小掉到了低水位之下
highWaterMarkCounter.decrementAndGet();
if (isConnected() && !notifying.get()) {
notifying.set(Boolean.TRUE);
fireChannelInterestChanged(AbstractNioChannel.this);
notifying.set(Boolean.FALSE);
}
}
}
}
return e;
}
超過高水位和低於低水位都會觸發fireChannelInterestChanged,怎麼區分呢?通過AbstractChannel. isWritable(),如果channel的interestOps里邊有注冊過OP_WRITE,則是不可寫的,否則是可寫的
Java代碼
public boolean isWritable() {
return (getInterestOps() & OP_WRITE) == 0;
}
public int getInterestOps() {
if (!isOpen()) {
return Channel.OP_WRITE;
}

int interestOps = getRawInterestOps();
int writeBufferSize = this.writeBufferSize.get();
if (writeBufferSize != 0) {
if (highWaterMarkCounter.get() > 0) {//還記得這個值,放數據到發送隊列的時候值+=1,從隊列拉數據出來的時候值-=1
int lowWaterMark = getConfig().getWriteBufferLowWaterMark();
if (writeBufferSize >= lowWaterMark) {//緩存隊列數據量,超過高水位,也超過了低水位,意味著高水位>低水位,此時等於注冊寫操作
interestOps |= Channel.OP_WRITE;
} else {
interestOps &= ~Channel.OP_WRITE;//緩存隊列數據量,超過高水位但是低於低水位,意味著低水位>高水位,此時等於沒有注冊寫操作
}
} else {//超過高水位counter<=0,意味著當前數據量小於高水位
int highWaterMark = getConfig().getWriteBufferHighWaterMark();
if (writeBufferSize >= highWaterMark) {//這里,緩存數據量仍然高於高水位.....並發?按道理說channel的處理是單線程處理的,此時等於注冊寫操作
interestOps |= Channel.OP_WRITE;
} else {
interestOps &= ~Channel.OP_WRITE;
}
}
} else {
interestOps &= ~Channel.OP_WRITE;//寫隊列沒數據,沒有注冊寫操作
}

return interestOps;
}
即,如果超過高水位isWritable()==false,低於低水位isWritable()==true,低水位優先順序高於高水位,即如果 當前水位>低水位 則不可寫,否則可寫

如果在通過netty向某機器寫數據,但是寫很緩慢,則會導致數據都緩存到netty的發送隊列中,如果不做控制,可能會導致full gc/cms gc頻繁,甚至最終OOM。所以可以考慮用高水位和低水位的值來控制netty的緩存隊列,即用AbstractChannel.isWritable來控制是否繼續寫,如果AbstractChannel.isWritable==false,則丟棄數據,或者記錄發送數據的狀態,待後續緩存數據隊列水位下降到安全水位後再發送。

❻ oracle中delete,truncate 和 drop的區別

語法
delete from aa
truncate table aa
區別
1.delete from後面可以寫條件,truncate不可以。
2.delete from記錄是一條條刪的,所刪除的每行記錄都會進日誌,而truncate一次性刪掉整個頁,因此日至裡面只記錄頁釋放,簡言之,delete from更新日誌,truncate基本不,所用的事務日誌空間較少。
3.delete from刪空表後,會保留一個空的頁,truncate在表中不會留有任何頁。
4.當使用行鎖執行 DELETE 語句時,將鎖定表中各行以便刪除。truncate始終鎖定表和頁,而不是鎖定各行。
5.如果有identity產生的自增id列,delete from後仍然從上次的數開始增加,即種子不變,而truncate後,種子會恢復初始。
6.truncate不會觸發delete的觸發器,因為truncate操作不記錄各個行刪除。
總結
1.truncate和 delete只刪除數據不刪除表的結構(定義)
drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger),索引(index); 依賴於該表的存儲過程/函數將保留,但是變為invalid狀態。
2.delete語句是dml,這個操作會放到rollback segement中,事務提交之後才生效;如果有相應的trigger,執行的時候將被觸發
truncate,drop是ddl, 操作立即生效,原數據不放到rollback segment中,不能回滾. 操作不觸發trigger。
3.delete語句不影響表所佔用的extent, 高水線(high watermark)保持原位置不動
顯然drop語句將表所佔用的空間全部釋放
truncate 語句預設情況下見空間釋放到 minextents個 extent,除非使用reuse storage; truncate會將高水線復位(回到最開始)。
4.速度,一般來說: drop> truncate > delete。
5.安全性:小心使用drop 和truncate,尤其沒有備份的時候.否則哭都來不及。
6.使用上,想刪除部分數據行用delete,注意帶上where子句. 回滾段要足夠大. 想刪除表,當然用drop
想保留表而將所有數據刪除. 如果和事務無關,用truncate即可. 如果和事務有關,或者想觸發trigger,還是用delete
如果是整理表內部的碎片,可以用truncate跟上reuse stroage,再重新導入/插入數據。

❼ 詳解MySQL中DROP,TRUNCATE 和DELETE的區別

truncate和不帶where子句的delete,
以及drop都會刪除表內的數據
1.
truncate和
delete只刪除數據不刪除表的結構(定義)
drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger),索引(index);
依賴於該表的
存儲過程/函數將保留,但是變為invalid狀態.
2.delete語句是dml,這個操作會放到rollback
segement中,事務提交之後才生效;如果有相應的trigger,
執行的時候將被觸發.
truncate,drop是ddl,
操作立即生效,原數據不放到rollback
segment中,不能回滾.
操作不觸發
trigger.
3.delete語句不影響表所佔用的extent,
高水線(high
watermark)保持原位置不動
顯然drop語句將表所佔用的空間全部釋放
truncate
語句預設情況下見空間釋放到
minextents個
extent,除非使用reuse
storage;
truncate
會將高水線復位(回到最開始).
4.速度,一般來說:
drop>
truncate
>
delete
5.安全性:小心使用drop
和truncate,尤其沒有備份的時候.否則哭都來不及.
使用上,想刪除部分數據行用delete,注意帶上where子句.
回滾段要足夠大.
想刪除表,當然用drop
想保留表而將所有數據刪除.
如果和事務無關,用truncate即可.
如果和事務有關,或者想觸發trigger,還
是用delete.
如果是整理表內部的碎片,可以用truncate跟上reuse
stroage,再重新導入/插入數據/

❽ 播放流媒體時如何顯示出緩沖狀態,即百分比

這個大概應該這樣:1. 數據在緩沖,你暫停了。此時緩沖區沒數據了,界面顯示0%2. 網路好了,開始收到數據了,緩沖區開始有數據了,你應該設定一個緩沖區充盈度,及當我收到多少數據後開始播放。用你當前收到的數據,除以你設定的充盈度,就是百分比3. 當到達100%,就是你設定的緩沖區滿了,就可以播放了不知道這樣說你是否明白

❾ 資料庫中 drop database與Delete Database的區別是什麼

sql中delete,drop
,truncate都代表刪除,但3者又有一些區別
1.
truncate和
delete只刪除數據不刪除表的結構(定義)
drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger),索引(index);
依賴於該表的存儲過程/函數將保留,但是變為invalid狀態.
2.delete語句是dml,這個操作會放到rollback
segement中,事務提交之後才生效;如果有相應的trigger,執行的時候將被觸發.
truncate,drop是ddl,
操作立即生效,原數據不放到rollback
segment中,不能回滾.
操作不觸發trigger.
3.delete語句不影響表所佔用的extent,
高水線(high
watermark)保持原位置不動
顯然drop語句將表所佔用的空間全部釋放
truncate
語句預設情況下見空間釋放到
minextents個
extent,除非使用reuse
storage;
truncate會將高水線復位(回到最開始).
4.速度,一般來說:
drop>;
truncate
>;
delete
5.安全性:小心使用drop
和truncate,尤其沒有備份的時候.否則哭都來不及
使用上,想刪除部分數據行用delete,注意帶上where子句.
回滾段要足夠大.
想刪除表,當然用drop
想保留表而將所有數據刪除.
如果和事務無關,用truncate即可.
如果和事務有關,或者想觸發trigger,還是用delete.
如果是整理表內部的碎片,可以用truncate跟上reuse
stroage,再重新導入/插入數據
在實際應用中,三者的區別是明確的。
當你不再需要該表時,

drop;
當你仍要保留該表,但要刪除所有記錄時,

truncate;
當你要刪除部分記錄時(always
with
a
WHERE
clause),

delete.
而alter是對表結構的修改.
希望對你理解有幫助。

閱讀全文

與highwatermark基金相關的資料

熱點內容
長江證券基金認購怎麼撤回 瀏覽:148
me期貨 瀏覽:756
公積金貸款1年 瀏覽:373
打新股票倉位 瀏覽:568
天涯推薦股票 瀏覽:999
股指期貨最少多少資金 瀏覽:740
華楓投資 瀏覽:974
炒股炒外匯 瀏覽:922
港澳一元等於多少人民幣 瀏覽:643
癌症銀行貸款 瀏覽:150
短期理財渠道 瀏覽:813
段永基投資 瀏覽:251
中國外匯管制限額 瀏覽:288
股指期貨後買基金 瀏覽:254
2880表價格 瀏覽:232
中林集團信託 瀏覽:193
在陸金所里投資安全嗎 瀏覽:315
期貨大行情特點 瀏覽:239
買基金用什麼賬戶 瀏覽:903
英鎊對人民幣匯率建行 瀏覽:185