2016年6月26日 星期日

權益曲線交易 Trading The Equity Curve

在進行程式交易時,總會碰到draw down,這是無法避免的事情。如果一般的狀況還好,產生的只是一般資金的draw down,但如果不幸運碰到交易開始後的最大回檔,就會變成Maximum Draw Down (MDD)。當這種情況發生,對我們寶貴賺取而來的資金甚於是本金,就是一個強大的傷害。因此,在碰到這樣的情況,為了保護我們的資金,我們得來判定現在進行中的策略(或策略組合)要不要繼續交易下去、還是得暫時下架、或是永久取消交易(也就是策略無法因應現在市場變化,策略的生命週期結束)。

對於資金曲線交易,本質是個簡單的觀念,也不需要太多複雜的想法,目的就是保護資金而已。一般常見的方式就是取資金曲線的簡單平均(SMA),在平均曲線上就進行交易(多+空),在平均曲線下就停止交易。來看一下國外網站上的簡介。
-----------------------------------------------------------------------------------------------------------------------

Trading The Equity Curve


Some trading systems have prolonged periods of winning or losing trades. Long winning streaks may be followed by a prolonged period of drawdown.  Wouldn’t it be nice if you could minimize those long drawdown periods? Here is one tip that might help you do just that. Try applying a simple moving average to your trading system’s equity curve and use that as a signal on when to stop and restart trading your system. This technique just might radically change your trading system’s performance.
How to do this? Well the moving average applied to your trading system’s equity curve creates a smoothed version of your trading system’s equity curve. You can now use this smoothed equity curve as a signal on when to stop or restart trading. For example, when the equity curve falls below the smoothed equity curve you can stop trading your system.  Why would you do this? Because your trading system is under performing, it’s losing money. Only after the equity curve starts to climb again should you start taking your trades once again. This technique is called trading the equity curve.
Trading the equity curve is like trading a basic moving average crossover system. When the fast moving average (your equity curve) crosses over the slower moving average (your smoothed equity curve) you go long (trade your system live). When the fast moving average crosses under the slower moving average you close your long trade (stop trading your live system).


In the image above the blue line is the equity curve of an automated trading system. The pink line is a 30-trade average of the equity curve. When the equity curve dips below the pink line, such as around trade number 60, you would stop trading the system. Once the equity curve rises above the pink line, around trade number 80, you would start trading the system once again.
It’s a great idea and with some systems this technique can really work wonders. In essence, we are using the equity curve as a signal or filter for our trading system. In the most simple case, it’s a switch telling us when to stop trading it and when to resume trading. But you could also use this signal to reduce your risk or switch to a different system instead of simply turning off the system.
(Skip some contents)

Here is section of the equity curve of the system without using the equity curve feedback.



You can see in the above equity curve we had an 83% drop in equity. Also, there is a six year lag between new equity highs. Below is the the equity curve when a 20-period simple moving average is applied. This means we only take trades when the current equity curve is above it’s 20-period simple moving average.


In this example you can see the drawdown was significantly reduced along with the time between new equity highs.

Does It Always Help?

The short answer is, no. Trading the equity curve works well on some trading systems that have prolonged periods of drawdown. Yet, other systems don’t benefit because the drawdowns are rather shallow and you end up hurting your equity more than anything. But like most things in the world of trading, you’ll have to perform some testing. Test different moving averages and test between halting all trading or reducing contract/share size. Remember, some systems do not benefit from this technique at all.
The Equity Curve Feedback Toolkit can also be use to create even more dynamic systems. For example, you can separate your long and short equity curves. Perhaps during a bear market you should only be taking short trades. Well, you can have your system disable long trades if they stop performing well. Likewise for short trades. In this regard, you could build a regime filter based upon the performance of the strategy.
You could also dynamically adjust your risk. That is, if your equity curve begins to fall you can reduce the number of shares or contracts you trade. Maybe when the equity curve is climbing, you need to increase your risk by buying more shares or contracts. You could also start or stop trading based upon drawdown or if the percentage of winners falls below a threshold. These are all possible with this kit.
(Skip some contents)
Source: http://systemtradersuccess.com/trading-the-equity-curve/
-----------------------------------------------------------------------------------------------------------------------------------
上面說明了一個簡單平均下權益曲線交易的範例,MDD可以由85% -> 50%,這樣的交果好或不好,那是見人見智。不過文中也說明了並不是每一種策略都適合,有時加進這樣的曲線交易,反而會讓原本的權益曲線更糟。所以,可以由各方面來做測試,例如:
1) 當在權益曲線平均下方時,可以用減少口數的方式來測試,而不是完全取消交易
2) 也可以把多單及空單分開做測試,在熊市時只針對空單來做,在牛市場只針對多單來做。
3) 當權益曲線在平均上方且穩定上揚時,可以考慮增加口數。

