This page looks plain and unstyled because you're using a non-standard compliant browser. To see it in its best form, please visit upgrade to a browser that supports web standards. It's free and painless.

MT4外匯智能交易系統-網賺理財小舖 會員登入 會員註冊
MT4軟體很多做外匯的都非常喜歡用,但如果工作或應酬等沒時間座在電腦邊就可以請出MT4的手機平臺看盤下單了.很多外匯交易商都提供MTmobile平臺,比如FXDD 和 PMC等. 對於手機要求是Windows Mobile Pocker PC系統(PPC手機) 如:Dopod686、696、700、818、828、838、830、900、P800、P802、CHT9000、818pro、大顯CU928、Asus P505、P525、P535、BenQ P50、Lenovo ET180、ET280、ET560、ET960、ET980、Mio A700、A701、HP6515、rw6818、6828、技嘉g-Smart.......等智能手機提供兩個公司的軟體下載位址: FXDD PDA端安裝檔下載 FXDD PC端安裝檔下栽 PMC PDA端安裝檔下載 PMC PC端安裝檔下載 使用移動平臺最好使用包月套餐比較好要不流量較大支付的費用相對較多 第一步:下載軟體到手機或下載PC端到電腦連線PPC手機安裝. 第二步:啟動MT4mobile點擊"選項"按照下面的圖設置代理伺服器(如果不是使用的移動GPRS CMWAP上網不須設置代理伺服器)鉤選"開啟代理器".在代理器中設置伺服器位址"10.0.0.172:80" 交易類型"HTTP" 帳號"cmwap" 密碼"cmwap" 點擊測試通過.

 第三步:點"工具欄"---點"開新模擬帳號"按照要求填好各項別忘了在"我同意訂閱你們的新聞簡報"打鉤.然後點下一步掃描過後就可以開類比帳號了,這和PC上的MT4差不多.

第四步:進入系統可以看盤和交易了.

【極品名店】都市熟男素面款西裝外套-黑色

【極品名店】名品時尚雙釦素面西裝外套-藍底白直紋

【極品名店】名品時尚高質感西裝外套-灰色

【極品名店】獨家素面設計款西裝外套-深灰

【極品西服】內斂俐落‧素面深藍平面造型西裝褲

【極品西服】內斂俐落‧素面造型打摺西裝褲

【極品西服】內斂俐落‧時尚打摺羊毛料西裝褲

【極品西服】內斂俐落‧商務必備素面西裝褲

【極品西服】內斂俐落‧商務必備打摺西裝褲

【極品西服】內斂俐落‧質男嚴選素面西裝褲

【極品西服】內斂俐落‧質男嚴選打摺西裝褲

【極品西服】內斂俐落‧經典款素面羊毛料西裝褲

【極品西服】獨家高質感素面西裝褲-灰色

【極品西服】完美型男設計款西裝褲-灰色

【極品西服】完美型男設計款西裝褲-灰色

【極品名店】名品時尚高質感西裝褲-灰色

【極品名店】秀上版細緻藍條西裝褲-深藍

【極品名店】都市型男素面款西裝褲-黑色

【極品名店】獨家素面設計款西裝褲-深灰

【極品名店】都市熟男素面款西裝褲-黑色

【極品西服】名品時尚素面西裝褲-藍底白直紋

【極品西服】都會氣質型男款西裝褲-深藍

【極品西服】尊爵紳士風尚細緻藍條西裝褲-黑底白直紋

【極品名店】品味表徵織紋休閒皮帶

【極品名店】完美穿搭雙色織紋休閒皮帶

【極品名店】俐落雙色織紋休閒皮帶

【極品名店】英倫爵士休閒皮帶

【極品名店】優質都會格紋休閒皮帶

【極品名店】復古小牛皮壓式自動頭皮帶

【極品名店】小牛皮率性千鳥織紋休閒皮帶

【極品名店】小牛皮壓式自動頭皮帶

【極品名店】經典千鳥織紋小牛皮皮帶

【極品名店】設計款麻花編織休閒皮帶

【極品名店】高級雙色編織休閒皮帶

【極品名店】時尚雙色編織休閒皮帶

【極品名店】優質小牛皮休閒皮帶

【極品名店】精緻小牛皮休閒皮帶

【極品名店】簡約小牛皮紳士皮帶

【極品名店】率性雙色編織休閒皮帶

【極品名店】時髦牛皮壓式自動頭皮帶

【極品名店】實用壓式自動頭皮帶

【極品名店】都會時尚壓式自動頭皮帶

【極品名店】典雅牛皮壓式自動頭皮帶

【極品名店】透氣防菌紳仕襪-灰

【極品名店】透氣防菌紳仕襪-黑色

【極品名店】透氣防菌紳仕襪-淺灰

【極品名店】透氣防菌紳仕襪-深藍色

【極品西服】經典細點紫底絲質領帶

【極品西服】都會時尚斜紋藍絲質領帶

【極品西服】設計款方格灰色絲質領帶

【極品西服】摩登設計綠底絲質領帶

【極品西服】幾何圓格紋紫底絲質領帶

【極品西服】復古斜紋黃底絲質領帶

【極品西服】復古小花紅底絲質領帶

【極品西服】復古小花橘底絲質領帶

【極品西服】魅力圓格紋銀色絲質領帶

【極品西服】亮彩菱格藍底絲質領帶

【極品西服】英倫風細菱格橘底絲質領帶

【極品西服】雅痞細紋深藍底絲質領帶

【極品西服】雅痞細紋紅底絲質領帶

【極品西服】幾何雙色藍底絲質領帶

【極品西服】幾何雙色紫底絲質領帶

【極品西服】低調點點藍底絲質領帶

【極品西服】低調點點藍紫底絲質領帶

【極品西服】低調點點棕底絲質領帶

【極品西服】奢華雙斜紋紫底絲質領帶

【極品西服】奢華雙斜紋淺藍底絲質領帶

【極品名店】非凡品味‧大人物特寫POLO衫

【極品名店】品味表徵‧極富巧思彩藍線條風格衫

【極品名店】品味表徵‧卓越風格POLO衫

【極品名店】品味表徵‧獨特低調風格衫

【極品名店】洗練雅痞‧尊爵姿態風格衫

【極品名店】時尚情人‧熟男率性領條風格衫

【極品名店】品味表徵‧自信態度100%風格衫

【極品名店】時尚情人‧多風貌迷人彩條風格衫

【極品名店】非凡品味‧商務休閒旅人POLO衫

【極品名店】時尚情人‧歐洲風情魅力衫

【極品名店】品味表徵‧紳士優雅風格衫

【極品名店】非凡品味‧十全十美時尚風格衫

【極品名店】時尚情人‧專情表徵細直紋風格衫

【極品名店】時尚情人‧法式風情POLO衫

【極品名店】時尚情人‧陽光和煦風格衫

【極品名店】時尚情人‧霸氣十足直白線條POLO衫

【極品名店】時尚情人‧沉穩內斂直白線條POLO衫

【極品名店】非凡品味‧熟男風情優雅POLO衫

【極品名店】質男風尚‧品味人生POLO衫

【極品名店】品味表徵‧黑白經典格POLO衫

【極品名店】質男風尚‧低調彩條風格衫

【極品名店】質男風尚‧帥氣倍增POLO衫

【極品名店】時尚情人‧個性彰顯POLO衫

【極品名店】時尚情人‧戀愛至上風雅衫

【極品名店】非凡品味‧熟男姿態風格衫

【極品名店】非凡品味‧熟男昇等風格衫

【極品名店】非凡品味‧高調姿態風格衫

KD技術指標是研判行情經常使用的一種技術指標,它的優點是對匯價的未來走向變動比較敏感,尤其在周線、日線圖中,往往能給出較為明確進出場時機,一般來說,黃金交叉意味著買進,死亡交叉意味著賣出。

但是任何技術指標都不是萬能。從另一方面來講,KD技術指標的反應敏感又是它不足的地方。黃金交叉的信號經常可能使投資者進場太早而被套牢,死亡交叉的信號使投資者賣出太早而被套牢。這兩種現象也就是我們常說的KD技術指標的低位鈍化和高位鈍化。認識KDJ指標的鈍化現象對於波動劇烈的外匯市場非常關鍵。


 
 

 

要正確使用KD技術指標,需要滿足的條件是:匯價在有一定幅度的箱形之中運動,在這情況下,按照低位黃金交叉買進,高位死亡交叉賣出,準確度相對高一些。

當KD技術指標發生鈍化的時候,可以用如下方法來識別:

1、放大法。

因為KD技術指標非常敏感,因此經常給出一些雜信,這些信號容易誤導投資者,認為產生進場信號,據此操作而失誤。如果我們放大一級來確認這個信號的可靠性,將會有較好的效果。如在日K線圖上產生KD技術指標的低位黃金交叉,可以把它放大到周線圖上去看,如果在周k線圖上也是在低位產生黃金交叉,將認為這個信號可靠性強,可以大膽去操作。如果周k線圖上顯示的是在下跌途中,那麼日k線圖上的黃金交叉可靠性不強,有可能是主力的騙線手法,這時候可以採用觀望的方法。

2、形態法。

由於KD技術指標的敏感,它給出的指標經常超前,因此可以通過觀察KD技術指標的形態來幫助找出正確的買點和賣點,KD技術指標在低位形成W底,三重底和頭肩底形態時再進貨;在較強的市場裡,KD技術指標在高位形成M頭和頭肩頂時,賣點的信號可靠性將加強。尤其應該注意的是KD與RSI一樣經過震盪後形成的反壓線準確性較高。

3、數浪法。

KD技術指標和數浪相結合,是一種非常有效的方法。在K線圖上,可以經常清晰地分辨上升形態的一浪,三浪,五浪。在K線圖上,匯價盤底結束,開始上升,往往在上升第一子浪時,KD技術指標即發出死亡交叉的信號,這時候,可以少考慮這個賣出信號,因為它很可能是一個錯誤信號或是一個騙線信號。當匯價運行到第三子浪時,加大對拋空信號的重視程度,當匯價運動到明顯的第五子浪時,這時如KD技術指標給出賣出信號。這時候KD技術指標給出的信號通常將是非常準確的信號,當匯價剛剛結束上升開始下跌時,在下跌的第一子浪,少考慮KD技術指標的買進信號,當匯價下跌了第三子浪或第五子浪時,才考慮KD技術指標的買進信號,尤其是下跌五子浪後的KD技術指標給出的買進信號較準確。
保證金是利用槓桿比率,提高購買力的方法。如果您有 2,000 美元現金在一個保證金帳戶中、並允許 100:1 的槓桿率,您可以買到最高價值 200,000 美元的外匯,因為您僅需在您的帳戶顯示購買價格的 1% 作為擔保,換句話說,您擁有購買 $200,000 的購買能力。

保證金使您用更少的現金投入,來增加投資回報。需要注意的事,保證金交易既能擴大您的盈利,也同樣能擴大您的虧損。您必需要瞭解其帶來的風險:

* 當您的帳戶保證金跌落到一定點(強制平倉點),您帳戶上的頭寸可能部分或全部清算。

* 您的頭寸被清算之前您不會收到保証金追加通知。

您應當檢查您的保證金總額,以達到規定基準,在每次執行頭寸時利用止損單以限制下跌風險。

 


 
 

 

【Y.U.P】新秋M65軍風領口刺字硬挺騎士夾克

【JERRY衣學院】日系黑鎗扣原色牛仔外套(2色)

【定番著衣】都會時尚窄版修身西裝外套

《小猴子的賣場》合身短版軍裝厚舖棉騎士夾克 3色

【ForStyle】日韓限定‧可隱式抽繩連帽拉鍊口袋防風外套!

【可樂思】時尚造型 軍肩立領雙排釦棉質外套

