無分別、沒取捨的當下就是淨土,
那來的善惡是非。
心無三受,就無三界。
欲界、色界、無色界,苦、樂、不苦不樂。
最大的涵養,就是最大的成就。
---慧濬法師
2010年3月30日 星期二
2010年3月19日 星期五
無 bug 的 this bar
variables : mkp(0)
If mkp = 0 then
if XXXX > low then
sell this bar at XXXX or higher
sell this bar at XXXX or lower
else if YYYY < high then
buy this bar at YYYY or higher
buy this bar at YYYY or lower
end if
end if
If mkp = 1 then
if XXXX > low then
sell this bar at XXXX or higher
sell this bar at XXXX or lower
end if
end if
If mkp = -1 then
if YYYY < high then
buy this bar at YYYY or higher
buy this bar at YYYY or lower
end if
end if
mkp = marketposition
2010年3月17日 星期三
DMI
http://www.wretch.cc/blog/umidnight/2976746
目前由指標來分辨多空已非難事
分析行情最難搞定者, 只有趨勢與盤整的分界
能夠知道趨勢盤, 或盤整盤,就不難操作, 因為各有不同運用工具, 績效絕對可以提升
但是金融領域不好找到區分的適當工具
DMI 是第一個被推崇的指標, 其中的ADX把兩者之間分隔的清清楚楚
DMI出自 Wilder手中, 這位大師發表過 RSI, DMI, SAR(Parabolic), 浴缸理論,都是操作股市的經典之作
DMI 的東西分為兩部份(四條線, 但是嚴格說三條比較重要)
三條趨勢線:ADX趨勢平均線 & ,DI+,DI-
DM +=abs(H-PH)
DM - =abs(L-PL)
TR=max(H,L,PC)-MIN(H,L,PC)
DI +=DM+/TR*100
DI - =DM- /TR*100
ADX=abs(DI+一DI-) / (DI++DI-)
ADR=ADX+14日前ADX / 2……此條線較沒名氣
研判:
多空分界 (藍綠之分)---藍為空頭,綠為多頭
1.+DI向上穿過-DI為買進訊號;ADX向上穿過ADR為買進訊號
2.+DI向下穿過-DI為賣出訊號;ADX向下穿過ADR為賣出訊號,趨勢與盤整分界 ADX (紅色線)---不管行情上漲或下跌, ADX都會上揚,回跌表示轉折
3.+DI>-DI時,ADX上升則看好後市;角度愈大,上升力愈大,ADX下降代表上升已近尾聲
4.-DI>+DI時,ADX下降則應逢低酌進
DMI的彼此誤解較少的原因是因為參數幾乎都用14
以週K為例+DI<-DI此為空頭市場
ADX不到30(有人認為是25此為爭辯之處)暫時看為盤整
超過30 (25)即為行情激烈之處通常代表急漲或急跌
ADX
上升動能:今天最高價與昨天最高價之差
下跌動能:今天最低價與昨天最低價之差
真實波幅:今天價位真實變動區間
+DI:14天真實波幅之和/14天上升動能之和
-DI:14天真實波幅之和/14天下跌動能之和
ADX:ABS(+D減-DI)/(+D加-DI)
+DI由下往上穿過-DI,市場處於多頭
ADX值高於前一個值,表示趨勢持續,ADX由高點沒滑落,表示趨勢告一段落
ADX同時低於兩條DI或讀數低於20~25,表示市場沒有明顯的趨勢。
1.ADX指數是反映趨向變動的程度,而不是方向的本身。
2.進場與出場是採用+DI14與-DI14的穿越信號。
3.當極端點交易法則生效時,法則2將有例外。當DI發生穿越信號時,取當天的極端點做為止損點;換言之,多頭頭寸取當天的低價為止損點,空頭頭寸取當天的高價。在隨後的幾之內,如果止損點未被觸及,即使DI再發生穿越信號也不需理會。
4.當ADX的位置高於兩條DI而方向發生改變,這是趨勢反轉的早期信號,可以做部份的獲利了結。最後的平倉信號是來自於DI穿越或極端點的止損被引發。
當ADX改變方向時,如果+DI14高於-DI14,這代表趨勢的變動是由上亦下,反之亦然。
5.如果ADX高於兩條DI,而且讀數明顯偏高,這代表既有的趨勢已經持續一段時間。這並不是建立新頭寸的理想時機。
換言之,ADX的讀數偏高,相當於是超買/超賣,順勢的新交易頭寸通常很難獲利。
6.如果ADX同時低於兩條DI或讀數低於20~25,避免採用順勢交易的系統,因為市場中沒有明顯的趨勢。
5分鐘bar,寫前天,昨天、今天的高低點程式碼
Array: OoD[84](-1), HoD[84](-1), LoD[84](-1), CoD[84](-1)
Value11 = OpenOfD ( 1, OoD)
Value21 = HighOfD ( 1, HoD)
Value31 = LowOfD ( 1, LoD)
Value41 = CloseOfD( 1, CoD)
改 1, 2, 3, 4 就是前 1 日, 前 2 日......
http://www.nisan.us/modules/newbb/viewtopic.php?topic_id=10769&post_id=78654#forumpost78654
絕對點數停損
http://www.nisan.us/modules/newbb/viewtopic.php?topic_id=5414&forum=15
Parameter: 停損(50);
Vars: El(0),Es(0);
if BarsSinceEntry(0) > 0 and CurrentContracts <= -1 then
Es = EntryPrice(0) + 停損
end if
if BarsSinceEntry(0) > 0 and CurrentContracts >= 1 then
El = EntryPrice(0) - 停損
end if
IF BarsSinceEntry(0) > 0 AND LOW < El THEN
IF OPEN < El THEN
EXITLONG thsi bar AT OPEN OR HIGHER
EXITLONG thsi bar AT OPEN OR LOWER
ELSE
EXITLONG thsi bar AT El OR HIGHER
EXITLONG thsi bar AT ElOR LOWER
END IF
END IF
IF BarsSinceEntry(0) > 0 AND HIGH > Es THEN
IF OPEN > Es THEN
EXITSHORT thsi bar AT OPEN OR HIGHER
EXITSHORT thsi bar AT OPEN OR LOWER
ELSE
EXITSHORT thsi bar AT Es OR HIGHER
EXITSHORT thsi bar AT Es OR LOWER
END IF
END IF
KCA: 此停損方式用到 "this bar" ,對新初學者此方式暗藏危機,所以請對此程式碼邏輯有所了解者再予使用,否則將有可能發生嚴重損失!
量與方向
http://www.nisan.us/modules/newbb/viewtopic.php?topic_id=5405&forum=15
通常大量出現的區域有可能是當日的高點或是低點或是價格攻擊起始點,所以以量為基礎而做的價格突破,有可能是某方向的趨勢的開始,俱有相當的參考性質。
HTS version:
//日線上使用10
//5分線上使用180
//15分線上使用 21
Parameter:LT(21) ;
VARS:I(0),高(0),低(0);
VALUE1 = HIGHEST(VOLUME,LT)
FOR I=0 TO LT
IF V[I]=VALUE1 THEN
低 = L[I]
高 = H[I]
END IF
END FOR
DRAW1(低[1],"大量低")
DRAW2(高[1],"大量高")
+++++++++++++++++++
TS version:
inputs:LT(21) ;
VARS:I(0),HH(0),LL(0);
VALUE1 = HIGHEST(VOLUME,LT);
FOR I=0 TO LT begin
IF V[I]=VALUE1 THEN begin
LL = L[I];
HH = H[I];
END;
END;
plot1(LL[1],"L");
plot2(HH[1],"H");
限制當日虧損
vars: dayLoss(50);
vars: mc(0), entryCount(1);
if date <> date[1] then begin
dayLoss = 50;
entryCount = 1;
end if
mc = marketposition * currentcontracts;
if mc[1] = 1 and mc = 0 then dayLoss = dayLoss + exitprice(0) - entryprice(0)
if mc[1] = -1 and mc = 0 then dayLoss = dayLoss + entryprice(0) - exitprice(0)
if mc[1] = -1 and mc = 1 then dayLoss = dayLoss + entryprice(1) - entryprice(0)
if mc[1] = 1 and mc = -1 then dayLoss = dayLoss + entryprice(0) - entryprice(1)
if dayLoss <= 0 then entryCount = 0;
if marketposition > 0 then exitlong next bar at entryprice(0) - dayLoss stop;
if marketposition < 0 then exitshort next bar at entryprice(0) + dayLoss stop;
大概如上…利用進場的價位和出場的價位把目前可以損失的點數 (dayLoss) 計算出來。也就是說如果第一筆單是獲利 20 點的話…那 dayLoss 就會變成 70 點。也就是接下來的單子可以虧損 70 點。
可以看到我在 dayLoss <= 0 的時候把一個變數 entryFlag 設定為 0,這個變數是需要加在進場的時候順便檢查是否為 1 的,才可以達到 dayLoss <= 0 的時候不再進場。
++++++++++++++++++++++++++++++
vars: count(0);
vars: mc(0), gp(0);
mc = marketposition * currentcontracts;
gp = netprofit;
if date <> date[1] then count = 0;
if count = 0 and time > 900.00 and time < 1300.00 then begin
if (marketposition = 0 or close < entryprice(0)) and average(close, 10) cross over average(close, 20) then begin
buy ("b1") next bar at market;
end;
if (marketposition = 0 or close > entryprice(0)) and average(close, 10) cross under average(close, 20) then begin
sell ("s1") next bar at market;
end;
end;
if marketposition < 0 and average(close, 10) cross over average(close, 20) then begin
exitshort ("exs1") next bar at market;
count = 1;
end;
if marketposition > 0 and average(close, 10) cross under average(close, 20) then begin
exitlong ("exb1") next bar at market;
count = 1;
end;
if time = 1330.00 and marketposition <> 0 then begin
exitlong next bar at market;
exitshort next bar at market;
end;
if mc <> mc[1] and gp < gp[1] then count = 1;
setstoploss(8000);
二個變數…一個為 mc 一個為 gp
這兩個變數分別儲存了倉位的改變和 netprofit 的改變…透過這樣的方式來檢查
上一次的進出場是否為獲利…如果為虧損的話…就直接把進場的 count 限制掉…就可以達到限制進場次數了。
2010年3月15日 星期一
2010年3月3日 星期三
好玩
因為人的邏輯是存在著不可避免的缺陷性,所以我們會常常看到許多公眾事務在少數掌權者身上決定後所產生的好玩又好笑的事例。
例如:
健保;因為政策不當造成資金不足,為了不讓它停擺,便耍弄各種把戲來拖延壽命。到目前都還未看到治本的作為!難道叫有錢人多繳一些保費,真可以讓健保存活無恙?況且;對於那些多繳保費的人,日後需要用到醫療資源時,可以有更好的配置?要不;是不是只要是政策,百姓只得認命的份兒,那...何異於獨裁!
現在,消保法的無限上綱讓產業經營進入了動則得疚的地步。電訊業原來是預收款然後使用後再結算、第四台也是先收款再提供服務。現在有人撐腰了,當然大家樂得使用後再付費的機制。
那我也想類比的問一下:保險的保費我可以用到理賠時再交嗎?
學費可以學期末了再交嗎?
(使用者付費,用到才付款,都應該這樣嗎 ?)