利用「簡單平均」也許只是其中一種方式,藍色投機客也提到使用布林通道1個標準差的下限來做為交易或不交易的標準(相較於平均數,好處是可避免交易次數太少的問題)。當然也可利用海龜通道也行,不過在權益曲線盤整時,可是會被巴的很慘,要有心理準備。
總之,權益曲線交易的唯一目標─「保護本金」,不被立即的MDD產生巨大本金減損。保護本金」、保護本金」、保護本金」,因為很重要,所以說三次。這個和市場交易策略不同,不用太複雜,選個跟自己個性可以相配的方式來控制就行,為自己的資產加把鎖。
Soro 沙羅 


2016年6月23日 星期四

Multicharts 「訊號」以及「指標」運作方式的不同

碰到了問題,就會想很久,有時甚至想破頭,才發覺原來卡在早就知道的東西上.... 


Multicharts的運作方式,在「訊號」及「指標」上,有很大的不同:

1) 訊號的運作方式,是K棒結束之後才會把訊號內容運算一次,所以一根K棒只會在結束時運算一次。

2) 指標的運作方式,是用tick為單位,每一個tick進來時,都會運算一次。


所以,當我們在「訊號」的程式寫作上,碰到了很多「晚一根出訊號」、或IOG模式、非即時的問題,其實都出在訊號及指標的運作基礎不同。也就因為如此,許多網上的前輩都使用「指標」來運作策略內容來達到「每一個tick運算」的目的,而非使用「訊號」。訊號只是用來做歷史回測而已...  営然,訊號也可以使用IOG模式來做tick的運算,不過實在是麻煩很多,不如直接在指標內做運算來的方便。

所以,不管是跟下單大師的萬用API連結(阿政大的方法),或是使用文字檔輸出,把這些程式碼放在指標中,是比放在訊號中來的即時,也來的可靠..

譬如,在五分鐘的週期中,若文字檔內有輸出close的價位 (下單大師會用到這個close的價位來判定是否系統當掉):

1) 使用訊號模式,每五分鐘才會更新一次,也就是只有五分鐘倍數的時間價位。
2) 使用指標模式,每一個tick都會更新一次,也就是即時的價位。

但指標上也有幾個要注意的地方:
1) 這種方式只能使用外接下單機來做下單,券商版的功能被砍掉了,殘念~~
2) 指標上的倉位,直接用i_marketposition * i_currentcontracts 來判定,又即時又方便,又不會被指標內的IOG模式給干擾。

說實在,MC還是有許多眉眉角角,對初學者來說是很惱人的...

[轉貼] 台指結算日判斷_延後結算也OK (from 阿政)

台指期與相關商品的結算日是每個月的第三個星期三,至於以前的結算時間在早上,近年改在尾盤這個就不管了,因為我要做的是抓出結算日這天。

雖然結算日的規則滿清楚的,就是第三個週三,但是台灣很喜歡搞彈性放假,還有颱風、年假什麼的,三不五時也會讓結算日不是在第三個週三。不過,至少有規則可循:原結算日當日因故無法結算時,次交易日為結算。利用這個特性,我們就可以做出比較"自動"一點的結算日判斷了。