【Coral`s】任選2件$880‧外套/牛仔褲破盤超值組

【ForStyle】日韓時尚都會‧摺疊口袋立領毛呢連帽長外套!

【DITION】防寒騎士風ZSL斜領拉釦 舖棉螺紋夾克

【DITION】韓精裝SJ宮廷奢華風 麂皮線條短版大衣

【ForStyle】日本CA.CO‧立領摺疊皮衣騎士外套!

【ForStyle】日韓精品‧4摺疊口袋合身版軍裝式翻領外套!

【ForStyle】日韓專櫃款‧橫條紋可拆連帽雙面外套!

【可樂思】韓版高質感抽繩墜領排釦素面襯衫 小外套

【Y.U.P】日系M65俐落筆挺’拆腰帶風衣軍外套

【BONITO】韓版十字紋時尚立領夾克

【卡本尼】任選3件599‧潮流型男基本百搭款

【可樂思】韓版高質感彈性棉質熱氣球圖樣長袖T恤

【可樂思】韓版高質感彈性棉質海洋圖樣長袖T恤

【可樂思】韓版高質感彈性棉質小丑圖樣長袖T恤

【可樂思】韓版高質感彈性棉質瑪莉歐圖樣長袖T恤

【可樂思】韓版高質感彈性棉質澀谷人圖樣長袖T恤

【ZERON】立體燙鑽斜紋圖案優質棉質短下殺↘390

【可樂思】韓版高質感彈性棉質哈士其圖樣長袖T恤

【可樂思】韓版高質感彈性棉質英國旗圖樣長袖T恤

【可樂思】韓版高質感彈性棉質巴黎鐵塔圖樣長袖T恤

【可樂思】韓版高質感彈性棉質球鞋圖樣長袖T恤

【BONITO】美式復古亮?老爺帽秋冬款長T

【BONITO】美式復古亮?運動球鞋秋冬款長T

【BONITO】美式繽紛玩色SURF字母秋冬款長T

【BONITO】美式米奇手繪畫三色字母秋冬款長T

【BONITO】潮流絢麗夜生活UNI城市秋冬款長T

【BONITO】潮流彩條UNI人物剪影秋冬款長T

【BONITO】美式爵士感復古RADIO麥克風秋冬款長T

【BONITO】美式復古DISCO風S&w耳機秋冬款長T

【BONITO】美式復古1966年跑車秋冬款長T

【BONITO】美式復古BIG PIG 星星盾牌秋冬款長T

【BONITO】美式幸運草ORIGINAL STYLE秋冬款長T

【BONITO】美式秋冬獨家款SEED PLAYER星星長T

【BONITO】美式雙色字母29星星秋冬長T

【BONITO】美式字母MUSIC工具零件十字燙金秋冬款長T

【BONITO】美式鞋剪影字母秋冬款長T

【定番韓著】刷毛英文字母短袖T恤

【DITION】韓著SJ型男 斜紋素材!!窄版拉鍊煙管褲

【ZERON】羅紋拉鍊褲管假兩件式拼接剪裁棉褲

【ZERON】抽繩素面束口加厚款七分棉褲‧飛鼠褲

【可樂思】時尚質感鈕釦口袋造型休閒西裝褲

【可樂思】時尚質感橫紋織帶造型休閒西裝褲

【定番達人】軍用美式實搭多口袋超重磅數工作褲

【ZERON】鬆緊褲頭雙口袋打摺西裝料老爺褲

【定番達人】抽繩束口棉質渲染雪花低檔哈倫飛鼠褲

【爵品社】口袋皮革滾邊.窄版休閒長褲

【LuoZai】窄版萊卡棉’極簡反折格紋九分休閒褲

【BONITO】韓版側邊單釦滾邊褲頭素面西裝褲

【BONITO】韓版型男穿搭側邊四釦A字剪裁西裝褲

【ForStyle】日韓嚴選‧補丁磨破藍白紫潑漆+汙漬休閒哈倫褲!

【ForStyle】日本潮流‧摺疊口袋拉鍊滾邊可反摺點點休閒褲!

【ForStyle】日韓嚴選‧米黃雪花摺疊造型彈性休閒牛仔褲/老爺/哈倫褲!

【ForStyle】韓版嚴選‧補丁磨破黑雪花小雙口袋彈性休閒牛仔/哈倫褲!

【ForStyle】日韓街頭‧磨破電繡縫補+貓鬚刷破補丁牛仔褲!

【ForStyle】日韓嚴選‧摺疊造型立體大口袋後腰部V型彈性休閒褲/哈倫褲!

【卡本尼】10秋冬復古白車邊窄版西裝長褲 (共二色)

【ForStyle】日韓時尚‧後腿口袋彈性牛仔褲/哈倫褲/老爺褲!

【ForStyle】日韓古著‧民俗風滾邊造型摺疊雙口袋哈倫褲/老爺褲!

《壹週刊+Esquire 君子》獨享原$6300 ↓只要$4900 

《壹週刊+薇薇》獨享原$6300 ↓只要$4900 

《壹週刊+儂儂》獨享原$6300 ↓只要$4900 

《壹週刊+美麗佳人》獨享原$6300 ↓只要$4900 

《壹週刊+ELLE她》獨享原$6300 ↓$4900 

《壹週刊-訂2年》勁爆話題 生猛報導 

《壹週刊-訂半年》勁爆話題 生猛報導 

《壹週刊-續訂半年》勁爆話題 生猛報導 

《壹週刊-新/續訂1年》掛號寄書 

《VOGUE時尚-訂1年》送好禮3選1! 

《ELLE她-訂1年》送拉桿旅行袋或好禮5選1! 

《VOGUE時尚-續訂1年》 

《美麗佳人-訂1年》特價優惠專案 

《Ray瑞麗美人-訂2年》國際中文版 大受歡迎 

《薇薇VIVI-訂2年》緊急塑身大作戰 

《VOGUE-續訂2年》雙重好禮大方送! 

《儂儂BELLA-訂1年》 

《ELLE她 -訂半年》不能沒有的太陽眼鏡 

《美麗佳人-訂半年》美容試用評鑑 

《柯夢波丹-訂半年》特價優惠專案 

《世界民航-訂1年》漫漫兩岸直航路 

《車語生活-訂1年》新星升火待發 

《一手車訊-新/續訂1年》車訊獎50款完全導覽手冊 

《歐洲車雜誌-訂1年》唯一高質感汽車 

《捷進空中美語教室-訂1年》書+MP3.CD版. 

《實用空中美語-訂1年》書+MP3.CD版 

《空中英語教室-訂1年》書+ MP3.CD版 

《大家說英語教室-訂1年》 書+MP3.CD版 

《 彭蒙惠英語-訂1年》書+MP3.CD版 

《ABC互動英語-訂1年》雙效合一光碟 

《CNN互動美語-訂1年》雙效合一光碟 

《空中英語教室-訂1年》 單書 

《階梯日語-訂1年》 

《常春藤生活英語-訂1年》附CD+MP3 

《第一手報導-訂1年》掌握第一手資訊〈特價無贈〉 

《TVBS周刊-訂1年》送好禮6選1! 

《第一手報導-續訂1年》掌握第一手資訊 

《非凡新聞周刊-訂半年》 新聞搶先看 

《時報周刊-續訂1年》公共場所專案二 

《新小牛頓-新/續訂1年》送獨家光碟收藏夾! 

《小小牛頓-1套12期》給孩童的健康教育 

《幼獅少年-新/續訂1年》贈3期 

《幼獅文藝-新/續訂1年》遇見文學 戀上閱讀 

《TOP945 康軒學習雜誌 初階版-訂3年》 

《TOP945 康軒學習雜誌 進階版-訂3年》 

《TOP945 康軒學習雜誌 初階版-訂2年》 適國小中低年級 

《小太陽-訂1年》適1-3歲 

《地球公民-新/續訂1年》 

《TOP945 康軒學習雜誌初階版-續訂1年》多版本課程規畫的學習雜誌 

《TOP945 康軒學習雜誌 進階版-續訂1年》國小中高年級適用 

《TOP945 康軒學習雜誌 進階版-續訂2年》適讀國小中高年級 

《TOP945 康軒學習雜誌 初階版-續訂2年》 適國小中低年級 

《TOP945 康軒學習雜誌 進階版-續訂3年》 

《TOP945 康軒學習雜誌 初階版-續訂3年》 

《小太陽-訂1年》適讀4-7歲 

《全國兒童美語-訂1年》進階版 

《健康世界-訂1年》心臟病危險性降低的原因 

《常春月刊-訂1年》送健康好禮2選1! 

《鄉間小路-訂1年》報導鄉土之美 

《BODY體面誌-訂1年》好身材、好健康、好漂亮 

《親子天下》送教學叢書! 

《鄉間小路-訂2年》 

《育兒生活-訂1年》 

《康健雜誌-續訂》贈1期 

《當代醫學-訂1年》 

《當代醫學-續訂1年》 

《亞洲週刊-訂1年》送好書2選1! 

《台灣光華-訂1年》國際化雙語編排 

《會計研究-訂1年》提升會計人地位與貢獻 

《SMART智富-訂1年》 

《亞洲週刊-續訂1年》送好書! 

《今周刊-訂1年》加贈5期! 

《Money+ 理財家-訂1年》 

《CHEERS快樂工作人-新/續1年》送GYMS摩登風格電腦手提包 

《理財周刊-新訂1年》送您好禮6選1! 

《大師輕鬆讀-訂1年》 

聯合報 

《管理-訂1年》加贈1期! 

《經理人月刊-訂1年》加贈好書! 

《哈佛商業評論-訂1年》送精選好書! 

《天下雜誌-新/續訂1年》 

《30雜誌-訂1年》送精選好書二本再加贈文具組! 

《管理-續訂1年》 

《張老師月刊-訂1年》送好書! 

《聯合文學-訂1年》20屆小說新人獎 

《印刻文學生活誌-訂1年》 

《國文天地-訂1年》修辭數量 

《藝術家-訂1年》人學氣息散發 

《廣告Adm-訂1年》台灣最重要的廣告專業 

《PAR表演藝術-訂1年》擁抱藝術無負擔 

《禪天下-訂1年》 

《佛祖心-訂1年》傳家智慧的好書 

《世界電影-訂1年》最新 最詳盡 最熱門的電影資訊! 

《動腦雜誌-訂1年》創意之路從這裡開始 

《手機GOGO玩樂誌-續訂1年》加贈1期! 

《數位時尚-訂1年》 

《食尚玩家-訂1年》送好禮3選1! 

《台灣建築-訂1年》 

《漂亮家居-續訂1年》居家生活情報誌 

《巧手易-訂1年》 

《DIY玩佈置-續訂1年》特價優惠專案 

《完全元氣 花草遊戲-續訂1年》全國第一本 

《完全不累收納play -續訂1年》居家生活情報誌 

《Stuff科技時尚誌-新/續訂1年》最新科技時尚訊息 帶您走在潮流尖端! 

《PPAPER-訂1年》 

《現代營建-訂1年》 

《現代營建-續訂1年》 

《尖端科技-訂1年》全球軍事新聞消息 

《直銷世紀雜誌 -訂1年》 

《Phoebes 芙蓉坊-訂2年》落伍太久的LKK 

《Men's uno男人誌-訂1年》型男聚首魅力對決 

《M'S男人味-新/續訂 1年》 

《GQ瀟灑-訂2年》送妮維雅男性洗面乳 再加贈4期! 

《男人幫FHM-訂1年》FHM女郎 誰能與爭 

《GQ瀟灑-訂半年》 

《TOGO 泛遊情報-新訂1年》 

《國家地理-新訂1年》特價優惠方案 

《行遍天下臺灣渡假版+海外旅遊版-訂1年》訂就贈旅遊叢書! 

《旅人誌-訂1年》 

《行遍天下海外旅遊版-訂1年》送-『超感人博物館』一書 ! 

《AZ時尚旅遊-訂1年》 

《TOGO 泛遊情報-續訂1年》送科博館招待券2張或好禮4選1! 

《TOGO 泛遊情報-訂1年》 

《探索人文地理》 

《高爾夫雜誌-訂1年》 

《職業棒球-訂2年》 

《職業棒球-續訂2年》 

《現代地政-訂1年》大眾化的房地產 

《全球防衛-訂1年》軍事專家 

《台灣本土法學公播版-訂一年》 

《新電子科技-訂1年》 加贈1期! 

《新通訊元件-訂1年》掌握通訊產業脈動,本月訂再加贈1期! 

《光電科技-訂1年》 

《機械月刊-訂1年》提升您的機械專業知識 

《新電子科技-續訂1年》加贈1期! 

《新通訊元件-續訂1年》加贈1期! 

《VOGUE時尚-訂1年》送好禮3選1! 

愛戀小喇叭<14> 

《紅樓夢》-精選珍藏版 36VCD 

《水滸傳》精選珍藏版-全套22DVD 

東森電視台《生活智慧王》曹蘭王月到你家 50集VCD 

聽兒歌學英文《老麥當勞兒歌唱遊-30VCD》 

兒童學習成長小百科 

神州萬里情 感受大陸情 

東洋演歌伴唱金曲 

風景背景光碟2 

動物奇觀(上) 

動物奇觀(下) 

《今周刊-訂1年》獨享特惠免費送SMART或MONEY+$3500 

《今周刊-訂1年》特價優惠專案狂降↘3150元 

《時報周刊+美麗佳人》獨享特惠專案 訂1年送1年 $4900 

《時報周刊+ELLE》獨享特惠專案 訂1年送1年 $4900 

《時報周刊+哈潑時尚》獨享特惠專案 訂1年送1年 $4900 

《時報周刊+柯夢波丹》獨享特惠專案 訂1年送1年 $4900 

《時報周刊+君子》獨享特惠專案 訂1年送1年 $4900 

《Men'sUno男人誌-訂2年》獨享送任選雜誌一年份$3799 消費券訂購只要3600元! 

《儂儂-訂2年》獨享送任選雜誌一年份$3799 消費券訂購只要3600元! 

《君子雜誌-訂2年》獨享送任選雜誌一年份$3799 消費券訂購只要3600元! 

《美麗佳人-訂2年》獨享送任選雜誌一年份$3799 消費券訂購只要3600元! 

《GQ-訂2年》獨享送任選雜誌一年份$3799 消費券訂購只要↓3600元! 

《啟蒙教學翻翻書》在書本的翻動過程中激發孩子的小肌肉發展 

《糖果樹-味道書》$620- 糖果、餅乾、甜甜圈、巧克力 

《世界繪本十大獎精選》適國小1-6年級-激發孩童無限的思考空間 

《世界大師繪本Ⅰ》精緻細膩的繪本內容 

《世界大師繪本Ⅱ》適讀5~10歲 送《老麥當勞兒歌唱30 VCD》 

《歡樂親子繪本》-適合親子一起共同閱讀欣賞 

《諾弟自然博物館》NODDY【帶領孩子學習大自然的奧秘!】 

《趣味動物小百科》幫你回答孩子提出的千百個怪問題! 

《中華歷史五千年》歷史典故-12精裝書36劇場CD 

《英檢小天才》$ -專為兒童設計的英檢閱讀教材 

《童話閱讀寫作》榮獲六十項國內外繪本大獎 

《兒童美術館藝術大圖典》 

成語辭典 

自然科學小百科辭典 

學生作文百科辭典 

學生數學辭典 

學生一字多音錯別字辭典 

《小作家-訂2年》送1年或多樣精選好禮任選! 

《國語日報-訂1年》國小語文閱讀良伴 

《國語週刊-訂半年》基礎版 

《壹週刊+男人誌》獨享原$6300 ↓只要$4900 

《壹週刊+Esquire 君子》獨享原$6300 ↓只要$4900 

《壹週刊+薇薇》獨享原$6300 ↓只要$4900 

《壹週刊+儂儂》獨享原$6300 ↓只要$4900 

《壹週刊+美麗佳人》獨享原$6300 ↓只要$4900 

《壹週刊+ELLE她》獨享原$6300 ↓$4900 

《壹週刊-訂2年》勁爆話題 生猛報導 

《壹週刊-訂半年》勁爆話題 生猛報導 

《壹週刊-續訂半年》勁爆話題 生猛報導 

《壹週刊-新/續訂1年》掛號寄書 

《VOGUE時尚-訂1年》送好禮3選1! 

《ELLE她-訂1年》送拉桿旅行袋或好禮5選1! 

《VOGUE時尚-續訂1年》 

《美麗佳人-訂1年》特價優惠專案 

《Ray瑞麗美人-訂2年》國際中文版 大受歡迎 

《薇薇VIVI-訂2年》緊急塑身大作戰 

《VOGUE-續訂2年》雙重好禮大方送! 

《儂儂BELLA-訂1年》 

《ELLE她 -訂半年》不能沒有的太陽眼鏡 

《美麗佳人-訂半年》美容試用評鑑 

《柯夢波丹-訂半年》特價優惠專案 

《世界民航-訂1年》漫漫兩岸直航路 

《車語生活-訂1年》新星升火待發 

《一手車訊-新/續訂1年》車訊獎50款完全導覽手冊 

《歐洲車雜誌-訂1年》唯一高質感汽車 

《捷進空中美語教室-訂1年》書+MP3.CD版. 

《實用空中美語-訂1年》書+MP3.CD版 

《空中英語教室-訂1年》書+ MP3.CD版 

《大家說英語教室-訂1年》 書+MP3.CD版 

《 彭蒙惠英語-訂1年》書+MP3.CD版 

《ABC互動英語-訂1年》雙效合一光碟 

《CNN互動美語-訂1年》雙效合一光碟 

《空中英語教室-訂1年》 單書 

《階梯日語-訂1年》 

《常春藤生活英語-訂1年》附CD+MP3 

《第一手報導-訂1年》掌握第一手資訊〈特價無贈〉 

《TVBS周刊-訂1年》送好禮6選1! 

《第一手報導-續訂1年》掌握第一手資訊 

《非凡新聞周刊-訂半年》 新聞搶先看 

《時報周刊-續訂1年》公共場所專案二 

《新小牛頓-新/續訂1年》送獨家光碟收藏夾! 

《小小牛頓-1套12期》給孩童的健康教育 

《幼獅少年-新/續訂1年》贈3期 

《幼獅文藝-新/續訂1年》遇見文學 戀上閱讀 

《TOP945 康軒學習雜誌 初階版-訂3年》 

《TOP945 康軒學習雜誌 進階版-訂3年》 

《TOP945 康軒學習雜誌 初階版-訂2年》 適國小中低年級 

《小太陽-訂1年》適1-3歲 

《地球公民-新/續訂1年》 

《TOP945 康軒學習雜誌初階版-續訂1年》多版本課程規畫的學習雜誌 

《TOP945 康軒學習雜誌 進階版-續訂1年》國小中高年級適用 

《TOP945 康軒學習雜誌 進階版-續訂2年》適讀國小中高年級 

《TOP945 康軒學習雜誌 初階版-續訂2年》 適國小中低年級 

《TOP945 康軒學習雜誌 進階版-續訂3年》 

《TOP945 康軒學習雜誌 初階版-續訂3年》 

《小太陽-訂1年》適讀4-7歲 

《全國兒童美語-訂1年》進階版 

《健康世界-訂1年》心臟病危險性降低的原因 

《常春月刊-訂1年》送健康好禮2選1! 

《鄉間小路-訂1年》報導鄉土之美 

《BODY體面誌-訂1年》好身材、好健康、好漂亮 

《親子天下》送教學叢書! 

《鄉間小路-訂2年》 

《育兒生活-訂1年》 

《康健雜誌-續訂》贈1期 

《當代醫學-訂1年》 

《當代醫學-續訂1年》 

《亞洲週刊-訂1年》送好書2選1! 

《台灣光華-訂1年》國際化雙語編排 

《會計研究-訂1年》提升會計人地位與貢獻 

《SMART智富-訂1年》 

《亞洲週刊-續訂1年》送好書! 

《今周刊-訂1年》加贈5期! 

《Money+ 理財家-訂1年》 

《CHEERS快樂工作人-新/續1年》送GYMS摩登風格電腦手提包 

《理財周刊-新訂1年》送您好禮6選1! 

《大師輕鬆讀-訂1年》 

聯合報 

《管理-訂1年》加贈1期! 

《經理人月刊-訂1年》加贈好書! 

《哈佛商業評論-訂1年》送精選好書! 

《天下雜誌-新/續訂1年》 

《30雜誌-訂1年》送精選好書二本再加贈文具組! 

《管理-續訂1年》 

《張老師月刊-訂1年》送好書! 

《聯合文學-訂1年》20屆小說新人獎 

《印刻文學生活誌-訂1年》 

《國文天地-訂1年》修辭數量 

《藝術家-訂1年》人學氣息散發 

《廣告Adm-訂1年》台灣最重要的廣告專業 

《PAR表演藝術-訂1年》擁抱藝術無負擔 

《禪天下-訂1年》 

《佛祖心-訂1年》傳家智慧的好書 

//+------------------------------------------------------------------+
//| ASCTrend1sig_noSound.mq4
//| http://www.olmcmall.com
//+------------------------------------------------------------------+

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Magenta
#property indicator_color2 Aqua

//---- input parameters
extern int RISK=3;
extern int CountBars=300;

//---- buffers
double val1[];
double val2[];


//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+



 
 

 

int init()
{
//---- indicator line
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,234);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,233);
SetIndexBuffer(0,val1);
SetIndexBuffer(1,val2);

//----
return(0);
}
//+------------------------------------------------------------------+
//| ASCTrend1sig |
//+------------------------------------------------------------------+
int start()
{
if (CountBars>=1000) CountBars=950;
SetIndexDrawBegin(0,Bars-CountBars+11+1);
SetIndexDrawBegin(1,Bars-CountBars+11+1);
int i,shift,counted_bars=IndicatorCounted();
int Counter,i1,value10,value11;
double value1,x1,x2;
double value2,value3;
double TrueCount,Range,AvgRange,MRO1,MRO2;
double Table_value2[1000];

value10=3+RISK*2;
x1=67+RISK;
x2=33-RISK;
value11=value10;
//----
if(Bars<=11+1) return(0);
//---- initial zero
if(counted_bars<11+1)
{
for(i=1;i<=0;i++) val1[CountBars-i]=0.0;
for(i=1;i<=0;i++) val2[CountBars-i]=0.0;
}
//----
shift=CountBars-11-1;
while(shift>=0)
{

Counter=shift;
Range=0.0;
AvgRange=0.0;
for (Counter=shift; Counter<=shift+9; Counter++) AvgRange=AvgRange+MathAbs(High[Counter]-Low[Counter]);

Range=AvgRange/10;
Counter=shift;
TrueCount=0;
while (Counter<shift+9 && TrueCount<1)
{if (MathAbs(Open[Counter]-Close[Counter+1])>=Range*2.0) TrueCount=TrueCount+1;
Counter=Counter+1;
}
if (TrueCount>=1) {MRO1=Counter;} else {MRO1=-1;}
Counter=shift;
TrueCount=0;
while (Counter<shift+6 && TrueCount<1)
{if (MathAbs(Close[Counter+3]-Close[Counter])>=Range*4.6) TrueCount=TrueCount+1;
Counter=Counter+1;
}
if (TrueCount>=1) {MRO2=Counter;} else {MRO2=-1;}
if (MRO1>-1) {value11=3;} else {value11=value10;}
if (MRO2>-1) {value11=4;} else {value11=value10;}
value2=100-MathAbs(iWPR(NULL,0,value11,shift)); // PercentR(value11=9)
Table_value2[shift]=value2;
val1[shift]=0;
val2[shift]=0;
value3=0;
if (value2<x2)
{i1=1;
while (Table_value2[shift+i1]>=x2 && Table_value2[shift+i1]<=x1){i1++;}
if (Table_value2[shift+i1]>x1)
{
value3=High[shift]+Range*0.5;
val1[shift]=value3;
}
}
if (value2>x1)
{i1=1;
while (Table_value2[shift+i1]>=x2 && Table_value2[shift+i1]<=x1){i1++;}
if (Table_value2[shift+i1]<x2)
{
value3=Low[shift]-Range*0.5;
val2[shift]=value3;
}
}

shift--;
}

return(0);
}
//+------------------------------------------------------------------+

系列列陣識別字被使用以 ArrayCopySeries()、 iHighest() 和 iLowest() 作用。
它可能是任何以下價值:
恒定 價值 描述
MODE_OPEN 0 打開價格。
MODE_LOW 1 低價。
MODE_HIGH 2 高價。
MODE_CLOSE 3 接近的價格。
MODE_VOLUME 4 容量, 被使用在iLowest() 和iHighest() 作用。
MODE_TIME 5 酒吧開放時間, 被使用在ArrayCopySeries() 作用。

圖(圖期間的) 期限。它可能是任何以下價值:
恒定 價值 描述
PERIOD_M1 1 1 分鐘。
PERIOD_M5 5 5 分鐘。
PERIOD_M15 15 15 分鐘。
PERIOD_M30 30 30 分鐘。
PERIOD_H1 60 1 個小時。
PERIOD_H4 240 4 個小時。
PERIOD_D1 1440 年 每日。
PERIOD_W1 10080 每週。
PERIOD_MN1 43200 月度。
0 (零) 0 期限被使用在圖。


 
 

 

操作類型為 OrderSend() 作用。它可能是任何以下價值:
恒定 價值 描述
OP_BUY 0 買的位置。
OP_SELL 1 賣位置。
OP_BUYLIMIT 2 買極限即將發生的位置。
OP_SELLLIMIT 3 賣極限即將發生的位置。
OP_BUYSTOP 4 買中止即將發生的位置。
OP_SELLSTOP 5 賣中止即將發生的位置。

應用的價格常數。它可能是任何以下價值:
恒定 價值 描述
PRICE_CLOSE 0 接近的價格。
PRICE_OPEN 1 打開價格。
PRICE_HIGH 2 高價。
PRICE_LOW 3 低價。
PRICE_MEDIAN 4 中間價格, (high+low)/2.
PRICE_TYPICAL 5 典型的價格, (high+low+close)/3.
PRICE_WEIGHTED 6 被衡量的接近的價格, (high+low+close+close)/4.


市場訊息識別字, 被使用以 MarketInfo() 作用。
它可能是任何以下價值:
恒定 價值 描述
MODE_LOW 1 低天價格。
MODE_HIGH 2 上限日價格。
MODE_TIME 5 最後接踵而來的壁虱次(上已知的伺服器次) 。
MODE_BID 9 前接踵而來的出價。為當前的標誌, 它被存放在被預定義的可變物 出價

MODE_ASK 10 前接踵而來打聽價格。為當前的標誌, 它被存放在被預定義的可變物 要求

MODE_POINT 11 點大小在行情貨幣。為當前的標誌, 它被存放在被預定義的易變的 點

MODE_DIGITS 12 計數數位在小數點以後在標誌價格。為當前的標誌, 它被存放在被預定義的易變的 數字

MODE_SPREAD 13 傳播價值在點。
MODE_STOPLEVEL 14 停止平實在點。
MODE_LOTSIZE 15 批量在基準貨幣。
MODE_TICKVALUE 16 壁虱價值在儲蓄貨幣。
MODE_TICKSIZE 17 壁虱大小在點。
MODE_SWAPLONG 18 長的位置的交換。
MODE_SWAPSHORT 19 短期職位的交換。
MODE_STARTING 20 市場起始日期(通常被使用未來) 。
MODE_EXPIRATION 21 市場有效期(通常被使用未來) 。
MODE_TRADEALLOWED 22 貿易考慮到標誌。
MODE_MINLOT 23 極小值被允許的相當數量很多。
MODE_LOTSTEP 24 步為改變的全部。
MODE_MAXLOT 25 最大值被允許的相當數量很多。
MODE_SWAPTYPE 26 交換演算方法。0 - 在點; 1 - 在標誌基準貨幣; 2 - 由興趣。
MODE_PROFITCALCMODE 27 贏利演算方式。0 - Forex; 1 - CFD; 2 - 未來。
MODE_MARGINCALCMODE 28 邊際演算方式。0 - Forex; 1 - CFD; 2 - 未來; 3 - CFD 為索引。
MODE_MARGININIT 29 1 全部的最初的邊際要求。
MODE_MARGINMAINTENANCE 30 邊際維護打開位置被計算為1 全部。
MODE_MARGINHEDGED 31 被修築樹籬的邊際被計算為1 全部。
MODE_MARGINREQUIRED 32 自由邊際要求打開1 全部為買。


圖畫形狀樣式列舉為 SetIndexStyle() 作用。
它可能是任何以下價值:
恒定 價值 描述
DRAW_LINE 0 圖畫線。
DRAW_SECTION 1 圖畫部分。
DRAW_HISTOGRAM 2 圖畫直方圖。
DRAW_ARROW 3 圖畫箭頭(標誌) 。
DRAW_ZIGZAG 4 圖畫部分在均勻和奇怪的顯示緩衝之間。
DRAW_NONE 12 沒有圖畫。
圖畫樣式。合法當width=1 。它可能是任何以下價值:
恒定 價值 描述
STYLE_SOLID 0 筆是堅實。
STYLE_DASH 1 筆是該死的。
STYLE_DOT 2 筆被加點。
STYLE_DASHDOT 3 筆有交替的破折號和小點。
STYLE_DASHDOTDOT 4 筆有交替的破折號和雙重小點。

被預定義的箭頭編碼列舉。箭頭代碼常數。它可能是以下價值的當中一個:
恒定 價值 描述
SYMBOL_THUMBSUP 67 贊許標誌(c) 。
SYMBOL_THUMBSDOWN 68 拇指下來標誌(d) 。
SYMBOL_ARROWUP 241 箭頭標誌() 。
SYMBOL_ARROWDOWN 242 箭頭下來標誌() 。
SYMBOL_STOPSIGN 251 停車牌標誌() 。
SYMBOL_CHECKSIGN 252 檢查標誌標誌() 。
確切地指向價格和時間的特別箭頭代碼。它可能是以下價值的當中一個:
恒定 價值 描述
1 向上箭頭以要訣向右(↱) 。
2 向下箭頭以要訣向右(↳) 。
3 左指向的三角(◄) 。
4 對開號標誌(–) 。
SYMBOL_LEFTPRICE 5 左被支持的價格標籤。
SYMBOL_RIGHTPRICE 6 權利支持了價格標籤。

顏色類型支援了顏色常數。
黑色 DarkGreen DarkSlateGray 橄欖 綠色 小野鴨 海軍 紫色
褐紫紅色 靛藍 MidnightBlue DarkBlue DarkOliveGreen SaddleBrown ForestGreen OliveDrab
SeaGreen DarkGoldenrod DarkSlateBlue Sienna MediumBlue 布朗 DarkTurquoise DimGray
LightSeaGreen DarkViolet 火 MediumVioletRed MediumSeaGreen 巧克力 緋紅色 SteelBlue
菊科植物 MediumSpringGreen LawnGreen CadetBlue DarkOrchid YellowGreen LimeGreen OrangeRed
DarkOrange 橙色 金子 黃色 淡黃綠 石灰 SpringGreen 水色
DeepSkyBlue 藍色 洋紅色 紅色 灰色 SlateGray 秘魯 BlueViolet
LightSlateGray DeepPink MediumTurquoise DodgerBlue 綠松石 RoyalBlue SlateBlue DarkKhaki
IndianRed MediumOrchid GreenYellow MediumAquamarine DarkSeaGreen 蕃茄 RosyBrown 蘭花
MediumPurple PaleVioletRed 珊瑚 CornflowerBlue DarkGray SandyBrown MediumSlateBlue Tan
DarkSalmon BurlyWood HotPink 三文魚 紫羅蘭色 LightCoral SkyBlue LightSalmon
李子 卡其色 LightGreen 藍綠色 銀 LightSkyBlue LightSteelBlue LightBlue
PaleGreen 薊 PowderBlue PaleGoldenrod PaleTurquoise LightGray 麥子 NavajoWhite
鹿皮鞋 LightPink Gainsboro PeachPuff 桃紅色 素瓷 LightGoldenRod BlanchedAlmond
LemonChiffon 米黃 AntiqueWhite PapayaWhip Cornsilk LightYellow LightCyan 亞麻布
淡紫色 MistyRose OldLace WhiteSmoke 貝殼 象牙 甘露 AliceBlue
LavenderBlush MintCream 雪 白色


顯示線識別字被使用在 iMACD(), iRVI() 和 iStochastic() 顯示。
它可能是以下價值的當中一個:
恒定 價值 描述
MODE_MAIN 0 基本顯示線。
MODE_SIGNAL 1 信號線。
顯示線識別字被使用在 iADX() 顯示。
恒定 價值 描述
恒定 價值 描述
MODE_MAIN 0 基本顯示線。
MODE_PLUSDI 1 +DI 顯示線。
MODE_MINUSDI 2 - DI indicator 線。
恒定 價值 描述
MODE_UPPER 1 上部線。
MODE_LOWER 2 降低線。

Ichimoku Kinko Hyo 識別字被使用在 iIchimoku() 顯示電話作為源泉的被請求的資料。
它可能是以下價值的當中一個:
恒定 價值 描述
MODE_TENKANSEN 1 Tenkan 參議員。
MODE_KIJUNSEN 2 Kijun 參議員。
MODE_SENKOUSPANA 3 Senkou 間距A 。
MODE_SENKOUSPANB 4 Senkou 間距B 。
MODE_CHINKOUSPAN 5 Chinkou 間距。


移動平均數演算使用的方法以 iAlligator(), iEnvelopes(), iEnvelopesOnArray, iForce(), iGator(), iMA(), iMAOnArray(), iStdDev(), iStdDevOnArray(), iStochastic() 顯示。
它可能是任何以下價值:
恒定 價值 描述
MODE_SMA 0 簡單的移動平均數,
MODE_EMA 1 指數移動平均數,
MODE_SMMA 2 使光滑的移動平均數,
MODE_LWMA 3 線性被衡量的移動平均數。

MessageBox() 作用返回碼。
如果資訊框有 取消 按鈕, 作用退回IDCANCEL 價值如果或者ESC 鍵被按或 取消 按鈕被選擇。如果資訊框沒有 取消 按鈕, 按ESC 沒有作用。
注: MessageBox 返回碼被定義在WinUser32.mqh 歸檔
恒定 價值 描述
IDOK 1 好 按鈕被選擇了。
IDCANCEL 2 取消 按鈕被選擇了。
IDABORT 3 放棄 按鈕被選擇了。
IDRETRY 4 再試 按鈕被選擇了。
IDIGNORE 5 忽略 按鈕被選擇了。
IDYES 6 是 按鈕被選擇了。
IDNO 7 按鈕未被選擇。
IDTRYAGAIN 10 嘗試再 按被選擇了。
IDCONTINUE 11 繼續 按鈕被選擇了。

MessageBox 作用旗子指定對話箱的內容和行為。這價值可能是旗子的組合從以下小組旗子。

表明按鈕被顯示在資訊框, 指定以下價值的當中一個。
恒定 價值 描述
MB_OK 0x00000000 資訊框包含一個按鈕: 好。這是缺省。
MB_OKCANCEL 0x00000001 資訊框包含二個按鈕: 好和取消。
MB_ABORTRETRYIGNORE 0x00000002 資訊框包含三個按鈕: 放棄, 再試, 和忽略。
MB_YESNOCANCEL 0x00000003 資訊框包含三個按鈕: 是, 沒有, 和取消。
MB_YESNO 0x00000004 資訊框包含二個按鈕: 是和沒有。
MB_RETRYCANCEL 0x00000005 資訊框包含二個按鈕: 再試和取消。
MB_CANCELTRYCONTINUE 0x00000006 視窗2000: 資訊框包含三個按鈕: 取消, 嘗試再, 繼續。使用這種資訊框類型代替MB_ABORTRETRYIGNORE 。
顯示一個像在資訊框, 指定以下價值的當中一個。
恒定 價值 描述
MB_ICONSTOP, MB_ICONERROR, MB_ICONHAND 0x00000010 停止標誌像出現在資訊框。
MB_ICONQUESTION 0x00000020 問題標記像出現在資訊框。
MB_ICONEXCLAMATION, MB_ICONWARNING 0x00000030 驚叫點像出現在資訊框。
MB_ICONINFORMATION, MB_ICONASTERISK 0x00000040 像包括一個小寫字母i 在圈子出現在資訊框。
表明系統設定按鈕, 指定以下價值的當中一個。
恒定 價值 描述
MB_DEFBUTTON1 0x00000000 第一按鈕是系統設定按鈕。MB_DEFBUTTON1 是缺省除非MB_DEFBUTTON2 、MB_DEFBUTTON3, 或MB_DEFBUTTON4 被指定。
MB_DEFBUTTON2 0x00000100 第二個按鈕是系統設定按鈕。
MB_DEFBUTTON3 0x00000200 第三個按鈕是系統設定按鈕。
MB_DEFBUTTON4 0x00000300 第四個按鈕是系統設定按鈕。
MessageBox() 作用行為旗子被定義在 WinUser32.mqh 檔, 這就是為什麼這個標題檔必須包括對節目通過 # 包括< WinUser32.mqh >。沒有所有可能的旗子被列出得這裏。欲知詳情, 參見Win32 API 描述。

3 趨向由角度。用途1 個座標。設置線路使用ObjectSet() 角度 起作用。

OBJ_REGRESSION 4 退化。用途第一個二個座標的時間零件。
OBJ_CHANNEL 5 海峽。用途3 個座標。
OBJ_STDDEVCHANNEL 6 標準偏差管道。用途第一個二個座標的時間零件。
OBJ_GANNLINE 7 Gann 線。用途2 同等, 但第二個座標的價格零件被忽略。
OBJ_GANNFAN 8 Gann 風扇。用途2 同等, 但第二個座標的價格零件被忽略。
OBJ_GANNGRID 9 Gann 柵格。用途2 同等, 但第二個座標的價格零件被忽略。
OBJ_FIBO 10 斐波那奇retracement 。用途2 個座標。
OBJ_FIBOTIMES 11 斐波那奇時區。用途2 個座標。
OBJ_FIBOFAN 12 斐波那奇風扇。用途2 個座標。
OBJ_FIBOARC 13 斐波那奇弧。用途2 個座標。
OBJ_EXPANSION 14 斐波那奇擴展。用途3 個座標。
OBJ_FIBOCHANNEL 15 斐波那奇管道。用途3 個座標。
OBJ_RECTANGLE 16 長方形。用途2 個座標。
OBJ_TRIANGLE 17 三角。用途3 個座標。
OBJ_ELLIPSE 18 橢圓。用途2 個座標。
OBJ_PITCHFORK 19 Andrews 乾草叉。用途3 個座標。
OBJ_CYCLES 20 週期。用途2 個座標。
OBJ_TEXT 21 文本。用途1 個座標。
OBJ_ARROW 22 箭頭。用途1 個座標。
OBJ_LABEL 23 文本標籤。用途1 個座標在映射點。
反對價值索引被使用以 ObjectGet() 和 ObjectSet() 作用。它可能是任何以下價值:

恒定 價值 型 描述
OBJPROP_TIME1 0 datetime Datetime 價值對set/get 首先同等的時間零件。
OBJPROP_PRICE1 1 雙 雙重價值對set/get 首先同等的價格零件。
OBJPROP_TIME2 2 datetime Datetime 價值對set/get 其次同等的時間零件。
OBJPROP_PRICE2 3 雙 雙重價值對set/get 其次同等的價格零件。
OBJPROP_TIME3 4 datetime Datetime 價值對set/get 三座標時間零件。
OBJPROP_PRICE3 5 雙 雙重價值對set/get 三座標價格零件。
OBJPROP_COLOR 6 顏色 顏色價值對set/get 物件顏色。
OBJPROP_STYLE 7 內部 價值是STYLE_SOLID, STYLE_DASH, STYLE_DOT, STYLE_DASHDOT, STYLE_DASHDOTDOT 常數的當中一個對set/get 物件線型。
OBJPROP_WIDTH 8 內部 整數價值對set/get 物件行寬。可能是從1 到5 。
OBJPROP_BACK 9 bool 布林價值對set/get 背景圖畫旗子為物件。
OBJPROP_RAY 10 bool 布林價值對set/get 物件光芒旗子。
OBJPROP_ELLIPSE 11 bool 布林價值對set/get 橢圓旗子為fibo 形成弧光。
OBJPROP_SCALE 12 雙 雙重價值對set/get 標度物件物產。
OBJPROP_ANGLE 13 雙 雙重價值對set/get 角度物件物產在程度。
OBJPROP_ARROWCODE 14 內部 整數價值或 箭頭列舉 對set/get 箭頭代碼物件物產。
OBJPROP_TIMEFRAMES 15 內部 價值可能是一個或組合(bitwise 加法) 的 物件可見性常數 對set/get 期限對象物產。
OBJPROP_DEVIATION 16 雙 雙重價值對set/get 偏差物產為標準偏差反對。
OBJPROP_FONTSIZE 100 內部 整數價值對set/get 字體大小為文本反對。
OBJPROP_CORNER 101 內部 整數價值對set/get 船錨角落物產為標籤反對。必須是從0-3 。
OBJPROP_XDISTANCE 102 內部 整數價值對set/get 船錨x 距離物件物產在映射點。
OBJPROP_YDISTANCE 103 內部 整數價值是對set/get 船錨Y 距離物件物產在映射點。
OBJPROP_FIBOLEVELS 200 內部 整數價值對set/get 斐波那奇物件水準計數。可能是從0 到32 。
OBJPROP_LEVELCOLOR 201 顏色 上色價值對set/get 物件平實線顏色。
OBJPROP_LEVELSTYLE 202 內部 價值是STYLE_SOLID, STYLE_DASH, STYLE_DOT, STYLE_DASHDOT, STYLE_DASHDOTDOT 常數的當中一個對set/get 物件平實線型。
OBJPROP_LEVELWIDTH 203 內部 整數價值對set/get 物件平實行寬。可能是從1 到5 。
OBJPROP_FIRSTLEVEL+n 210+n 內部 斐波那奇物件水準索引, n 是平實索引對set/get 的地方。可能是從0 到31 。

期限物件也許被顯示的地方。過去常常在 ObjectSet() 作用設置OBJPROP_TIMEFRAMES 物產。

恒定 價值 描述
OBJ_PERIOD_M1 0x0001 物件被顯示是只在1 分鐘圖。
OBJ_PERIOD_M5 0x0002 物件被顯示是只在5 分鐘圖。
OBJ_PERIOD_M15 0x0004 物件被顯示是只在15 分鐘圖。
OBJ_PERIOD_M30 0x0008 物件被顯示是只在30 分鐘圖。
OBJ_PERIOD_H1 0x0010 物件被顯示是只在1 小時圖。
OBJ_PERIOD_H4 0x0020 物件被顯示是只在4 小時圖。
OBJ_PERIOD_D1 0x0040 物件被顯示是只在每日圖。
OBJ_PERIOD_W1 0x0080 物件被顯示是只在每週圖。
OBJ_PERIOD_MN1 0x0100 物件被顯示是只在月度圖。
OBJ_ALL_PERIODS 0x01FF 物件被顯示是在所有期限。
零位 0 物件被顯示是在所有期限。
空 -1 暗藏的物件在所有期限。
Uninitialize 原因代碼返回了由 UninitializeReason() 作用。它可能是任何以下價值的當中一個:



恒定 價值 描述
0 劇本獨立地完成了它的施行。
REASON_REMOVE 1 專家從圖被去除。
REASON_RECOMPILE 2 專家recompiled 。
REASON_CHARTCHANGE 3 標誌或期限改變了在圖。
REASON_CHARTCLOSE 4 圖被關閉。
REASON_PARAMETERS 5 輸入參量由用戶改變了。
REASON_ACCOUNT 6 其他帳戶被啟動。

誤差編碼從商業伺服器返回了。
恒定 價值 描述
ERR_NO_ERROR 0 沒有錯誤返回。
ERR_NO_RESULT 1 錯誤返回, 而是結果不是未知的。
ERR_COMMON_ERROR 2 共同的錯誤。
ERR_INVALID_TRADE_PARAMETERS 3 無效商業參量。
ERR_SERVER_BUSY 4 商業伺服器是繁忙的。
ERR_OLD_VERSION 5 客戶終端的老版本。
ERR_NO_CONNECTION 6 與商業伺服器的沒有連接。
ERR_NOT_ENOUGH_RIGHTS 7 沒有足夠的權利。
ERR_TOO_FREQUENT_REQUESTS 8 太常去請求。
ERR_MALFUNCTIONAL_TRADE 9 Malfunctional 商業操作。
ERR_ACCOUNT_DISABLED 64 帳戶失去能力。
ERR_INVALID_ACCOUNT 65 無效帳戶。
ERR_TRADE_TIMEOUT 128 商業暫停。
ERR_INVALID_PRICE 129 無效價格。
ERR_INVALID_STOPS 130 無效中止。
ERR_INVALID_TRADE_VOLUME 131 無效貿易額。
ERR_MARKET_CLOSED 132 市場是閉合的。
ERR_TRADE_DISABLED 133 貿易是殘疾的。
ERR_NOT_ENOUGH_MONEY 134 沒有足夠的金錢。
ERR_PRICE_CHANGED 135 價格被改變。
ERR_OFF_QUOTES 136 行情。
ERR_BROKER_BUSY 137 經紀是繁忙的。
ERR_REQUOTE 138 Requote 。
ERR_ORDER_LOCKED 139 命令是鎖著的。
ERR_LONG_POSITIONS_ONLY_ALLOWED 140 長的位置只允許。
ERR_TOO_MANY_REQUESTS 141 許多個請求。
ERR_TRADE_MODIFY_DENIED 145 修改否認了因為命令太緊挨市場。
ERR_TRADE_CONTEXT_BUSY 146 商業上下文是繁忙的。
ERR_TRADE_EXPIRATION_DENIED 147 失效由經紀否認。
ERR_TRADE_TOO_MANY_ORDERS 148 相當數量開放和即將發生的命令由經紀到達了有界集。

MQL4 運行錯誤代碼
恒定 價值 描述
ERR_NO_MQLERROR 4000 沒有錯誤。
ERR_WRONG_FUNCTION_POINTER 4001 錯誤作用尖。
ERR_ARRAY_INDEX_OUT_OF_RANGE 4002 列陣索引是超出範圍。
ERR_NO_MEMORY_FOR_FUNCTION_CALL_STACK 4003 沒有記憶為作用調用棧。
ERR_RECURSIVE_STACK_OVERFLOW 4004 遞迴棧溢出。
ERR_NOT_ENOUGH_STACK_FOR_PARAMETER 4005 沒有足夠的堆為參量。
ERR_NO_MEMORY_FOR_PARAMETER_STRING 4006 沒有記憶為參量串。
ERR_NO_MEMORY_FOR_TEMP_STRING 4007 沒有記憶為臨時雇員串。
ERR_NOT_INITIALIZED_STRING 4008 沒初始化的串。
ERR_NOT_INITIALIZED_ARRAYSTRING 4009 沒初始化的串在列陣。
ERR_NO_MEMORY_FOR_ARRAYSTRING 4010 沒有記憶為列陣串。
ERR_TOO_LONG_STRING 4011 太長的串。
ERR_REMAINDER_FROM_ZERO_DIVIDE 4012 剩下的人從除零。
ERR_ZERO_DIVIDE 4013 除零。
ERR_UNKNOWN_COMMAND 4014 未知的命令。
ERR_WRONG_JUMP 4015 錯誤躍遷(從未引起的錯誤) 。
ERR_NOT_INITIALIZED_ARRAY 4016 沒初始化的列陣。
ERR_DLL_CALLS_NOT_ALLOWED 4017 DLL 電話不被允許。
ERR_CANNOT_LOAD_LIBRARY 4018 不能裝載圖書館。
ERR_CANNOT_CALL_FUNCTION 4019 不能叫作用。
ERR_EXTERNAL_EXPERT_CALLS_NOT_ALLOWED 4020 專家的作用電話不被允許。
ERR_NOT_ENOUGH_MEMORY_FOR_RETURNED_STRING 4021 沒有足夠的記憶為臨時雇員串從作用返回了。
ERR_SYSTEM_BUSY 4022 系統是繁忙的(從未引起的錯誤) 。
ERR_INVALID_FUNCTION_PARAMETERS_COUNT 4050 無效作用參量計數。
ERR_INVALID_FUNCTION_PARAMETER_VALUE 4051 無效作用參數值。
ERR_STRING_FUNCTION_INTERNAL_ERROR 4052 串作用內部錯誤。
ERR_SOME_ARRAY_ERROR 4053 一些排列錯誤。
ERR_INCORRECT_SERIES_ARRAY_USING 4054 不正確系列列陣使用。
ERR_CUSTOM_INDICATOR_ERROR 4055 習慣顯示錯誤。
ERR_INCOMPATIBLE_ARRAYS 4056 列陣是不相容的。
ERR_GLOBAL_VARIABLES_PROCESSING_ERROR 4057 總體變數處理錯誤。
ERR_GLOBAL_VARIABLE_NOT_FOUND 4058 總體變數沒被發現。
ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE 4059 作用不被允許在測試方式下。
ERR_FUNCTION_NOT_CONFIRMED 4060 作用不被證實。
ERR_SEND_MAIL_ERROR 4061 送郵件錯誤。
ERR_STRING_PARAMETER_EXPECTED 4062 串起參量被期望。
ERR_INTEGER_PARAMETER_EXPECTED 4063 整數參量被期望。
ERR_DOUBLE_PARAMETER_EXPECTED 4064 雙重參量被期望。
ERR_ARRAY_AS_PARAMETER_EXPECTED 4065 列陣如同參量期望了。
ERR_HISTORY_WILL_UPDATED 4066 被請求的歷史資料在更新狀態。
ERR_TRADE_ERROR 4067 某一錯誤在貿易的作用。
ERR_END_OF_FILE 4099 文件結束。
ERR_SOME_FILE_ERROR 4100 某一檔錯誤。
ERR_WRONG_FILE_NAME 4101 錯誤檔案名。
ERR_TOO_MANY_OPENED_FILES 4102 許多個被打開的文件。
ERR_CANNOT_OPEN_FILE 4103 不能打開檔。
ERR_INCOMPATIBLE_ACCESS_TO_FILE 4104 對文件的不相容的通入。
ERR_NO_ORDER_SELECTED 4105 沒有次序被選擇。
ERR_UNKNOWN_SYMBOL 4106 未知的標誌。
ERR_INVALID_PRICE_PARAM 4107 無效價格。
ERR_INVALID_TICKET 4108 無效票。
ERR_TRADE_NOT_ALLOWED 4109 貿易不被允許。
ERR_LONGS__NOT_ALLOWED 4110 Longs 不被允許。
ERR_SHORTS_NOT_ALLOWED 4111 短褲不被允許。
ERR_OBJECT_ALREADY_EXISTS 4200 物件已經存在。
ERR_UNKNOWN_OBJECT_PROPERTY 4201 未知的對象物產。
ERR_OBJECT_DOES_NOT_EXIST 4202 對象不存在。
ERR_UNKNOWN_OBJECT_TYPE 4203 未知的目標類型。
ERR_NO_OBJECT_NAME 4204 沒有物件名。
ERR_OBJECT_COORDINATES_ERROR 4205 物件協調錯誤。
ERR_NO_SPECIFIED_SUBWINDOW 4206 沒有指定的子視窗。
ERR_SOME_OBJECT_ERROR 4207 某一錯誤在物件作用。

K線有分以下幾種,所代表的意義各有不同,請熟記並靈活運用,對技術分析上會有很大的幫助...

此種的K線若上影線極長,且處於上升驅勢,且出現大量,則是反轉訊號,一般稱為雷公針,要多留意此種K線的出現!
這叫十字線,多半是多空力拼後留下的結果.也有即將便盤的意味.若是出現較大的成交量,則多半以隔日收紅或收黑決定,若是收黑則向下跌的機會很大.若是收紅則要看隔日的收盤價是否站在前日的收盤價上方.若是的話.則此K線換手的意味大.可以再度的加碼
有無發現此K線與上一根很像.不同的是此K線的下影線較長,是較偏多方的K線,若處於下降的趨勢,則有反轉的機會.或是反彈的機會!
這是T字線.常常可以看到.是一個買盤頗強的訊號,通常出現此線都是以拉尾盤做收.尤其以處於下降的趨勢空方更要小心,因為殺不下去且買盤進場,所以空方因迅速的回補..此K線的變盤味濃,要特別的注意..在上升趨勢的話更要注意格日的收盤是否收在這T自線之上,若無的話且帶大量,還是快快出脫手上的持股,尤其是主力股,因為主力出貨常會以此線來吸引散戶的介入,小心為妙!

 
 

 

這是下影陰線,所代表的意義是行情雖軟,但底下已漸有買盤的介入,所以空方要格外的小心~
這叫紡錘,實體小.上下影線長於實體的線,這代表多方空方之實力尚未定論,所以是觀望氣份濃厚的線,以盤整區居多!
這叫吊人線,若之前以跳空方式出現,則屬反轉的型態,不論是上升或下降趨勢,都是強烈的反轉訊號!要特別注意,尤其是大量時~處於橫盤時稱(紙傘).較無意義.
這剛好與上一個相反,叫鎚子線,也屬強烈的反轉訊號,尤其處於上升趨勢時..!
這是實體陰線,代表著空方的力道十足,股價仍要續跌,做多不宜!

這也是一個反轉或方向持續的線,叫上吊線,此線代表著行情看漲,持股續抱....
上影陽線,此線處於上升趨勢的話,會給多方產生疑慮,尤其大量時,因賣壓漸重而行情即將走軟,...

實體陽線.多方力道猛烈,持股續抱.若是出現於突破橫盤中,則波段漲勢開使,加碼訊號強烈...
開盤光頭陽線,上升力道很強.此線支援股價的上攻,所以持股續留!但要注意成交量的變化...
收盤光頭陽線.這是一個強烈的買進訊號,不論處上升或下降的趨勢,不用看量,買進就對啦~~~

以上介紹這幾種的K線都是常見的K線,請多注意K線及量的變化,準確的機率越高.
這是小唐我最近在測試的程式
這是利用在一分鐘線的交易程式自動買及平倉
這程式的缺點目前在於下殺的情況下還無法判斷
所以如果有高手願意賜教 我會非常歡迎您唷
歡迎加入論壇一起討論
 
 

 


//+------------------------------------------------------------------+
//|
http://www.olmcmall.com |
//| 無傭致贏外匯交易 MT4 智能交易系統 |
//| 測試版 V1.0 小唐 歡迎大家一起研究 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2006、OKwh "
#property link ""
#define MAGICMA 200610011231
//+------------------------------------------------------------------+
//| 注意沒有指標檔案那些property |
//+------------------------------------------------------------------+
extern int whichmethod = 3; //1~4 種下單方式
extern double TakeProfit = 3; // 賺三點就平倉
extern double StopLoss = 20; //止損20
extern double MaximumRisk = 0.05; //根據可用保證金計算首筆開倉手數,0.05代表5%的保證金風險;0.3
extern double TrailingStop =25; //追蹤止損
extern int maxOpen = 3; //最多持倉限制 3
extern double maxLots = 0.1; //最多單倉限制 5
extern int bb = 0; //非零就跟蹤止贏
extern double MATrendPeriod=26;//使用26均線

int i,p2,xxx,p1,res;
double Lots;
datetime lasttime;
int init() //初始化
{
Lots = 1;
lasttime = NULL;
return(0);
}
int deinit() { return(0); } //反初始化
//主程序
int start()
{
CheckForOpen();
if (bb>0) CTP(); //跟蹤止贏
return(0);
}
//+------下面是各子程序--------------------------------------------+
double LotsOptimized() //確定下單量,開倉調用
{
double lot=Lots;
int orders=HistoryTotal(); // history orders total
int losses=0; // number of losses orders without a break
//MarketInfo(Symbol(),MODE_MINLOT);
//MarketInfo(Symbol(),MODE_MAXLOT);
//MarketInfo(Symbol(),MODE_LOTSTEP);
lot=NormalizeDouble(MaximumRisk * AccountBalance()/AccountLeverage(),1);
if(lot<0.1) lot=0.1;
if(lot>maxLots) lot=maxLots;
return(lot);
}

//平倉持有的買單
void CloseBuy()
{
if (OrdersTotal( ) > 0 )
{
for(i=OrdersTotal()-1;i<0;i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
Sleep(1000);
}
}
}
}


//平倉持有的賣單
void CloseSell()
{
if (OrdersTotal( ) > 0 )
{
for(i=OrdersTotal()-1;i<0;i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
Sleep(10000);
}
}
}
}


// 抓最後一筆訂單的價錢

double GetLastOrderPrice()

{

double LastOrderPrice;

if (OrdersTotal() > 0 )

{

OrderSelect(OrdersTotal()-1, SELECT_BY_POS);

LastOrderPrice = OrderOpenPrice();

}

return(LastOrderPrice);

}

//+............................

//判斷是否買或賣或平倉
int buyorsell() //在這個函數計算設置你的交易信號
{
double MacdCurrent,MacdPrevious,SignalCurrent;
double SignalPrevious,MaCurrent,MaPrevious;
double Macdnew,LastPrice;



Macdnew=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0); //目前macd值
MacdCurrent=iStochastic(NULL,0,9,9,8,MODE_SMA,0,MODE_MAIN,0); //目前stoch值
//MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
MacdPrevious=iStochastic(NULL,0,9,9,8,MODE_SMA,0,MODE_MAIN,1);


//SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
SignalCurrent=iStochastic(NULL,NULL,0,9,9,8,PRICE_CLOSE,MODE_SIGNAL,0);

//SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
SignalPrevious=iStochastic(NULL,NULL,0,9,9,8,PRICE_CLOSE,MODE_SIGNAL,1);

MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0);
MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,1);

//strMain = iStochastic(NULL,0,9,9,8,MODE_SMA,0,MODE_MAIN,0);

LastPrice = GetLastOrderPrice()-0.03;


//if(MacdCurrent<20 && MacdCurrent>SignalCurrent && Bid<123.50) //設定stoch<25且價位需低於123.5
if(MacdCurrent<22 && Macdnew<-0.005 && Bid<122 && LastPrice<Bid) //macd值小於-0.002且價位低於123.5買進

return (1); // 買 Ma在上升,Macd在0線上,並且兩線上交叉
Sleep(3000);

if(MacdCurrent>80 && MacdCurrent<SignalCurrent)

return (-1); // 賣
return (0); //不交易
}
int nowbuyorsell = 0;
void CheckForOpen()
{
if (Time[0] == lasttime ) return; //每時間週期檢查一次
lasttime = Time[0];
nowbuyorsell = buyorsell(); //獲取買賣信號

if (nowbuyorsell == 1) //買 先結束已賣的
CloseSell();


if (nowbuyorsell == -1) //賣 先結束已買的
CloseBuy();


//if (TimeDayOfWeek(CurTime()) == 1)
//{
//if (TimeHour(CurTime()) < 3 ) return; //週一早8點前不做
//}
//if (TimeDayOfWeek(CurTime()) == 5)
//{
//if (TimeHour(CurTime()) > 19 ) return; //週五晚11點後不做
//}

if (OrdersTotal( ) >= maxOpen) return ;
//如果已持有開倉數達到最大,不做
if (nowbuyorsell==0) return; //不交易
TradeOK(); //去下單交易
}
void TradeOK() //去下單交易
{
int error ;
if (nowbuyorsell == 1) //買
{
switch (whichmethod)
{
case 1: res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);break;
case 2: res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,Ask-StopLoss*Point,0,"",MAGICMA,0,Blue); break;
case 3: res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point,"",MAGICMA,0,Blue);break;
case 4: res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",MAGICMA,0,Blue);break;
default : res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);break;
}
if (res <=0)
{
error=GetLastError();
if(error==134)Print("Received 134 Error after OrderSend() !! "); // not enough money
if(error==135) RefreshRates(); // prices have changed
}
Sleep(10000);
return ;
}
if (nowbuyorsell == -1) //賣
{
switch (whichmethod)
{
case 1: res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red); break;
case 2: res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,Bid+StopLoss*Point,0,"",MAGICMA,0,Red); break;
case 3: res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,Bid-TakeProfit*Point,"",MAGICMA,0,Red); break;
case 4: res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,"",MAGICMA,0,Red); break;
default : res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red); break;
}
if (res <=0)
{
error=GetLastError();
if(error==134) Print("Received 134 Error after OrderSend() !! "); // not enough money
if(error==135) RefreshRates(); // prices have changed
}
Sleep(10000);
return ;
}
}




void CTP() //跟蹤止贏
{
bool bs = false;
for (int i = 0; i < OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if (OrderType() == OP_BUY)
{
if ((Bid - OrderOpenPrice()) > (TrailingStop * MarketInfo(OrderSymbol(),MODE_POINT)))
{
if (OrderStopLoss() < Bid - TrailingStop * MarketInfo(OrderSymbol(),MODE_POINT))
{
bs = OrderModify(OrderTicket(),OrderOpenPrice(),Bid - TrailingStop * MarketInfo(OrderSymbol(),MODE_POINT),OrderTakeProfit(),0,Green);
}
}
}
else if (OrderType() == OP_SELL)
{
if ((OrderOpenPrice() - Ask) > (TrailingStop * MarketInfo(OrderSymbol(),MODE_POINT)))
{
if ((OrderStopLoss()) > (Ask + TrailingStop * MarketInfo(OrderSymbol(),MODE_POINT)))
{
bs = OrderModify(OrderTicket(),OrderOpenPrice(),
Ask + TrailingStop * MarketInfo(OrderSymbol(),MODE_POINT),OrderTakeProfit(),0,Tan);
}
}
}
}
}

double iRSI( string symbol, int timeframe, int period, int applied_price, int shift)


計算相對力量索引和退回它的價值。
參量:
symbol - Symbol the data of which should be used to calculate indicator. NULL means the current symbol.
timeframe - Timeframe. It can be any of Timeframe enumeration values. 0 means the current chart timeframe.
period - Number of periods for calculation.
applied_price - Applied price. It can be any of Applied price enumeration values.
shift - Index of the value taken from the indicator buffer (shift relative to the current bar the given amount of periods ago).
例子:
if(iRSI(NULL,0,14,PRICE_CLOSE,0)>iRSI(NULL,0,14,PRICE_CLOSE,1)) return(0);

 
 

 

在這篇文章中,我想討論一下 MetaTrader 4 用戶端中當基礎柱體改變時多次重新計算指標值。它的核心問題是,你能夠在網上找到許多好的指標,他們只對於歷史資料運作正常,但當交易平臺連接上伺服器時,它們得出的結果,說得婉轉一些,就是不能實現設置在這些指標中的運算規則!
通常,這些指標的作者,在斟酌了這個問題後,最終找到了一個簡單但不聰明得解決方法:他們重新計算他們的指標圖表中所有的柱體在每次運行 int start() 函數時的值,來得出最後那個基礎柱體的值。
第一眼看上去所有問題好象都這樣解決了,但是事實上,問題轉移到了另一個範疇。這樣的指標佔用系統資源,結果會導致電腦死機。
為了解決這個問題,我們首先應該考慮指標被建立的一般思路。每個指標都是含有一些變數的函數:
 
 

 


Indicator = Function (Variable1, Variable2, Variable3, .... etc.).
所有的指標可以被分成兩大類:
 第一類 - 這類指標的所有變數只使用安全價位和外部變數進行計算;對於任何柱體,這些變數的計算都不用考慮之前柱體的相應變數。
 第二類 - 在這類指標中,至少有一個變數是通過之前柱體的相應變數計算而來的:
VariableN(i) = FunctionN(VariableN(i+1)),

左邊的值根據第 i 個柱體而得,右邊括弧裏的值根據第 i+1 個柱體而得。或者至少這個變數是通過先前柱體的另一個變數而計算初的:
VariableN(i) = FunctionR(VariableX(i+1)),

同樣地,左邊的值是根據第 i 個柱體而得,右邊括弧裏的值根據第 i+1 個柱體而得。
我們對第二類指標感興趣,因為它引出了上面的問題。指標在哪里需要在基礎柱體上被多次重算,這些變數在邏輯上應該和另一些柱體開始對所有柱體多次重新計算的值一樣,即使這個指標是用 IndicatorCounted() 函數只依靠對基礎柱體重新計算而編制的。這種指標被證明對於即時行情是完全沒用的。為了解釋這些,讓我們來看一下這個特殊的指標:

//+------------------------------------------------------------------+
//| T3.mq4 |
//| MojoFX |
//|
http://groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/ |
//+------------------------------------------------------------------+
#property copyright "MojoFX - Conversion only"

#property link "http://groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/"
//----
#property indicator_chart_window
#property indicator_buffers 1

#property indicator_color1 Red
//----
extern int MA_Period = 14;
extern double b = 0.7;

//----
double MapBuffer[];
double e1, e2, e3, e4, e5, e6;

double c1, c2, c3, c4;
double n, w1, w2, b2, b3;

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0, DRAW_LINE);
IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS));
IndicatorShortName("T3" + MA_Period);
SetIndexBuffer(0, MapBuffer);
b2 = b * b;
b3 = b2 * b;
c1 = -b3;
c2 = (3 * (b2 + b3));
c3 = -3 * (2 * b2 + b + b3);
c4 = (1 + 3 * b + b3 + 3 * b2);
n = MA_Period;
if(n < 1)
n=1;
n = 1 + 0.5 * (n - 1);
w1 = 2 / (n + 1);
w2 = 1 - w1;
//----

return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()

{
// In this case, indicator's values are fully recalculated
// on all bars at every launch of the start() function
for(int bar = Bars-1; bar >= 0; bar--)

/*
If the line named "for(int bar=Bars-1; bar>=0; bar--)" is replaced with the four lines below

for recounting of the indicator on only last bars
at each launch of the start() function, this indicator will work properly
only on historical data:

int limit,counted_bars=IndicatorCounted();
if(counted_bars>0) counted_bars--;
limit=Bars-1-counted_bars;
for(int bar=limit; bar>=0; bar--)
*/
{
// Variables e1,e2,e3,e4,e5,e6 are functions of themselves
// calculated on the preceding bar
e1 = w1 * Close[bar] + w2 * e1;
e2 = w1 * e1 + w2 * e2;
e3 = w1 * e2 + w2 * e3;
e4 = w1 * e3 + w2 * e4;
e5 = w1 * e4 + w2 * e5;
e6 = w1 * e5 + w2 * e6;

MapBuffer[bar]=c1 * e6 + c2 * e5 + c3 * e4 + c4 * e3;
}

//----
return(0);
}
//+------------------------------------------------------------------+

在這個案例中,最簡單的解決方法是用我曾經在指標代碼中提到過的陣列來代替變數:
//+------------------------------------------------------------------+
//| T3.mq4 |
//| MojoFX |
//|
http://groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/ |
//+------------------------------------------------------------------+
#property copyright "MojoFX - Conversion only"

#property link "http://groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red

extern int T3_Period = 14;
extern double b = 0.7;

double MapBuffer[];
//---- Turning of variables into buffers
double e1[], e2[], e3[], e4[], e5[], e6[];

//----
double c1, c2, c3, c4;
double n, w1, w2, b2, b3;

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
SetIndexStyle(0, DRAW_LINE);

IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS));
IndicatorShortName("T3" + T3_Period);

SetIndexBuffer(0, MapBuffer);
//---- Writing of variables into indicator buffers
IndicatorBuffers(7);

SetIndexBuffer(1, e1);
SetIndexBuffer(2, e2);
SetIndexBuffer(3, e3);

SetIndexBuffer(4, e4);
SetIndexBuffer(5, e5);
SetIndexBuffer(6, e6);

//----
b2=b*b;
b3=b2*b;
c1=-b3;

c2=(3*(b2+b3));
c3=-3*(2*b2+b+b3);

c4=(1+3*b+b3+3*b2);

n=T3_Period;
if (n<1) n=1;

n = 1 + 0.5*(n-1);
w1 = 2 / (n + 1);

w2 = 1 - w1;
//----
return(0);

}
//+-----------------------------------------------------------------------+
//| Custom indicator iteration function |
//+-----------------------------------------------------------------------+
int start()
{

//----+ check whether the amount of bars is sufficient for correct
// calculation of the indicator
if(Bars - 1 < T3_Period)
return(0);

//----+ Entering of integer variables and obtaining of bars already counted
int MaxBar, limit, counted_bars = IndicatorCounted();

//---- check for possible errors
if(counted_bars < 0)
return(-1);
//---- the last counted bar must be re-counted

if(counted_bars > 0)
counted_bars--;
//---- determining of the oldest bar number, starting from which
// all bars will be re-counted
MaxBar = Bars - 1 - T3_Period;

//---- determining of the oldest bar number, starting from which
// only new bars will be re-counted
limit = (Bars - 1 - counted_bars);

//---- initialization of null
if(limit > MaxBar)
{
for(int bar = Bars - 1; bar >= limit; bar--)

MapBuffer[bar] = 0.0;
limit = MaxBar;
}
//+--- basic loop of indicator calculation

for(bar = limit; bar >= 0; bar--)
{
e1[bar] = w1*Close[bar] + w2*e1[bar+1];
e2[bar] = w1*e1[bar] + w2*e2[bar+1];
e3[bar] = w1*e2[bar] + w2*e3[bar+1];
e4[bar] = w1*e3[bar] + w2*e4[bar+1];
e5[bar] = w1*e4[bar] + w2*e5[bar+1];
e6[bar] = w1*e5[bar] + w2*e6[bar+1];
MapBuffer[bar] = c1*e6[bar] + c2*e5[bar] + c3*e4[bar] + c4*e3[bar];
}

//+--- termination of the basic loop
return(0);
}
//+----------------------------------------------------------------+

問題被解決了,但既然這樣,這是解決特殊問題的特殊辦法:這樣會有非常多的變數,這也是為什麼決不能把所有的變數都放入指標緩衝區。在這種情況下,通常的解決方法都是這樣的,為了正常地多次重算指標值,我們只需要依靠第二個柱體來計算出的指標而獲得的變數值,而這不但是重新計算最終值,也是重新計算只有一個柱體的最終值的更好的更廣泛的方法!

因此,在第二個柱體循環結束時的那些變數值必須被存儲在那些並不包含在指標的任一程式塊中的用來存儲的變數裏,也就是那些在指標代碼開頭被定義的變數。這些存儲變數可以被編入初學者的文章,在 int start() 函數裏介紹。當指標計算迴圈錢每次運行 start() 函數時,如果被計算的柱體之一不等於零(if (IndicatorCounted()!=0),從存儲變數中提取值賦予當前的指標變數。這此之後,沒有計算過的柱體可以當作開始時那樣,被同樣的代碼進行計算!大家最好記住這些變數不是在第二個柱體的迴圈結束時,而是在第一個柱體的開始處。這是我們在更複雜的例子中要做的!下面是用這種思路編寫的同樣的指標:

//+-------------------------------------------------------------------------+
//| T3.mq4 |
//| Copyright 2005, MojoFX |
//|
http://groups.yahoo.com/group/MetaTrader_Experts_and_Indicators |
//+-------------------------------------------------------------------------+

#property copyright "MojoFX - Conversion only"
#property link "http://groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/"
#property indicator_chart_window

#property indicator_buffers 1
#property indicator_color1 Yellow
//----
extern int T3_Period = 8;

extern double b = 0.7;
//----
//----
double MapBuffer[];

//----
double e1, e2, e3, e4, e5, e6;

double n, c1, c2, c3, c4, w1, w2, b2, b3;

//---- introduction of variables to save variables e1,e2,e3,e4,e5,e6
int time2; double E1, E2, E3, E4, E5, E6;

//+--------------------------------------------------------------------------+
//| T3 initialization function |
//+--------------------------------------------------------------------------+
int init()
{
//---- indicators setting
SetIndexStyle(0, DRAW_LINE);

IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS));
IndicatorShortName("T3" + T3_Period);

SetIndexBuffer(0, MapBuffer);
b2 = b*b;

b3 = b2*b;
c1 = -b3;
c2 = (3*(b2 + b3));

c3 = -3*(2*b2 + b + b3);
c4 = (1 + 3*b + b3 + 3*b2);

if(T3_Period < 1)
T3_Period = 1;
n = 1 + 0.5*(T3_Period - 1);

w1 = 2 / (n + 1);
w2 = 1 - w1;

//---- initialization complete
return(0);
}
//+---------------------------------------------------------------------------+
//| T3 iteration function |
//+---------------------------------------------------------------------------+

int start()
{
//----+ check whether the amount of bars is enough for correct
// indicator calculation
if(Bars-1 < T3_Period)
return(0);

//----+ introduction of integer variables and getting of bars already counted
int MaxBar, limit, counted_bars = IndicatorCounted();

//---- check for possible errors
if(counted_bars < 0)
return(-1);

//---- the last counted bar must be re-counted
if(counted_bars > 0)
counted_bars--;
//---- determining of the oldest bar number, starting from which
// all bars will be re-counted
MaxBar = Bars - 1 - T3_Period;

//---- determining of the oldest bar number, starting from which
// only new bars will be re-counted
limit = (Bars - 1 - counted_bars);
//---- initialization of null

if(limit > MaxBar)
{
for(int bar = Bars - 1; bar >= MaxBar; bar--)

MapBuffer[bar] = 0.0;
limit = MaxBar;
}

//+--- before the basic loop of indicator calculation, restore values
// of variables as they were after counting on the second bar
//+--- restore values of the variables +=======+
int Tnew = Time[limit+1];

if(limit < MaxBar)
if(Tnew == time2)

{
e1 = E1;
e2 = E2;

e3 = E3;
e4 = E4;
e5 = E5;

e6 = E6;
}
else
{
if(Tnew > time2)
Print("ERROR01");
else
Print("ERROR02");
return(-1);
}

//+--- +==========================================+
//+--- Basic loop to calculate the indicator
for(bar = limit; bar >= 0; bar--)

{
//+--- Memorize values of variables as they were after
// the second bar
//+--- Save values of the variables +=============+
if(bar == 1)

if(((limit == 1)&&(time2 != Time[2])) || (limit > 1))

{
time2 = Time[2];
E1 = e1;

E2 = e2;
E3 = e3;
E4 = e4;
E5 = e5;

E6 = e6;

}
//+---+============================================+
e1 = w1*Close[bar] + w2*e1;

e2 = w1*e1 + w2*e2;
e3 = w1*e2 + w2*e3;
e4 = w1*e3 + w2*e4;
e5 = w1*e4 + w2*e5;
e6 = w1*e5 + w2*e6;
MapBuffer[bar]=c1*e6 + c2*e5 + c3*e4 + c4*e3;
}

//+--- terminate the basic loop
return(0);
}
//+-----------------------------------------------------------------+

和前面的比較,這個指標需要更少的資訊存儲在記憶體中的變數裏。但它看上去比前一個更複雜!
下面這段代碼是同一個指標的,使用了 int start() 函數,提供給能夠將智慧交易程式和代碼結合的高級開發者。在這段代碼裏,智慧交易程式只在基礎柱體上計算指標。當然代碼裏的這個變數只適合作為歷史資料的測試程式。對於智慧交易程式的線上運作,我們不得不使用另一個代碼裏的變數,來自於我們在最後的例子中研究的指標。假設,如果一個新的基礎柱體開始形成,在第一個柱體上的指標值完全被計算出並且不應該被重新計算。同樣也適用於柱體變化時被儲存的變數。這裏需要強調,如果這樣一段複雜的代碼沒有寫入智慧交易程式,就不可能明白這樣的程式怎麼樣進行計算,在什麼基礎上來進行交易!如果代替這段代碼,用被證實的變數,每個價位都在所有的柱體上重新進行計算指標,最後得出基礎柱體,我們可能用一個月的時間來等結果!
int start()
{
//----+ check whether the amount of bars is enough for correct
// indicator calculation
if(Bars-1 < T3_Period)

return(0);
//---- determine the oldest bar number, starting from which
// all bars will be re-counted
int MaxBar = Bars - 1 - T3_Period;

//---- initialization of null
if(MaxBar = 0)
for(int bar = Bars - 1; bar > 0; bar--)
MapBuffer[bar] = 0.0;

//+--- before basic indicator calculation, restore values
// of variables as they were after calculation on the first bar
//+--- restoring values of variables +=======+
int Tnew0 = Time[2];
int Tnew1 = Time[2+1];

if(Tnew0 == time2)
{
e1 = E1;
e2 = E2;

e3 = E3;
e4 = E4;
e5 = E5;
e6 = E6;
}

else
if(Tnew1 != time2)
{

if(Tnew1 > time2)
Print("ERROR01");
else

Print("ERROR02");
return(-1);
}

//+--- +==============================================+
//+--- Memorize values of variables as they were after
// the first bar
//+--- Saving of values of variables +================+
if(Tnew0 != time2)
{

time2 = Tnew0;
E1 = e1;
E2 = e2;
E3 = e3;
E4 = e4;
E5 = e5;
E6 = e6;
}

//+---+============================================+

//+--- indicator calculation (calculation is made always
// only on the null bar)
e1 = w1*Close[0] + w2*e1;

e2 = w1*e1 + w2*e2;
e3 = w1*e2 + w2*e3;

e4 = w1*e3 + w2*e4;
e5 = w1*e4 + w2*e5;

e6 = w1*e5 + w2*e6;
MapBuffer[0] = c1*e6 + c2*e5 + c3*e4 + c4*e3;

//----+ ------------------------------------------------+
//----+ The code of your expert must be placed here |
//----+ ------------------------------------------------+
return(0);
}
//+----------------------------------------------------------------+


當然,這段代碼變得複雜了一些!
下面是個可仿效的指標,在這個指標裏,為了運作正常,當運行 int start() 函數時,只有一個邏輯變數必須被儲存。但是如果沒有這個幾乎不被察覺的變化,指標不能適當地運作:

//+------------------------------------------------------------------+
//| 3LineBreak.mq4 |
//| Copyright 2004, Poul_Trade_Forum |
//| Aborigen |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Gold
#property indicator_color2 Magenta

//----
extern int Lines_Break = 3;
//----
double HighBuffer[];

double LowBuffer [];
//----
double VALUE1, VALUE2, Swing = 1, OLDSwing;

//---- Introduction of variables for multiple re-count of bar
int time2, SWING;
//+---------------------------------------------------------------------+
//| 3LineBreak initialization function |
//+---------------------------------------------------------------------+
int init()

{
//---- Chart is performed as a hystogram
SetIndexStyle(0, DRAW_HISTOGRAM);
SetIndexStyle(1, DRAW_HISTOGRAM);

//---- 2 indicator buffers are used for counting.
SetIndexBuffer(0, HighBuffer);
SetIndexBuffer(1, LowBuffer );

//---- setting of indicator values that will not be visible on the chart
SetIndexEmptyValue(0, 0);
SetIndexEmptyValue(1, 0);

//---- names for data windows and labels for subwindows.
IndicatorShortName("3LineBreak");
SetIndexLabel (0, "3LineBreak");

//---- setting of the bar number, starting from which the indicator
// will be drawn
SetIndexDrawBegin(0, Lines_Break);
SetIndexDrawBegin(1, Lines_Break);

//---- termination of the initialization
return(0);
}
//+------------------------------------------------------------------+
//| 3LineBreak iteration function |
//+------------------------------------------------------------------+
int start()

{
//----+ Introduction of integer variables and getting of bars already counted
int MaxBar, limit, counted_bars = IndicatorCounted();

//---- check for possible errors
if(counted_bars < 0)
return(-1);
//---- the last counted bar must be re-counted )

if(counted_bars > 0)
counted_bars--;
//---- determining of the oldest bar number, starting from which
// all bars will be re-counted
MaxBar = Bars - 1 - Lines_Break;

//---- determining of the oldest bar number, starting from which
// only new bars will be re-counted
limit = (Bars - 1 - counted_bars);

//---- initialization of null
if(limit > MaxBar)
{
for(int bar = limit; bar > MaxBar; bar--)

{
HighBuffer[bar] = 0.0;
LowBuffer[bar] = 0.0;
}

limit=MaxBar;
}
//----
//+--- restoring of values of variables +================+
int Tnew = Time[limit+1];

if(limit < MaxBar)
if(Tnew == time2)
Swing = SWING;
else

{
if(Tnew > time2)
Print("ERROR01");
else

Print("ERROR02");
return(-1);
}

//+--- +==================================================+
//+--- basic loop of indicator calculation
for(bar = limit; bar >= 0; bar--)

{
//+--- Saving of values of variables +=============+
if(bar == 1)
if(((limit == 1) && (time2 != Time[2]))||(limit > 1))

{
time2 = Time[2];
SWING = Swing;
}

//+---+============================================+
OLDSwing = Swing;
//----
VALUE1 = High[Highest(NULL, 0, MODE_HIGH, Lines_Break, bar + 1)];
VALUE2 = Low[Lowest(NULL, 0, MODE_LOW, Lines_Break, bar + 1)];
//----

if(OLDSwing == 1 && Low [bar] < VALUE2)
Swing = -1;
if(OLDSwing == -1 && High[bar] > VALUE1)
Swing = 1;
//----

if(Swing == 1)
{
HighBuffer[bar] = High[bar];
LowBuffer [bar] = Low [bar];
}

if(Swing == -1)
{
LowBuffer[bar] = High[bar];
HighBuffer[bar] = Low[bar];
}
}

//+--- termination of the basic loop
return(0);
}

下面是類似的情況:

//+------------------------------------------------------------------+
//| BrainTrend1.mq4 |
//| BrainTrading Inc. System 7.0 |
//|
http://www.braintrading.com |
//+------------------------------------------------------------------+
#property copyright "BrainTrading Inc. System 7.0"

#property link "http://www.braintrading.com"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red

#property indicator_color2 Lime
//----
double Ind_Buffer1[];
double Ind_Buffer2[];
double value2, Range, val1, val2, d, val3;

int f, p, x1, x2, value11;
//+------------------------------------------------------------------+
//| BrainTrend1 initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
SetIndexStyle(0, DRAW_HISTOGRAM);
SetIndexBuffer(0, Ind_Buffer1);

//----
SetIndexStyle(1, DRAW_HISTOGRAM);
SetIndexBuffer(1, Ind_Buffer2);

//----
string short_name;
short_name = "BrainTrend1";
IndicatorShortName(short_name);
SetIndexLabel(0, "" + short_name + "_Down");
SetIndexLabel(1, "" + short_name + "_Up");
IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS));

//----
f = 7;
d = 2.3;

x1 = 53;
x2 = 47;
value11 = 9;

//---- termination of the initialization
return(0);
}
//+------------------------------------------------------------------+
//| BrainTrend1 iteration function |
//+------------------------------------------------------------------+
int start()

{
//---- check whether the amount of bars is enough to calculate
if(Bars < 11)
return(0);

//---- Introduction of statistical memory variables for multiple
// recalculation of the null bar
static int MEMORY, time2;
//----+ Introduction of integer variables and getting of counted bars
int limit, MaxBar,bar, counted_bars = IndicatorCounted();

//---- check for possible errors
if(counted_bars < 0)
return(-1);
//---- the last counted bar must be re-counted

if(counted_bars > 0)
counted_bars--;
//---- determining of the oldest bar number, starting from which
// all bars will be re-counted
MaxBar = Bars - 1 - 10;

//---- determining of the oldest bar number, starting from which
// only new bars will be re-counted
limit = Bars - counted_bars - 1;
if(limit > MaxBar)

limit = MaxBar;
Comment("BrainTrading Inc. System 7.0");
//+--- restoring of values of variables +================+
int Tnew = Time[limit+1];

if(limit < MaxBar)
if(Tnew == time2)

p=MEMORY;
else
{
if(Tnew > time2)
Print("ERROR01");
else

Print("ERROR02");
return(-1);
}
//+--- +===================================================+

bar = limit;
while(bar >= 0)
{

//+--- Saving of values of variables +====+
if(bar == 1)
if(((limit == 1) && (time2 != Time[2])) || (limit > 1))

{
time2 = Time[2];
MEMORY = p;
}

//+---+====================================+
Range = iATR(NULL, 0, f, bar) / d;
value2 = iStochastic(NULL, 0, value11, value11, 1, 0, 0, 0, bar);
val1 = 0.0;
val2 = 0.0;
val3 = MathAbs(Close[bar] - Close[bar+2]);
if(value2 < x2 && val3 > Range)
p = 1;
if(value2 > x1 && val3 > Range)
p = 2;
if(value2 < x2 && (p == 1||p == 0))

{
if(val3 > Range)
{

val1 = High[bar];
val2 = Low [bar];
}

}
if(value2 > x1 && (p == 2||p == 0))

{
val2 = High[bar];
val1 = Low [bar];
}

Ind_Buffer1[bar] = val1;
Ind_Buffer2[bar] = val2;
bar--;
}

//+--- termination of the basic loop
return(0);
}

為了讓下面的指標運作正常,要重建的不僅是標準的變數,還有緩衝區:
//+------------------------------------------------------------------+
//| BrainTrend2.mq4 |
//| BrainTrading Inc. System 7.0 |
//|
http://www.braintrading.com |
//+------------------------------------------------------------------+
#property copyright "BrainTrading Inc. System 7.0"
#property link "http://www.braintrading.com"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red

//----
double Ind_Buffer1[];
double Ind_Buffer2[];
double spread;
//----

bool river = True;
int artp, limit, Curr, glava;

double dartp, cecf, Emaxtra, widcha, TR;
double Values[1], ATR, Weight, val1, val2, low, high, Series1;

//---- Introduction of variables for multiple re-counting of the null bar
bool RIVER; int time2, GLAVA; double EMAXTRA,VALUES[1];

//+------------------------------------------------------------------+
//| BrainTrend2 initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
SetIndexStyle(0, DRAW_HISTOGRAM);
SetIndexBuffer(0, Ind_Buffer1);
SetIndexStyle(1, DRAW_HISTOGRAM);
SetIndexBuffer(1, Ind_Buffer2);
spread = MarketInfo(Symbol(), MODE_SPREAD)*Point;

//----
dartp = 7.0; cecf = 0.7; artp = 7;

//---- change of the buffer size to the required size
ArrayResize(Values, artp);
//---- similar change of the memory buffer size in the first measuring
// to the required size
ArrayResize(VALUES, artp);

//----
return(0);
}
//+------------------------------------------------------------------+
//| BrainTrend2 iteration function |
//+------------------------------------------------------------------+
int start()

{
//---- check whether the amount of bars is enough to calculate
if(Bars < 11)
return(0);

//----+ Introduction of integer variables and getting of bars already counted
int limit, MaxBar, bar, J, counted_bars = IndicatorCounted();

//---- check for possible errors
if(counted_bars < 0)
return(-1);
//---- the last counted bar must be re-counted

if(counted_bars > 0)
counted_bars--;
//---- determining of the oldest bar number, starting from which
// all bars will be re-counted
MaxBar = Bars - 3;

//---- determining of the oldest bar number, starting from which
// only new bars will be re-counted
limit = (Bars - 1 - counted_bars);

//---- initialization of null
if(limit >= MaxBar)
{
limit = MaxBar;
Emaxtra = Close[limit+1];
glava = 0;
double T_Series2 = Close[limit+2];
double T_Series1 = Close[limit+1];
if(T_Series2 > T_Series1)
river = True;
else

river = False;
for(int ii = Bars - 1; ii > MaxBar; ii--)

{
Ind_Buffer1[ii] = 0.0;
Ind_Buffer2[ii] = 0.0;

}
}
//----
//+--- restoring of values of variables +================+
int Tnew = Time[limit+1];

if(limit < MaxBar)
if(Tnew == time2)
{

for(int xx = 0;xx <= artp - 1; xx++)

Values[xx] = VALUES[xx];
glava = GLAVA;
Emaxtra = EMAXTRA;
river = RIVER;
}
else

{
if(Tnew > time2)
Print("ERROR01");
else

Print("ERROR02");
return(-1);
}

//+--- +==================================================+
//+--- Basic loop of the indicator calculation
bar = limit;
while(bar >= 0)
{
//+--- Saving values of variables +================+

if(bar == 1)
if(((limit == 1) && (time2 != Time[2])) || (limit > 1))

{
for(int kk = 0;kk <= artp - 1; kk++)

VALUES[kk] = Values[kk];
GLAVA = glava;
EMAXTRA = Emaxtra;
RIVER = river;
time2 = Time[2];
}

//+---+============================================+
Series1 = Close[bar+1];
low = Low[bar];

high = High[bar];
TR = spread + high - low;
if(MathAbs(spread + high - Series1) > TR )

TR = MathAbs(spread + high - Series1);
if(MathAbs(low - Series1) > TR)
TR = MathAbs(low - Series1);
if(bar == MaxBar)

for(J = 0; bar <= artp - 1; J++)

Values[J] = TR;
Values[glava] = TR;
ATR = 0;
Weight = artp;
Curr = glava;
for(J = 0; J <= artp - 1; J++)
{

ATR += Values[Curr]*Weight;
Weight -= 1.0;
Curr--;
if(Curr == -1)
Curr = artp - 1;
}

ATR = 2.0*ATR / (dartp*(dartp + 1.0));
glava++;
if(glava == artp)
glava = 0;
widcha = cecf*ATR;
if(river && low < Emaxtra - widcha)
{

river = False;
Emaxtra = spread + high;
}

if(!river && spread + high > Emaxtra + widcha)
{

river = True;
Emaxtra = low;
}
if(river && low > Emaxtra)
{

Emaxtra = low;
}
if(!river && spread + high < Emaxtra )
{

Emaxtra = spread + high;
}
//Range1 = iATR(NULL,0,10,bar);
if(river==true )
{

val1 = high;
val2 = low;
}
else
{

val1 = low;
val2 = high;
}
Ind_Buffer1[bar] = val1;

Ind_Buffer2[bar] = val2;
bar--;
}

//+--- termination of the basic loop
return(0);
}

好了,最後很招人愛的 ZigZag 指標,如我們在技術分析裏看到的,也是在所有的柱體上重新計算的,因此,提出這個問題!我想沒必要在這篇文章中將這個指標的代碼貼出來,因為可以在 MetaTrader 4 用戶端的 "indicators" 文件夾中將其打開。
當然,在這個指標中,綜合上述思路編寫的更多使用電腦資源的存儲代碼看起來非常易使人上當的,可怕的和麻煩的。此時,我們可以表現得不同。如果重新計算指標後,我們對最後版本的 ZigZag 指標虛線記錄座標和最後兩個值,我們將在將來,下一次運行 int start() 函數完全正確的重算沒有計算過的,與這兩個座標最近的指標值。而這兩個最後的沒有計算的的高點可以從記憶體中取值。必須說的是,這個指標不能完全正常的運作,並且週期性的會偏離正確的運作,但用來和前面的指標組合,它還是受人喜歡的。既然 ZigZag 指標至少有三個最高點總是會與圖表偏離,我們將開始嚴密地指標計算,從這個類型到指標的虛線變形開始的最後處。在這個案例裏,代碼應該這樣改變:

//+------------------------------------------------------------------+
//| ZigZag.mq4 |
//| Copyright 漏 2005, MetaQuotes Software Corp.|
//|
http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 漏 2005, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net/"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red

#property indicator_width1 0
#property indicator_style1 1
//----
extern int ExtDepth = 12;

extern int ExtDeviation = 5;
extern int ExtBackstep = 3;

//----
double ZigZagBuffer[];
//+------------------------------------------------------------------+
//| ZigZag initialization function |
//+------------------------------------------------------------------+
int init()

{
//----
SetIndexBuffer(0, ZigZagBuffer);
SetIndexStyle(0, DRAW_SECTION);
SetIndexEmptyValue(0, 0.0);
IndicatorShortName("ZigZag(" + ExtDepth + "," + ExtDeviation + "," +

ExtBackstep + ")");
//----
return(0);

}

//+------------------------------------------------------------------+
//| ZigZag iteration function |
//+------------------------------------------------------------------+
int start()
{
//+ check whether the amount of bars is sufficient for correct
// calculation of the indicator

if(Bars - 1 < ExtDepth)
return(0);
//+ Introduction of integer memory variables to re-count the indicator
// on uncounted bars only

static int time2, time3, time4;
//+ Introduction of floating-point variables to re-count
// the indicator on uncounted bars only
static double ZigZag2, ZigZag3, ZigZag4;
//+ Introduction of integer variables to re-count the indicator only
// on uncounted bars and getting of indicators already counted

int MaxBar, limit, supr2_bar, supr3_bar, supr4_bar;
int counted_bars = IndicatorCounted();
// check for possible errors

if(counted_bars < 0)
return(-1);
// the last counted bar must be re-counted

if(counted_bars > 0)
counted_bars--;
//----+ Introduction of variables
int shift, back, lasthighpos, lastlowpos;
double val, res, TempBuffer[1];
double curlow, curhigh, lasthigh, lastlow;
// determining of the oldest bar number, starting from which

// all bars will be fully re-counted

MaxBar = Bars - ExtDepth;
// determining of the start bar number in the loop, starting from
// which new bars will be re-counted
if(counted_bars == 0)

limit = MaxBar;
else
{
//----
supr2_bar = iBarShift(NULL, 0, time2, TRUE);
supr3_bar = iBarShift(NULL, 0, time3, TRUE);
supr4_bar = iBarShift(NULL, 0, time4, TRUE);
//----

limit = supr3_bar;
if((supr2_bar < 0) || (supr3_bar < 0) || (supr4_bar < 0))

{
limit = MaxBar;
Print("Start bar was not found,",

" the indicator will be re-counted on all bars" );
}
}
// initialization of null
if(limit >= MaxBar)
{

for(shift = Bars - 1; shift >= MaxBar; shift--)

ZigZagBuffer[shift] = 0.0;
limit = MaxBar;
}
// change of the temporary buffer size

if(ArrayResize(TempBuffer, Limit + ExtBackstep + 1)!=

limit + ExtBackstep + 1)
return(-1);

//+ start of the first large loop
for(shift = limit; shift >= 0; shift--)

{
//---
val = Low[Lowest(NULL, 0, MODE_LOW, ExtDepth, shift)];
if(val == lastlow)

val = 0.0;
else
{
lastlow = val;
if((Low[shift] - val) > (ExtDeviation*Point))
val = 0.0;
else

{
for(back = 1; back <= ExtBackstep; back++)

{
res = ZigZagBuffer[shift+back];
if((res !=0 ) && (res > val))

ZigZagBuffer[shift+back] = 0.0;
}
}

}
ZigZagBuffer[shift] = val;
//---
val = High[Highest(NULL, 0, MODE_HIGH, ExtDepth, shift)];
if(val == lasthigh)

val = 0.0;
else
{
lasthigh = val;
if((val - High[shift]) > (ExtDeviation*Point))
val = 0.0;
else

{
for(back = 1; back <= ExtBackstep; back++)

{
res = TempBuffer[shift+back];
if((res != 0) && (res < val))

TempBuffer[shift+back] = 0.0;
}
}

}
TempBuffer[shift] = val;
}
//+ end of the first large loop

// final cutting
lasthigh = -1;
lasthighpos = -1;
lastlow = -1;

lastlowpos = -1;
//----+ start of the second large loop
for(shift = limit; shift >= 0; shift--)

{
curlow = ZigZagBuffer[shift];
curhigh = TempBuffer[shift];
if((curlow == 0) && (curhigh == 0))
continue;
//---

if(curhigh != 0)
{
if(lasthigh > 0)
{

if(lasthigh < curhigh)
TempBuffer[lasthighpos] = 0;
else

TempBuffer[shift] = 0;
}
if(lasthigh < curhigh || lasthigh < 0)

{
lasthigh = curhigh;
lasthighpos = shift;
}

lastlow = -1;
}
//----
if(curlow != 0)

{
if(lastlow > 0)
{

if(lastlow > curlow)
ZigZagBuffer[lastlowpos] = 0;
else
ZigZagBuffer[shift] = 0;
}

//---
if((curlow < lastlow) || (lastlow < 0))

{
lastlow = curlow;
lastlowpos = shift;
}
lasthigh = -1;
}

}
//+ end of the second large loop
//+ start of the third loop
for(shift = limit; shift >= 0; shift--)

{
res = TempBuffer[shift];
if(res != 0.0)
ZigZagBuffer[shift] = res;
}

//+ end of the third loop
//+ Restoring of values of the indicator buffer that
// could be lost
if(limit < MaxBar)
{

ZigZagBuffer[supr2_bar] = ZigZag2;
ZigZagBuffer[supr3_bar] = ZigZag3;
ZigZagBuffer[supr4_bar] = ZigZag4;
for(int qqq = supr4_bar - 1; qqq > supr3_bar; qqq--)

ZigZagBuffer[qqq] = 0;
for(int ggg=supr3_bar - 1; ggg > supr2_bar; ggg--)

ZigZagBuffer[ggg] = 0;
}
//+ correction of hills
double vel1, vel2, vel3, vel4;
int bar1, bar2, bar3, bar4;
int count;
if(limit == MaxBar)
supr4_bar = MaxBar;
for(int bar = supr4_bar; bar >= 0; bar--)

{
if(ZigZagBuffer[bar] != 0)
{

count++;
vel4 = vel3;
bar4 = bar3;
vel3 = vel2;
bar3 = bar2;
vel2 = vel1;
bar2 = bar1;
vel1 = ZigZagBuffer[bar];
bar1 = bar;
if(count < 3)
continue;

if((vel3 < vel2) && (vel2 < vel1))
ZigZagBuffer[bar2] = 0;
if((vel3 > vel2) && (vel2 > vel1))

ZigZagBuffer[bar2] = 0;
if((vel2 == vel1) && (vel1 != 0))

ZigZagBuffer[bar1] = 0;
}
}
//+ memorizing of the last three inflections of the ZigZag and
// the indicator values at these points

time2 = Time[bar2];
time3 = Time[bar3];
time4 = Time[bar4];
ZigZag2 = vel2;
ZigZag3 = vel3;
ZigZag4 = vel4;

//---- completion of calculating the indicator values
return(0);
}
//---+ +----------------------------------------------------------+

按照現在的情況,ZigZag 佔用的寶貴的電腦資源少了,從以前的經驗來看,不管其可用性多高,總是不足的。我為指標緩衝改了個更明顯的名字 "ZigZagBuffer"。 我把第二個緩衝用來存儲臨時資料,替代了指標緩存因為這兒並不需要它,並且改名為 "TempBuffer"。在三個指標計算的迴圈裏,我把變數 "limit" 作為開始的柱體數,只有沒計算過的柱體值從這兒開始重新計算。
每個指標都是唯一的,幾乎不可能創建一個在全部指標中都能同樣運行的方法。但是我假設這樣的方法的通常思路是相當清楚的:
1. 在先前的價位上確定所有的變數是最難的。我們必須考慮到,有時需要記錄一些變數和柱體數,這個柱體可以在下一個價位改變,而保存的值卻沒有任何改變。在這個案例中,柱體開始的時間必須被記錄(MEMORY_bar_time = Time[lastlowBar])。然後當前的柱體狀態可以通過被記錄的時間重建(iBarShift(NULL,0,MEMORY_bar_time,TRUE))。指標計算了幾個迴圈後,每個迴圈都有變數要儲存,同樣的變數在不同的迴圈裏必須被分開來儲存。
2. 初始化的變數要與申明的變數名字一致。最好在指標代碼的開始處申明總體變數。在 start() 運作後,在指標代碼裏,這些變數經常被立即申明作為靜態變數。
3. 在所有指標計算的迴圈前,必須寫變數重建的代碼。
4. 在每一個包含當前變數的迴圈裏,應該添加存儲這些變數的代碼。

最後,我想說的是所有在本文中作為例子的指標,都可以在網路的不同論壇裏獲得源代碼。 我把它們只作為例子分享,糾正其中的錯誤,如果有任何侵權的責任應歸於把他們放到網站上的人。

當交易的時候,牛派建立多倉,熊派建議空倉,豬派隨著自己的幻想建立倉位,貪婪的妄想著獲利,羊派則膽小的看著市場的起落,一會兒插上牛角,一會兒披上熊皮

  牛熊相爭,只有一方會勝出,但是豬羊只有被宰割

  處理與預測

  絕大多數的交易人再進行交易十都會作過分析,可能經由基本面分析,消息面分析,技術面分析,或是經由某些神秘方法(易經術數占卜水晶球等等),不同的交易者所分析的資料種類方式和深廣度有很大的不同,但是大部分的交易者可能都會認為分析是為了預測,主要是預測價格未來的變動方向,還有變動幅度,時間長度


  在許多專業領域裡,專業人員是專注在處理,只有業餘人員專注在預測,比方說一個傷者被送進醫院,傷者胸口插著一把尖刀,身上有槍傷,大動脈正在出血,家屬可能會問醫生:傷者是否還能活下去,何時可以康復,這些都是預測性的問題

  但是專業的醫生不是作預測,而是即時,並且正確的處理,他要觀察傷者的狀況,即時處理大動脈縫合,並且輸血,接著移去胸口的尖刀,縫合破損的內臟,隨時住感染和併發症,醫生主要的工作是處理而不是預測,如果病患的家屬要求醫師預測,醫師也許會預測但那沒有太大的意義

  在市場上交易,想要得到獲利和回報,預測未來是不需要的,要作的世情是衡量現況,泋定市場上是熊或牛的勢力比較強大,然後變更自己的立場,站到強勢的那一邊就可以了

  理論上的穩贏

  市場上價格的走向只有兩個:向上或是向下,如果不去分析任何資料,單只就機率上的選擇,建立多頭倉位的獲利機率是1/2,虧損機率也是1/2,建立空頭倉位的時候情況也是如此

  但是在建倉之後,如果價格朝著有利的方向發展,交易者只要將倉位放著不動,任由價格朝著有利的方向去發展,直到走勢反轉為止,如果價格朝著不利的方向發展,在一小段時間之後,虧損超越了初始帳戶金額的5%,將觸動資金管理計畫的停損原則,交易者將平倉出場,在這種交易方式之下,理論上,價格的利潤將有很大一段,最大虧損將被限制在初始帳戶金額的5%,在隨機建倉獲利機率與虧損機率各是1/2的情況之下,理論上必然有獲利,並且容忍連續失誤率20次才退場

  戰爭與交易

  在戰爭中,戰勝的一方可以搶奪失敗者所有的財產妻妾土地房屋,市場上的交易就像是戰爭一樣,空方和多方的戰爭當中,勝的一方會把失敗的一方的帳戶資金取走,失敗的一方除了損失金錢,同時失去信心,心理沮喪

  戰場上除了交戰的雙方之外,還有旁觀的國家,隨時準備加入戰局,交易場上除了多空交戰的兩方之外,隨時都有新的人加入多空兩邊

  正確的交易人應該是時時評估戰場上交戰的多空雙方的勢力,並且加入勢力強大的那一方,共同打擊弱勢的那一方,把弱勢者帳戶中的金額收為己有

  當交易者觀察到自己所加入的那一方正在轉弱,交易者應該迅速的叛逃到強勢的那一方,而不是繼續留在弱勢的那一方,使自己帳戶的資金成為別人的戰利品,直到帳戶枯竭,被迫退出交易場

  交易者只要判斷戰場上交戰中的多空勢力,不需要預測未來交易時段中,多空的演變,只要站對邊,帳戶的資金自然會成長,用不著計算盈虧

  合理的目標

  合理的目標可以克制不當的貪婪,而十個被迫出場的交易者至少有五個是因為不當的貪婪所致

  採用極高風險的交易方式,或是將帳戶全部暴露在高風險下,有可能會在極短時間內獲得超高額的報酬,也能得到短站的成功,但只要繼續留在市場內,不久之後,一次或幾次的失誤,就能摧毀過去所有的成就,也摧毀了交易的生涯

  如果一年的獲利可以達到25%,就是很好的目標

  如果連續五年,每一年都能維持25%獲利,就有資格成為成功的投資人

  如果連續十年,每一年都能維持25%獲利,就有資格成為成功的經理人

  如果連續十五年,每一年都能維持25%獲利,就有資格成為華爾街的明星,

  有無數的經理人和交易員願意少活十年來換取這樣的績效,但是:

  2%的風險限制

  10%的每月虧損限制

  25%的年度報酬目標

  這三個資金控管法則,對於大多數人來說是不可接受的,因為這三項限制讓快速致富的美夢破碎,大多數的人願意承擔更大的風險,換取更大的利潤,所以建立了無法負荷的龐大的倉位,希望急速致富,可是一但市況稍有風吹草動的時候,就會摧毀所有倉位,迫使交易人離場,這樣的人畢竟佔了九成以上

每一個人都花費一生來營造〔成功〕,進入匯市進行交易的每一個人都認為自己會成功,會從市場上賺到利潤,改善生活,得到到成功,如果一個人都認為自己不可能市場上賺到利潤,他就不會開戶交易

  進入匯市進行交易的每一個人都認為自己會成功,但是真實世界中可能只有10%的人能夠成功,剩下的90%的人將會在一年內因為無法接受虧損一直發生,或是暴倉,或是資金不繼,被迫停止交易而退出匯市

  這些輸家當中,有一些會等待一段時間,等到資金再度出現,而且忘記上次的失敗之後,再度懷著信心和夢想,再一次進入匯市,從事交易

  很少的人會在失敗和挫折中,得到提升和進步

  交易之前,首先評估自己的交易方式是否可以讓自己長久生存下來,設計一套交易方法,避免自己在一年之內,成為90%的那些人


  大多數的人在還沒有察覺自己錯誤之前,就被市場和虧損所摧毀

  界定風險

  身為交易人,交易本身就一門生意,就像是開一家雜貨鋪一樣的的生意,當店家進一批貨物的時候,就開始承受風險和利潤,如果貨物賣不出去的時候,店家只好便宜求售,承受虧損

  好的雜貨店家只願意承擔合理的風險,即使連續判斷錯誤,連續進貨三次或五次都是虧損,雜貨店也不會因而倒閉,一次披進兩箱貨物,是合理的,用所有的資金叫進一卡車的貨物,就和賭博沒兩樣了

  合理風險的界定關係到資金的管理,也關係到交易人可以停留在交易場的時間,對於任何一筆交易的損失,我界定在起始帳戶5%,這樣可以確保我在交易場上,除非連續二十次發生失誤,否則我不會被迫出場

  如果當月份的交易損失超越10%,那個月份就必須要停止交易,這樣可以確保自己在未來十個月內都能留在交易場上

  界定風險之後,可以幫助自己在合理的風險之下認陪,這是正常的生意損失,不用在意,也不要討價還價,或是期待老天的幫忙,暫時退到交易場外等待理想的交易機會,並且檢討自己的錯誤

  承認失敗

  每一天開始交易的時候都要先告訴自己:

  1. 我自己可能是失敗者

  2. 如果我的交易有虧損,完全是因我自己的判斷有問題

  3. 我無法戰勝市場,市場是最偉大的

  當建立倉位之後,市場的走勢朝著對倉位有利的方向發展,許多人會因此而過度自信,守著倉位,一直到趨勢反轉之後,依然堅持自己的看法,座失利潤收成的機會,承認失敗的心理建設,可以幫助交易人避免這種情況

  當建立倉位之後,市場的走勢朝著對倉位不利的方向發展,許多人也會因為過度自信,守著倉位,放任虧損擴大,甚至加碼,等待市場反轉,承認失敗的心理建設,可以幫助交易人避免這種情況

成也指標,敗也指標。很多人賺錢了歸功於技術指標,虧錢了則歸罪於技術指標。那麼,技術指標到底是天使還是魔鬼?利用技術指標能賺錢嗎?如何利用技術指標賺錢呢?

  一、技術指標是投資者的工具和幫手

   隨著科技的進步和電腦的普及應用,技術指標在現代外匯市場的分析中佔有越來越重要的位置。而作為分析工具的技術指標也隨著人們重視程度的提高其本身的功能也越來越強大。如何科學的看待、合理的運用技術指標為我們在市場中賺錢成為一個不可忽視的重要問題。

   在FOREX.COM美國嘉盛集團的交易平臺中,提供了大量的技術指標工具。其中常見的技術指標工具包括:簡單的MA(移動平均線);MACD;RSI;BOLL;KDJ等等。

   這些技術指標的設計初衷,就是幫助投資者發現金融市場運動的規律,在實際操作中,這些技術指標也起到了這樣的作用。例如:MA可以幫助投資者發現市場的平均成本,一組MA的交叉則可以提供基本的買賣信號,多條MA則可以揭示市場的運行狀態等等。

   因此,技術指標在幫助投資者發現金融市場的運動規律方面,可以發揮非常重要的作用,極大地降低了投資者研究市場規律時所花費的成本,是非常有用的工具和幫手。

   但工具只是工具,運用之妙,存乎一心。怎樣使用、怎樣用好、怎樣用這些工具賺錢,實際是由投資者自己的研究水平決定的。對於掌握了技術指標的運用之妙的投資者來講,它是天使,而對於尚未掌握的投資者來講,過於迷信技術指標就會使其成為承擔不應該的罪名。
 

   二、技術指標可以幫助投資者賺錢

   以MACD為例,MACD(平滑異同平均線指標)是一個趨勢跟蹤類型的技術指標,雖然說它的反映有些滯後性,但是在實際的運用中是最常用的一個。無論從指標的設計思路還是具體的實際應用,都能夠很好的跟蹤價格發展的趨向;RSI(相對強弱指標)主要是從價格運行的動能方面來考慮的一個技術指標,它主要是觀察價格在趨勢中所顯示出來的動力和能量,通過數值的形式表達出來;KDJ(隨機指標)屬於衡量空間勢能方面的技術指標,它能夠給出我們關於價格在未來走勢上的落差方面的指引。

   對於喜歡作趨勢交易的投資者,MACD是一個非常有用的趨勢跟蹤工具。而對於喜歡作短線交易的投資者,RSI和KDJ則是很好的時機信號工具。

   三、怎樣利用簡單的技術指標賺錢

  在技術指標的選擇和運用上,要堅持實用性和簡單性並重的原則,同時通過不同指標的組合來揚長避短。

  任何指標都不是完美的,都會不可避免的出現指標本身的缺陷和不足!如指標的鈍化(RSI;KDJ);指標的滯後(MA;MACD)等等現象。如果在具體的運用中不知道指標本身的優缺點,往往就會發生反被指標牽著鼻子走的現象--技術分析是一把雙刃劍!因此,我們可以通過對不同指標的組合運用來揚長避短。

   在具體的應用中,向大家推薦兩種組合:一是趨勢跟蹤類的指標和動能指標配合起來應用(MACD+RSI),為的是能夠更好的把握趨勢;二是移動平均線和空間勢能的組合運用(MA+KDJ),為的是能夠預估價格未來的上漲或者下跌空間。

   切記,只有把指標組合起來應用,才能夠有效的化解和分散具體操作中因為指標本身的缺點而可能出現的各種“不良症狀”。這是應用技術指標指導我們實戰必須要注意的地方,因為任何一個技術指標都不可能去完全的解讀這個市場並且完全的認知這個市場。所以我們需要的是組合和立體式運用。

   技術指標幾乎人人都在使用,但每個人的用法並不相同,因此最重要的是在實際中不斷摸索和總結,找到最能發揮指標作用的方法。當技術指標幫助我們發現了市場運動的部分規律,並提示出了具體的買賣時機和價格,技術指標幫助投資者賺錢的使命就完成了。

在某種走勢的發展中,常會遇到相反的力量阻撓。例如一個上升行程中,有時會遇到較大的沽盤;一個下跌的行程中,會遇到強大的買盤,市勢好淡爭持(看好與看淡的力量爭持),匯價被迫窄幅上落。但是這個局面不會持續很長時間:數天、一周或更長一些時間。最後,匯價終會打破悶後,繼續自已原先向上或向下的行程。因此稱為圖形的延伸或圖形的鞏固或者乾脆稱為鞏固階段。對於匯價在這段時間,圖表分析家稱之為鞏固階段。鞏固階段的圖形通常有旗形、旗尖形、三角形、楔形等。掌握這些圖形的變化規律,有助於我們掌握買賣時機,擴大收益,縮小虧損。
  旗形
  旗形是匯價在急劇上升或急劇下降的過程中,由於走勢太急而暫時調整所形成的,因此,它是上升或下降行程的中途歇息信號。表面上,匯價似乎方向不明,難以捉摸。
  A.上升旗形
  匯價急劇上升後回落,下到低點遇到買盤支持,又複上升,如此上下來回若干次,時間通常37天,交易量逐漸減少。一旦市場消化掉原來的長盤,新的沽盤力量不繼,匯價便衝破旗形的阻力線,向著原來的方向繼續前進,匯價一旦突破阻力線,交易量隨之急增,這是上升旗形。
  B.下降旗形
  匯價下跌行程中稍作鞏固所形成的,是下跌行程的歇息信號。在賣家的力量下,匯價急跌,雖然有買盤支持,但沽售的壓力依然強勁,接著匯價又掉頭向下,如此來回反復。雖然在旗形交易範圍內,匯價總體有些上升,但是,由於這種圖形是下跌行程中的鞏固階段,一旦原來的沽盤被消化,新的沽盤便壓倒買盤,迫使匯價向著原來的下跌方向,繼續發展,這就形成了下跌旗形。下跌旗形的特點是:匯價逐漸升高,交易量逐漸減少,一旦支援線被突破交易量便驟增,匯價急瀉。
  旗尖衫
  旗尖形與一般的旗形原理相同,是在一個上升或下跌的行程中,匯價稍作調整所形成的。一旦調整結束,突破旗尖,匯價便會沿著原來的方向繼續前進。
  三角形
  三角形是圖表中最常見的圖形,它與旗形相似,不同之處是,完成圖形所需的時間比旗形長些,通常,三角形從形成到突破需要數周甚至更長的時間。

 A.上升三角形   上升三角形畫法:連接匯價的高點成一條大致水平的直接匯價的低點成一條上升趨向線,兩線相交成一個三角形。   上升三角形的特點:市場價格越來越高,但在高價位大致相同的水平上遇到重複的阻力。由於存在沽售壓力,匯價便被限制在一個相同的水平上。但是畢竟買家力量強大,匯價每次回落,低價一次比一次高,顯然市場在積蓄力童。一且突破上升阻力線,就沿著上升趨向線所指示的方向前進。   B.下降三角形   下降三角形與上升三角形相反,在高位有大的沽售壓力,因此,每次下跌後回升時,都回不到原來的高位,把匯價的高點連接起來形成一條下降趨向線。而匯價在下到某一水平時,差不多遇到同樣的阻力,買家力量限制著匯價的進一步下跌。把相鄰的低點連接起來可形成一條大致水平的直線,成立三角形的支援線,兩線相交成一個三角形。   下降三角形的特點是,向上的阻力越來越大,但最高點一個比一個低,這說明沽售壓力漸次增強。雖然下降時遇到阻力,但是買盤支持力逐漸減弱,最後匯價突破三角形的局限,即突破支持線,急轉直下。三角形的應用。不論上升三角形還是下降三角形,一旦形成了圖形,交易人士便可以尋找買人和賣出的時機,使自己的頭寸朝著有利的方向發展。一旦三角形被突破,人們便知道應當如何交易,不必多費筆墨。不過有一點需要指出的是,三角形突破之後,對今後的匯率走勢有一定的影響。三角形覆蓋的地方在圖表上是一個密集區,上升三角形密集區將成為今後匯率回落、下跌的支持區,就是說今後匯價在下跌時不易(但並非一定不能)突破這個支持區;而下降三角形密集區對於今後匯價影響,將成為今後匯價反彈上升的阻力區,就是說今後匯價即使反彈也不易突破這個區域。這一規律,對於交易人士在關鍵時喉下決心是很有幫助的。   C.對稱三角形圖形   對稱三角形的形態:把交易的最高價和最低價分別以直線連接,可成一個對稱三角形,近似一個缺少底邊的等腰三角形,匯價上升的高度逐漸降低,而下跌的低點漸次升高,上升幅度的減少同下跌幅度的減少大致相同。   對稱三角形的特點:隨著時間的推移,柱狀線逐漸移向三角形的頂點,醞釀著三角形的突破。不過,突破的方向,在發生前不易判斷,就是說對稱三角形接近完成時,匯價有可能向上突破阻力線呈上升趨勢;也有可能向下突破支持線呈下跌走勢。因此,在進入對稱三角形後,交易人士通常都逐漸平盤,等候明確的方向。其實,對稱圖形不應列為延伸圖形,因為突破三角形的局限後,方向可以兩邊發展,與進入三角形的原來走勢沒有必然的關係。

完美女人保養 流行彩妝物語 限時優惠搶購 完美女人保養
  臉部保養 限時優惠搶購 臉部保養 面膜專區 名牌專櫃香水 美眼工具
  面膜專區 手/足部保養 彩妝(眉眼) 指甲彩妝 kanebo 佳麗寶 美髮工具
  手/足部保養 隔離防曬 睫毛膏 美眼工具 SANA 莎娜 KOJI 蔻吉
 美髮美體保養 彩妝(臉部) 唇部彩妝 KOSE 高絲 女人我最大 其他美容節目

緒論
  一個交易策略僅僅是一個每個已按照規則被決定了的設置,一個交易者使其發展並用來指導他的交易。對於交易者來說,發展自己的交易策略有以下的好處:

  它去除掉了交易決定中的情緒因素。一個交易者應當遵循交易策略,知道自己應該做什麼,無論市場如何變化。一個沒有交易策略的交易者嘗試在市場開放的時候做一個決定,同時他容易受到情緒上的干擾。他們可能經歷恐慌和掙扎在市場沒有按照他們預計的那樣運行的時候,因為他們沒有一個對此情況的對策。

  節約時間。一個發展中的交易策略有一個優勢是努力工作。無論如何,一旦發展的交易規則能夠容易的自由的進行交易從全天的觀測圖表中,允許有時間發展更深層次的交易策略。在這個文章中我們將考察每個舞臺在發展交易策略的過程中,從確定一個可能的交易機會到寫下來的交易策略。按這樣的方法我們將發展出一個對每日Dow Jones指數交易簡單的策略。

,時間週期

  決定我們將要工作方向的時間結構在我們的系統中,是非常重要的。這真實的取決於多少時間我們準備花費在交易上,和多麼主動我們要求這個系統在一個週期中的交易次數。廣泛的說來,有四個主要的時間結構:時間結構 交易長度 使用的資料

  長線月 盤後數據

  中線周 盤後數據

  短線日 盤間數據

  日交易接近一天 盤間資料

  系統1 每次交易平均產生250點的收益但是一年只交易4次。

  系統2 每次交易平均僅產生10點收益但是一年交易200次。

  系統1產生1000點收益一年,然而系統2產生2000點收益一年。無論如何如果我們允許每次交易5點用做傭金以及滑動誤差,那麼系統1花費20點/年反之系統2 花費1000點/年。

  兩個系統產生相似的淨利潤從整個一年來看無論如何有一個數字要牢記的是:

  在一年只有四次的交易的系統一中,每次交易都很重要和必須被把握。可能大部分的收益將來自一次的交易之中,因此這次交易絕對不能被錯過。在系統2 中產生的一個新的信號,並不依賴個別的交易。

  系統1將要求有巨大的資本做基礎因為交易不得不承受寬幅的震盪。

  系統2要求更多的操作對於交易因為日內資料不得不被監控。

  系統2在交易中對心理上的要求更低因為淨資產下降的時期將更少,設計良好並且穩定的日交易系統罕見虧損月。 交易的頻率是任何交易系統的精華元素,我們選擇的交易週期將幫助我們來決定它。沒有一個正確的答案到底何種策略適合個體的交易者。鑒於本文的目的,我們將關注一個發展中的日交易系統。

三.選擇一個交易工具


  當開始設計一個交易系統時,我們需要做的下一件事是,決定我們該如何來達到我們的。現在有大量的交易工具適用於從股票,貨幣市場,到金融衍生物如期貨和期權。

  比方說,對於道鐘斯30指數來說,有以下幾個不同的交易渠道來操作這只指數:

  1、 指數中獨立的個股。

  2、 一個ETF基金

  3、 期權

  4、 期貨

  5、 套利(注:英國金融衍生物交易免稅)

  以上的每一個交易工具都可以進一步的細分,目前現在有3個道鐘斯30指數 ETF,和2個期貨品種。每個工具都有它自己的優點,以及或多或少有些不同的交易特性。 本文的目的是發展一個道鐘斯指數的日內交易策略,我們在一天內開平倉,同時遵守我們使用的交易工具的規則:

  1、 低成本手續費。 由於交易頻繁,因此手續費必須最低,交易個股時除外。

  2、 流動性。 要有足夠的成交量使我們的單子能進出自如,不會有追不進和砍不掉的情況出現。

  3、 委買、委賣價格間不能差距過大。 普遍來說,在一個流動性好的市場中,委買、委賣價格間距都不大。本交易適用於委買、委賣價格間距不超過5-8pts 。 道鐘斯指數迷你期貨(在CBOT電子盤中交易)正好適合本文的交易系統所需要的規則和交易目標,至少日均100000口成交量,委買、委賣價格間距不超過1點,平均每口合約價值,道鐘斯指數每點價值5美元。為了發展此日內交易系統,對我們想進行交易的獲得歷史資料並加以測試是非常重要的。

  四,交易系統的建立

  因此我們決定發展道鐘斯指數期貨的日內交易系統,下面我們需要分析市場特性,並在建立我們交易時得到統計優勢。建立系統就是設置標準化條件,使我們能分辨出可能贏利的交易。一旦有利於我們得到優勢的市場特性明確出現,系統設置的條件就將起作用。讓我們舉了例子:

  區間突破是一個非常流行的交易方法,這個理論的背後是市場將在我們開始交易的日子前出現極度的波動(無論高點還是低點),這種理論有多大的可靠性?用迷你道鐘斯指數期貨做測試,2004年1月到2004年6月,共128個交易日,我們得出下面的結果:

  第一次區間突破價格已存的高點,低點: 總體比例(124天):
  15 minutes 41 33%
  30 minutes 57 46%
  45 minutes 78 63%
  60 minutes 86 69%
  75 minutes 91 73%
  90 minutes 95 77%
  105 minutes 103 83%
  120 minutes 105 85%
  135 minutes 112 90%
  150 minutes 112 90%
  165 minutes 113 91%
  180 minutes 115 93%

  在測試中可以看到1/3(33%)的日子裏,15分鐘線的高點和低點都被突破,而突破1小時線的日子有2/3(66%),突破3小時線的日子多於90%。 以上可以看出此統計很有意義。假如我們用60分鐘的高低點突破進行交易,並把止損設在反方向突破時,我們全部交易中有69%不會被止損。然而我們還需要檢測我們的資料有多少否符合以下現實,事實上絕大多數的日內波動發生在開市時,只給予我們少量的空間入場獲利。

  下面我們看下高低點突破區間在全天的區間的比例

  第一次區間突破: 日波動百分比
  15 minutes 24%
  30 minutes 33%
  45 minutes 43%
  60 minutes 47%
  75 minutes 52%
  90 minutes 55%
  105 minutes 58%
  120 minutes 60%
  135 minutes 62%
  150 minutes 64%
  165 minutes 66%

 180 minutes 68%

 我們必須假設在這些日波動百分比上來設置止損,否則我們交易的原則(突破交易法)將變的有缺陷。我們從交易中潛在的獲利能力,通過日波動平衡來體現出來。舉個例子,用30分鐘線交易,33%被止損掉了,還有67%有獲利潛力。第一個表格中顯示,我們也有46%的機會不觸及止損。


  我們通過公式計算計算這些表格後,得出的最大贏利期望是:

  最大贏利期望 = (Pw x (1-Al)) – ((1-Pw) x Al)

  Pw 是 = 第一張表格中,未觸及止損的日子百分比。

  Al 是 = 第二張表格中,觸及止損的日子百分比。

  第一次區間突破: 計算出的最大贏利期望:

  15 minutes 9%
  30 minutes 13%
  45 minutes 20%
  60 minutes 22%
  75 minutes 21%
  90 minutes 22%
  105 minutes 25%
  120 minutes 25%
  135 minutes 28%
  150 minutes 26%
  165 minutes 25%
  180 minutes 25%

  我們看到 區間突破和獲利的最好組合發生在135分鐘,在此處的最大贏利期望有28%。必須記住這只是最大的可能獲利,此時我們已經違反了,在日內反向區間突破點(正確的高點、低點)止損的。這個測試的目的是,用來證明區間突破 能成為交易系統建立的基本組成部分。從第三張表格中我們可以看到,通過測試,每個時間段都有獲利的可能,且這些時間段在開始3個小時內的第一次突破沒有什麼區別。等止損的百分比減少時,獲利同時也被減少了,這導致了在各個時間段中的區間突破對我們的獲利來說沒有什麼不同,但從統計角度來看,135分鐘的獲利潛力最大(東部時間9:30~~11.45 ),因此我們就選它!

  五,入市規則

  現在我們來確定我們的交易結構,我們必須嚴格決定何種情況我們將進入開始交易一旦遇到標準的結構。

  我們的交易策略的結構是十分迅速有效的,我們將一直等待直到美國東部時間上午11點45分,然後進入市場做多如果開盤(上午9點30分到11點45分)的高點被突破或者進入做空如果開盤的低點被突破。最容易的確定這個方法是設置一個靜止的命令在市場上買入在最高價格上一個變動價位的範圍,一個靜止的命令在市場上賣出在比最低價格低一個變動價位的範圍。
就如這樣一個例子,看看 2004年1月2日的交易日。開盤範圍給出一個最高價格10510在上午10點58分,一個最低價格10462在上午10點。在上午11點45分我們放置

  如下命令:
  買入預留在10511
  賣出預留在10461
  當市場價格接觸到其中一個預留價格而開倉交易,我們將在市場中繼續留著另一個預留單作為我們最初的止損價格。如果那個止損價格被達到,那麼我們進入市場的理由也將是有問題的。

  我們的入市規則是相當簡單的但是我們可能著眼於改變這些規則在兩種情況下:

  1, 我們可能幾乎不能等到更多價格變動在突破開盤範圍之後而在開始我們的交易之前。舉例來說,我們可能設置我們的預留價位在比最高價格高5點以及最低價格低5點的範圍,在上面2004年1月2日的例子中就是在10515的價格買入和 10457的價格賣出。這樣設置的理由是來防止出現市場行情剛剛觸及我們的預留價格,就是剛剛超過最高或者最低價格就立即反轉。我們可以檢驗這個理論通過觀察最大限度順勢行情在每次被觸發的交易中,那就是最大限度的數量整個日內行情在我們願意看到的情況下。

  最大限度有利的行情 沒有交易成本節約 規避代價 淨贏利/(虧損)
  0 2 40 107 (67)
  1 2 40 214 (174)
  2 6 168 309 (141)
  3 9 203 400 (197)
  4 11 238 490 (252)

  從表格中我們可以看到,在市場行情2次觸及我們預留價格然後立即反轉,總共產生40點虧損在一天的交易結束以後。為了避免這樣的情況我們採取用2點來代替1點來制定交易入市點。無論如何,總共有109次交易因為樣板和每次入市交易加上的一點將花費額外的107點對於剩下的交易,淨虧損67點。我們可以做出如下結論,等待大於1點的機會入市交易減少了系統整體的收益率。 二者選一地,一旦設置被觸發我們應當等待一個回調在入市前。例如,在2004年1月2日,一旦10462 的低價被突破,我們開始一個限價賣出指令在,說,5點更好在10467。這裏的威脅是我們可能錯過最大的趨勢變動如果價格不出現回調的話。無論如何,我們將關注那些那樣做。我們需要檢查最大變動價格不利於於我們入市價格:

  MAE 沒有交易 錯過的交易 節約 淨利潤/(虧損)
  0 5 305 0 (305)
  1 6 348 103 (245)
  2 9 534 200 (334)
  3 11 634 294 (340)
  4 15 717 376 (341)
  我們可以得出如下結論等待一個回調在入市交易之前減少了整體的收益率,因為大多數有利可圖的交易被錯過了。 為了我們的策略,我們將堅持入市交易通過買預留或者賣預留在超過開盤時間範圍的最高(低)價格1點的價格。【交易之路www.irich.

 六、止損規則


  我們的策略已經由了一個自然的止損 這個策略的目的是在那些出現高低點的日子裏獲利,(跳空的高低點不算?)。如果我們在高低點突破時入場交易,然後市場卻經常性觸及止損,我們的交易就會遭到損失。這種情況我們在前面的測試中,占總時間的10%。下面我們增加幾條止損的條件:

  1、當我們得到一定數額的贏利後,移動止損點至突破的地方。然而,為什麼以及如何使市場有利於我們的突破點所處的位置?

  2、當交易逐漸贏利時,移動止損價,保護贏利。

  3、設置一個固定數額的最大止損量(比如35pts)。固定點數贏利是應該避免的,他們在市場的波動中不會帶來帳戶的改變,也不會帶來系統成功的證明。

  4、設置止損為區間的一個百分數。當市場繼續在價格趨勢上前進,並且最終觸及我們的首次止贏前,價格會有一定強度的回調,這時這個止損理論就有了存在的前提。

  在我們設計系統,並且為了在實戰中求得比測試時要好的多的預期回報,區間突破止損的幅度可以相對的放大,如日波動率的62%。因此,當日波動為200點時,我們的平均止損就在124點。許多交易者因為心理方面原因而喜歡非常緊湊的止損方法,然而,據我們在區間突破發現的情況來看,越緊湊的止損與越低的贏利率聯繫緊密。

讓我們通過在區間突破上試用不同的止損幅度,來測試上面的結論。注:假設市場在收盤後繼續交易。區間突破止損百分比% 止損交易占總交易的% 被止損的交易平均損失 非止損交易占總交易的% 被止損的交易平均贏利 每次交易的期望

  10% 84% 6.53 16% 44.41 0.95
  20% 74% 12.35 26% 36.79 0.59
  30% 58% 18.19 42% 29.70 2.26
  40% 50% 24.26 50% 27.05 1.73
  50% 41% 28.76 59% 23.45 1.53
  60% 31% 35.18 69% 23.51 5.60
  70% 25% 40.30 75% 20.35 5.14
  80% 21% 44.04 79% 18.43 4.92
  90% 16% 45.76 84% 15.80 6.33
  100% 11% 48.00 89% 13.15 6.42

  交易的預期贏利公式是:(%W*Av W) – (5L*AvL)上面的表格是124天測試期間的109次交易的結果。我們可以清晰的看到,當止損率變小時,平均損失也小了,但虧錢的次數增加不少。當止損為區間突破的20%時,我們平均損失只有12點,而贏利有37點;風險回報率為13。然而當期望損失平均少於1個點就止損時,我們有74%的時間都會被趕出局。把止損放置在入場點的反面,就是區間的另外一邊時,上表最後一行顯示,我們只有11%的交易被止損出局,平均損失48點。然而占總成交量89%的贏利交易,平均只賺13點。這是許多交易者應該提防的高風險回報率,3.5:1,同時有更多的交易者在89%的交易中不止盈出局,導致了平均贏利只有6.42個點。

  結論:通過檢查贏利、損失交易次數對比,和贏利、損失點數對比,我們不認為風險回報率會影響贏利的那部分交易。我們將繼續把止損放置在區間的另外一邊。

七、止盈


  我們目前的止盈規則只是:在一天內的最後交易時間出場,如此簡單的原因就是我們發展的是日內交易系統,而不是做隔夜單。一般來說,道鐘斯指數強勁的日內趨勢(我們所企圖抓住的贏利點)一般會在最高/低點處收盤,因此可以在最好的市場感覺中出場。

  然而,經常有些日子裏,市場向一個方向突破前進後,在收盤前突然反轉。如果我們固定等到市場收盤在出場,那麼本次交易掃弄。

  最常用的止盈規則是:

  1、 跟蹤止盈。

  2、 確定目標價位止盈。

  我們在道鐘斯系統中檢查上面這2項規則,先從跟蹤止盈開始。從區間交易的另外一邊開始止損,我們將隨著市場走勢改變止盈點位:如果我們有了10點贏利,則止盈提高到10個點。當然,跟蹤止盈只能移動至我們的贏利處,不可以也不應該更遠。跟蹤止損在市場中每次交易平均都能得到5.55的淨利,相對我們不用跟蹤止盈時有6.5的贏利。在這個獨特的系統中,跟蹤止盈效果看起來要差於每次交易的獨立止損。確定目標價位止盈效果又如何呢?為了證明這個情況,我們通過檢驗這個市場的波動率,測試確定目標價位止損的效果。因此我們使用區間波動來代替確定目標價位止盈。

  確定目標價位止盈在區間內占的百分比觸及止盈的交易占總交易量的百分比 觸及確定目標價位止盈時的平均贏利 未觸及止盈的交易占總交易量的百分比 未觸及確定目標價位止盈時的平均贏利 每次交易的預期利潤

  10% 88% 6.47 12% (19.00) 3.43
  25% 72% 15.26 28% (20.29) 5.15
  50% 45% 28.29 55% (17.57) 3.05
  100% 21% 51.30 79% (8.03) 4.49
  150% 9% 73.00 91% (3.11) 3.87
  200% 6% 91.67 94% 0.50 5.52
  250% 3% 116.00 97% 2.61 5.73
  300% 1% 108.00 99% 5.09 6.03  

  未確定目標價位止盈 0 100% 6.42 6.42 通過設置 確定目標價位止盈 我們希望增加贏利的幾率,同時減少平均贏利點數。我們可以看到設置一個少量的確定目標價位止盈,如區間的10%,則88%的交易會被觸及止盈。只要心理素質過硬,我們在每10次

完美女人保養 流行彩妝物語 限時優惠搶購
完美女人保養
  臉部保養 限時優惠搶購 臉部保養 面膜專區 名牌專櫃香水 美眼工具
  面膜專區 手/足部保養 彩妝(眉眼) 指甲彩妝 kanebo 佳麗寶 美髮工具
  手/足部保養 隔離防曬 睫毛膏 美眼工具 SANA 莎娜 KOJI 蔻吉
 美髮美體保養 彩妝(臉部) 唇部彩妝 KOSE 高絲 女人我最大 其他美容節目

MACD-Moving Average Convergence Divergence"移動平均聚散"指標,也有人翻譯成"指數平滑異同移動平均"指標,簡稱"MACD"指標。

MACD優點:可以研判匯價走勢的依據。

MACD缺點:無法預知匯價的高低,匯價在盤整時,指標上下交叉出現會有失誤的現象。

DIF邊緣線:是短期移動平均線-長期移動平均線,是快速移動平均值-慢速移動平均值之後的數值;FXDD預設值是以十二條移動平均值-二十六條移動平均值,就可以得到一個DIF值。

MACD虛線:是移動較慢的"九條DIF平均值"

DEF柱狀線:向上或向下豎立著,是用"一條DIF"-"九條DIF平均值"所得到的數值,

MACD主要是運用兩條平滑移動平均線,一條是快線DIF,一條是慢線MACD之間移動速度的差異,;研究其間的Convergence(聚集、交會、收斂)與Divergence(發散、分離、分開的差異)。

聚散交叉:DIF邊緣線大於MACD時,是買進的時機;DIF邊緣線小於MACD時,是賣出的時機。

超買:匯價繼續上漲,KD指標停留在超買區,形成"鈍化"的現象。需等指標反轉向下穿越"超買線",或"背離", 或看到"避雷針"時,是一個"賣出"訊號。

超賣:匯價繼續下跌,KD指標停留在超賣區,形成"鈍化"的現象。需等指標反轉向上穿越"超賣線",或"背離", 或看到"下影線"時,是一個"買進"訊號。

完美女人保養 流行彩妝物語 限時優惠搶購 完美女人保養
  臉部保養 限時優惠搶購 臉部保養 面膜專區 名牌專櫃香水 美眼工具
  面膜專區 手/足部保養 彩妝(眉眼) 指甲彩妝 kanebo 佳麗寶 美髮工具
  手/足部保養 隔離防曬 睫毛膏 美眼工具 SANA 莎娜 KOJI 蔻吉
 美髮美體保養 彩妝(臉部) 唇部彩妝 KOSE 高絲 女人我最大 其他美容節目