原理是這樣的,我依然先檢查當天的日期是否是第三個週三,方式是15號到21號的週三就是第三個週三為結算日,如果每個月的某一天有符合這條件,就用一個變數做 mark 去記錄這個月有按普通規則結算了。而當日子來到第三個週四以後卻還沒有發生過按普通規則結算的話(用 mark 做判斷),那麼就把這個日子當做是今天結算!至於其中的變數 mark 怎麼控制我就不多描述了,請自建一個函數名稱為 CheckDay,記得要選好類型為(True/False),程式碼如後。




MultiCharts版:
var:mark(0);

if D>D[1] then CheckDay=false;

if Month(D)>Month(D)[1] then mark=0;

if (DayOfMonth(D)>=15 and DayOfMonth(D)<=21 and DayOfWeek(D)=3) then begin

  CheckDay=True;
  mark=1;
  end
     
else 
  if mark=0 and
     (
       (DayOfMonth(D)>=16 and DayOfMonth(D)<=22 and DayOfWeek(D)=4) or
       (DayOfMonth(D)>=17 and DayOfMonth(D)<=23 and DayOfWeek(D)=5) or
       (DayOfMonth(D)>=18 and DayOfMonth(D)<=24 and DayOfWeek(D)=6) or
       (DayOfMonth(D)>=20 and DayOfMonth(D)<=26 and DayOfWeek(D)=1) or
       (DayOfMonth(D)>=21 and DayOfMonth(D)<=27 and DayOfWeek(D)=2) or
       (DayOfMonth(D)>=22)
      ) then begin

    CheckDay=True;
    mark=1;

  end;



HTS(STS)版:
var:mark(0);

if D>D[1] then CheckDay=false; end if

Value1=Month(D);
if Value1>Value1[1] then mark=0; end if

if (DayOfMonth(D)>=15 and DayOfMonth(D)<=21 and DayOfWeek(D)=3) then

  CheckDay=True;
  mark=1;
     
elseif mark=0 and
     (
       (DayOfMonth(D)>=16 and DayOfMonth(D)<=22 and DayOfWeek(D)=4) or
       (DayOfMonth(D)>=17 and DayOfMonth(D)<=23 and DayOfWeek(D)=5) or
       (DayOfMonth(D)>=18 and DayOfMonth(D)<=24 and DayOfWeek(D)=6) or
       (DayOfMonth(D)>=20 and DayOfMonth(D)<=26 and DayOfWeek(D)=1) or
       (DayOfMonth(D)>=21 and DayOfMonth(D)<=27 and DayOfWeek(D)=2) or
       (DayOfMonth(D)>=22)
      ) then 

    CheckDay=True;
    mark=1;

end if


效果如下圖:

結論:2007年的 2月就因為年假的關係,本來按照普通規則應該在 02/21 結算,而被延到新春第一個交易日 02/26 結算。這樣的程式寫法就可以判斷出 02/21 本來應該結算的日子,因為沒有交易資料所以不存在,等到 02/26 這天的交易資料一出現就當做這是本來該結算但是被延後的第一個交易日。

當然,這樣的方式可以沿用到未來,不需要以後每年先去查看當年的行事曆把可能發生例外的結算日逐條列入了。

如果您有仔細研究一下這個函數的程式碼,應該可以發現這其實不是"絕對"不會有問題的,在這樣的程式碼運作下,結算日被因故延後而依然可以被判斷出來的能力"範圍"只有多出一週而已,如果你需要讓這個能力更加擴大到一週之後,那就多動動腦吧^^

轉貼From: 阿政的投機生活,  http://www.yctseng.net/2012/03/blog-post_13.html

2016年6月22日 星期三

[轉貼] 善用您的RAM,加速Multicharts

(一)前言
相信各位在使用Multicharts都有共同的經驗,每當啟動圖表的時候,往往會碰到開啟圖表非常久,畫面一直停留在"連線中"的問題,如果只有一兩張也就算了;若您圖表一多,等到開完圖可能都快睡著了。針對這樣的問題,有沒有辦法讓它變得更快呢?答案是有的!!這個方法便是透過所謂的RAMDisk來加速。
RAMDisk,顧名思義就是把RAM(隨機存取記憶體)模擬成硬碟的意思,由於RAM不像硬碟有磁碟、軸承等等物理因素的限制,而是採用電子訊號來讀寫資料,所以速度上具有絕對的優勢;不過缺點就是,一旦關機斷電之後,資料就無法再儲存了。
早期的RAM報價昂貴,容量又小,所以給作業系統及軟體可能都不敷使用了,RAMDisk的想法無異於癡人說夢。不過目前的RAM,不僅時脈快,容量動輒好幾G,報價又相對便宜,利用RAMdisk可將多出來的空間模擬成硬碟,給像Multicharts這樣需要不斷讀取資料的軟體使用,將快取及資料庫等相關資料放在RAM中,利用RAM存取速度快的特性,不僅可以加速軟體讀取資料的速度;同時也可以保護硬碟磁軌,減少來回讀取資料對於硬碟的傷害,可謂是一舉兩得。
本篇文章,就是跟各位分享,如何透過RAMDisk,來幫助Multicharts加速,您將可看到您的Multicharts透過RAMDisk之後,存取速度將擁有開外掛般的提升,圖表不會在一直出現連線中了,對於使用Multicharts的用戶而言,非常的具有實用價值。
(二)建構自己的RAMDisk
要進行Multicharts的調校之前,必須要先建構RAMDisk,這有兩種方式,您可以直接到坊間購買所謂的RAMDisk,它是用多條的RAM直接透過ATA/SATA建構成硬碟;當然,大多數人和我都一樣應該都沒有上述的東西,就只能透過軟體,將現有運行的Ram中規劃出一點空間出來模擬成硬碟使用。
目前,市面上有多款RAMdisk的軟體,有免費也有付費的,這邊我們先示範一款Dataram公司所提供的RAMdisk軟體來建構RAMDisk。
#下載位置
您可到以下網址來進行安裝。此軟體有提供個人使用及商業使用版本,個人免費版有4G的容量限制。http://memory.dataram.com/products-and-services/software/ramdisk
#安裝過程:
1.將下載後的軟體放到桌面,按Next執行。
2.點選” I Accept the license agreement“後按”Next”。
3.輸入個人資料,點選”Next”執行。
4.您可以按”Browse”修改安裝資料夾,或者直接點按”Next”執行。
5.點按”Next”後進入安裝程序。
6.程式安裝中,下方會有進度顯示。
7.安裝完成,點選”Finish”完成安裝。
#建構一個虛擬RAMDisk磁碟槽
1.在您安裝好RAMDisk之後,按開始會出現”Dataram RAMDisk”的安裝資料夾,您可以點按”RAMDisk Configuration Utility”進行相關設定。
2.點按”Settings”的頁籤,您可以調整Disk Size來設定RAMDisk空間,同時可以選擇FAT16或者FAT32的硬碟格式,設定好後可按”StartRAMDisk”執行。
3.作業系統會出現安裝訊息,點選”安裝”。
4.此時畫面右下方,會出現設定RAMDisk的進度棒。
5.設定完成後會出現”RAMDisk Started successfully”。
6.這時候,您可以看到出現自動播放的選項。
7.同時”我的電腦”中將會出現一個新的磁碟代號。
#進行RAMDisk備份設定
有了虛擬的RAMDisk之後,在前文中有提及,RAM有關機後斷電的特性,所以在關機後資料會消失不見。若您需要開機後把資料留存下來,就必須要在關機前將RAMDisk的資料將寫到硬碟中備份起來,重新開機後再重新寫回RAMDisk。
1.開啟”Dataram RAMDisk Configuration Utility”,進入”Load/Save”,分別勾選”Load Disk Image at startup”以及”Save Disk Image on Shutdown”,並可在”Filename”中選取儲存及讀取映像檔的資料夾位置。
2.按視窗右上角的”關閉視窗”後,會跳出是否儲存RAMDisk的設定,點選”是”。
3.由於已經啟用了RAMDisk,這時候會跳出”設定將會在下次啟用後生效”的提醒視窗。
到這個階段,建議您先將RAMDisk關閉,再重啟一次;就可以在開關機之間不必擔心RAMDisk會因為斷電造成檔案遺失的問題了。
(三)利用RAMDisk作為Multicharts加速利器
#搬移Multicharts快取到RAMDisk中
在這個階段,您應該已經擁有一個RAMdisk,同時也具有備份的功能了。接下來要回到我們的正題,就是幫Multicharts加速。由於Multicharts過去在開啟檔案時,必須要將價格資料先放到一個空間去作為快取,過去這個部分都是由硬碟來擔綱,您可以在Multicharts開啟圖表時,去預設的資料夾users\USERNAME\AppData\Local\TS Support\Multicharts\Cache中觀察,便可以看到裡面存在一些Storage*等等的檔案在裡頭。(USERNAME為您自己的使用者名稱,若您是券商版,您的資料夾TS Support後面會接券商版的名稱,例如Capital Multicharts或者Yuanta Multicharts,若您是x64版,Multicharts的資料夾名稱會變成Multicharts64)
現在,我們只要將這個快取的位置變更到RAMDisk上,就能享受到Multicharts加速的功能了。
1.到”開始”的地方,選電腦按右鍵,畫面會出現”管理”,點選左鍵進入。
2.選擇您的RAMDisk磁碟機代號,按右鍵點選”變更磁碟機代號及路徑”,再按左鍵進入。
3.此時畫面會出現”變更代號路徑”對話框,在左下方處按下”新增”。
4.畫面會出現路徑,點選”掛在下列空的資料夾”上。
5.您可按下瀏覽鍵,點選剛才原本的硬碟快取資料夾,再按確定就大功告成了。
6.為了確認是否掛載成功,您可以使用MC開啟一個新圖表,同時在RAMdisk的磁碟中,可以看到快取檔案已經在裡面了。
同時,享受一下開取圖表的快感吧!
#搬移Multicharts資料庫檔案到RAMDisk中
看到這裡,想必您已經開始享受開圖表加速的快感了!我們索性一不做二不休,也把資料庫整個移到RAMDisk試試看。一般而言,與資料庫有關的檔案有三個,您可以在C:\ProgramData\TS Support\Multicharts\Databases中找到這幾個檔案分別為:FBPORTFOLIO.GDB、TSCACHE.GDB、TSSTORAGE.GDB(若您是券商版,您的資料夾TS Support後面會接券商版的名稱,例如Capital Multicharts或者Yuanta Multicharts,若您是x64版,Multicharts的資料夾名稱會變成Multicharts64)。
同樣的,我們也要把它丟到RAMdisk中(此時請先check一下資料夾的大小會不會超過RAMDisk空間喔)。在此之前,建議您先將這三個檔案做個備份放在硬碟中,以備不時之需,同時檢查一下RAMDisk是否已經做了備份的設定,以免一開機所有的東西都不見哦!
1.先將上述那三個檔案搬到您的RAMDisk槽。
2.點按下方的視窗工具列,在下方的空白框打上”regedit”,進入”登錄編輯程式”。
3.您可在畫面中,找到以下的路徑HKEY_LOCAL_MACHINE\SOFTWARE\TS Support\Multicharts\DataBases\Portfolio,找到登錄的字串值Path,同時 會發現它指向前文提到的路徑(這裡是用64位元做示範,所以資料夾名稱為Multicharts64,若您是券商版,Multicharts的安裝夾會變成券商的名字,例如Capital Multicharts或者Yuanta Multicharts)
如果您在64位元的作業系統上安裝多套Multicharts,登錄的相關機碼有可能會改到HKEY_LOCAL_MACHINE\SOFTWARE\Wownode6432\TS Support裡面,若您真的找不到資料夾,可以到檔案的編輯-->尋找裡面搜尋相關的機碼及字串值位置)
4.找到字串值後,更改裡面的內容,將畫面中的Path路徑,指向RAMDisk的檔案位置。
5.仿造4,HKEY_LOCAL_MACHINE\SOFTWARE\TS Support\Multicharts\DataBases\Storage的地方,分別針對兩個值做修改。
到這裡的話,就大功告成了。您可以開啟Multicharts圖表,選按新的商品,同時再把它關閉,再到RAMDisk的資料槽中,確認資料的修改日期是否有更新,便可知道設定是否成功了!!
(三)測試結果發表
為了讓大家了解使用RAMDisk前後的差異,小弟這裡也進行了一些些簡單的測試,來比較搬移Cache以及DB到記憶體後的差異。
測試平台:windows7,8G Ram,1G Ramdisk
測試資料期間:tick Data,EC1 (20010701~20121101),TXF1(1998/7/22~2012/11/01)
測試流程:每次開啟MC前先將快取清掉,模擬第一次啟用沒有快取的狀況。每個
測試進行三次取平均值。Normal為原始MC的安裝環境,Cache為使用
記憶體作為Cache來源,Cache+DB則是同步搬移Cache及DB到記憶體。
(四)後記
使用RAMDisk之後的MC,再將快取檔移到RAM中時,速度會明顯提升,反而是移動資料庫相對就覺得沒有那麼有感。但不論如何,若您的RAM夠大,這樣的優化的確能避免每次一開啟Multicharts都會等很久的問題。只是也要提醒您,當RAMDsik的空間調整過大,或者RAM本身容量不足時,這樣的設定反而會拖慢整體效能,欲速則不達哦!建議您視記憶體空間及電腦配備等因素做適度調整,才能打造一個最好的電腦效能。

Source: http://www.multicharts.com.tw/dis/dis_Content.aspx?rd=1&D_ID=2&SN=13737,  Multicharts官網,蚊子, 2012/11/8

更改Multicharts的預設工作底稿

如果覺得每次開啟MC時,都要去選擇我們要的工作底稿,而造成無人值守的自動交易障礙,底下的方法可以解決每次都要選擇底稿的問題。

有二種方式:

1) 把你要開啟的工作底稿放到下面的目錄中
     C:\Users\%username%\AppData\Roaming\TS Support\MultiCharts\Prebuilt\

2) 直在更改機碼的預設目錄:

a. 在命令列叫出 regedit
b. 按 Ctrl+F 叫出 尋找 視窗, 輸入 PrebuiltWSPath
c. 找到之後直接指定到你管理專案的目錄就可以了, 例如 R:\MCDefault\
==
然後在 MC 的偏好設定中, 選 開啟預設的工作底稿
每次 MC 開啟後, 就會自動開啟 R:\MCDefault\ 裡頭所有的 *.wsp

=================================================================

感謝MC的官網以及淩波微步大的提供

[轉貼] Multicharts程式交易:加碼設定與進階聯想


每個投資人的偏好不同,有人習慣做長線,一抱或許就幾季幾年,也有投資人喜歡短線的進出場操作
其實不論是長線或短線的操作,都可以進行加碼,畢竟一個大趨勢當中必定也參雜了許多小趨勢。
加碼口數的設定上必須考量到下列幾點:
1.資金比例控管
以期貨大台來說,一口波段單如果以五十萬來操作,那麼當你預估策略可加碼到三口時,建議以100
以上,或者參考歷史最大連虧來準備你的起始資金。
2.操作週期長短
當投資人所操作的方式為較長期的策略,相對加碼口數會比短線操作來的大,而短線通常出現較頻繁
也為較小的趨勢,那麼就必須考量到加碼點位是否已經是該波段的相對高低點,這樣的加碼無疑是成
本上的墊高。
3.獲利加碼進場
由於法人資金水位較大,有些甚至大到可以撼動市場,於是它們有本錢在虧損的狀況下去凹單去加碼
直到價格走向獲利的方向。然而散戶資本不足,賠光了也就沒錢凹了,所以應該在手上部位在獲利狀
況下才進行加碼的動作。
進階設定與聯想
當原策略發展成加碼策略後,策略性質有了一定程度上的改變,以多通道加碼系統來說,絕非將原策略
原封不動的進行加碼就可以有效運用,原策略主要由通道系統進出場再輔以停利停損機制來控制績效
而改成加碼策略時做了以下的調整
1.限定加碼口數
為了避免進場在相對高低點而造成無謂損失。
2.將原本的固定金額停利換成獲利回吐機制
由於原策略只有一口單,當獲利到達一定金額後就停利出場,而加碼策略必須考量每一個加碼進場點
位都不同,固定金額停利方式容易錯失停利的機會,常常波段還沒結束就已出場,或者還沒到達停利
趨勢就反轉,於是採用獲利拉回百分比來出場,理由無它,當口數增加時為了要抓住獲利進而必免
過度拉回造成損失。
3.做錯立即停損出場
我們期待的是獲利加碼的概念,可是並非每一次都能成功搭上順風車,總有不小心摔車的經驗,不過
要注意一點,在加碼進場的同時,表示前一口單已經有一部分的未實現獲利存在,但是加碼後價格卻突
然背道而馳
導致
整體產生損失,手中所有部位產生淨損的狀態,那麼就請別戀棧了,這表示已經賠掉
前面的獲利,此時應該等待下一次的機會來臨。

[轉貼] 部位管理 (by 淩波微步)

Position Sizing(部位管理)
 
 如同德州撲克, 你無法每次都拿到好牌,
 但是你卻可以控制每次輸贏的多寡
 這就是Position Sizing要做的事情
 一般我們把PS歸在資金管理的範疇
 
 大部分人的系統開發都停留在第一階段
 也就是僅依據指標判多空
 部位則永遠固定在相同口數
 理論上非多即空,口數固定會有最大獲利,但也相對承受最大風險
 當我們資金少的時候, 只好如此
 
 但當我們資金夠大到可以做籌碼運用的時候, 我們就可以好好來規劃一下
 怎麼將戰術從點推廣到面甚至是3D/4D
 這部份在台灣程式交易論壇是比較少討論到的
 我這邊大概簡介三種
 
 1.點進點出
 
   口數公式是 P=(W/風險值)
 
   W:可為一常數, 當他除以風險值之後可以在你想要的段數間變化, 1~5
     進階的變化則是讓W與權益數連動
 
   風險值: 一般多半引用波動率或乖離率一類逆勢指標
 
   僅在進場的時候決定口數大小, 直到指標反向就全出, 是謂點進點出
 
 代表是阿政大的系統(www.yctseng.net)
 
 優點是遇到大段的可以從頭吃到尾
  缺點是容易紙上富貴
 
 2. 點進面出
 
   公式同1.
 
  但是會隨時重新計算 P , 當風險拉高, P值下降則進行部分停利的動作
  例如盤勢急殺急拉或跳空後, 導致乖離率或波動率驟升, 
  就依據新運算出來的P, 進行減碼停利的動作 
 
 好處是隨時在控制風險, 停利有依據, 非常符合人性
  這是我最喜歡的停利方式
  
 例如4/19急殺之後,空單減碼,就算後面有急拉也不會太懊惱
 
  缺點是趨勢未明的時候容易被巴大條的
  優點上面有說, 就是比較不會紙上富貴
 
 3. 面進點出
 
  2相反
  採用分批進場的方式, 俗稱加碼
  在趨勢不明的時候僅建立基本單,
 隨著基本單獲利出現, 波動率升高, 趨勢明朗才漸漸把口數放大
 
  如版上的lovebeast大就是這樣的模式
 
  優點是前單可以保護後單
 缺點是趨勢的動能也有限度, 怕的是後單進場的時候也是動能停止的時候,
 口數一大會連同之前的獲利一併吃掉
 
 三種模式各有優缺點
 在基礎順勢模型相同的狀況下(僅決定多或空)
 據我的經驗, 以點進面出或面進點出的方式 (即分批進場或分批出場)
 比起點進點出更可以有效降低drawdown而不影響獲利