公告板


只要你現在通過下面連結加入,你將享有【優惠價】加入課程, 有興趣一起學習用錢賺錢

課程網址:http://payment.excelgain.com/?affiliates=dea9ddb25cbf2352cf4dec30222a02a5
有問題可與我聯絡Line:mforex999 微信ID:mforex999或是請寫信到 mforex999@gmail.com

預覽模式: 普通 | 清單

技術指標——隨機指數KDJ

說 明
KDJ是股市中最常用的指標。綜合動量、相對強弱和平均線的優點,在計算過程中主要研究最高價、最低價與收碟價之間的關係。反映價格走勢的強弱、超買超賣現 像。

應 用
1. D%>80,市場超買;D%<20,市場超賣。
2. J%>100,市場超買;J%<10,市場超賣。
3. KD金叉:K%上穿D%,為買進信號。
4. KD死叉:K%下破D%賣出信號。

使用技巧
1. 當K值(短期平均值)大於D值(即長期平均值)表示目前是向上漲升的趨勢,因此在圖形上,K線向上突破D線時即為買進信號。
2. 當D值大於K值,顯示目前的趨勢是向下跌落,因此在圖形上K線向下跌破D線,因此在圖形上,K線向下跌破D線時即為賣出時機。
3. 當D值跌至10-15時是最佳買入時機,若高至85-90時則是賣出信號。
4. K線與D線在高級二次交叉則行情將大跌,在低檔二次交叉則行情將大漲。
5. K與D在50處交叉為碟整,此指標無明確的買賣信號。

隨機指標的優缺點
KD指標比RSI準確率高,且有明確的買、賣點出現,但K、D 線交叉時須注意"騙線"出現,因KD過於敏感易被操縱。

參數說明
RSV天數-預設值:9;K天數-預設值:3;D天數-預設值:3

學習外匯交易賺錢

圖表分析

  前言

  市場技術員、技術分析員及圖表分析家利用圖表來分析股市價格的動向和預測未來的走勢,但圖表不應隻限於圖表專家使用,基本分析員也能利用圖表,因為圖表化的歷史記錄更容易使基本分析員指出在股票價格上重要的事情(例如盈利、派息等),及更容易監察各股票過往的表現。

  時段

  圖表可以以不同的形式顯示,又可以即日圖、日圖、周圖及月圖來顯示。日圖的每一天是以當日每一個交易記錄的資料聚合為一個單一資料;而周線圖的每一周是以每一天的資料聚合為一個單一資料;至於月線圖的每一個月則以當月的每一周資料聚合為一個單一資料。時段的選取是根據該金融產品的歷史和投資者的投資風格而定。

  投資者通常透過即日圖及日圖預測短期價格趨勢。短期圖表的確能夠提供詳細及全面的資料,可是,其資料往往會因市價的急升/急降和裂口價格而產生大起大落。

  相反,投資者常以周圖和月圖來預測長線價格趨勢。因為長線圖涵蓋了較長的時段,價格的動向並不會輕易地受外來的噪音影響。

  除此之外,混合性的策略在市場上也經常被採用。投資者可使用長線圖表來分析大圍前景,或價格動向之趨勢;而短線圖則可用作為製定入市和出市位的指標。

  圖表種類

  技術員、技術分析員和圖表分析家最常使用的圖表分別有幾種,當中又以線圖最為簡單。繪畫方法是以每個時段的「收」價,用線相連而成。由於收市價在傳統分析上一向被視為重要價位,故此收市價遠比其他資料如開市價、最高價及最低價更具參考價值。

  無可否認,棒形圖是現今最多投資者採用的圖表。每一支燭都以某時段的「開」「高」「低」「收」四個資料群組成。以直線連線「高」和「低」價,群組成柱身,然後在柱身的左邊以短橫線畫出「開」價,及在右邊以短橫線畫上「收」價。棒形圖之所以能夠穿過時間的巨輪,一直成為投資者最追捧的圖表,全因其燭身簡明地將市場重要的訊息顯示出來。跟線圖不同,棒形圖除了顯示收市價外,還能顯示出「開」「高」「低」價。在某些情況下,投資者為了避免圖表在視察上的混淆,會省略開市價。

  此外,早在叁百年以前,日本人已用陰陽燭來記錄米價變化,直至近年,陰陽燭圖更為普及化。正如上圖所示,陰陽燭的外形酷似棒形圖,同由「開」「高」「低」「收」四個價位群組成,不同之處是兩者在表達「開」與「收」價的繪畫方法。首先,陰陽燭以白色燭身的陽燭代表收市價比開市價高,及以黑色燭身的陽燭代表收市價比開市價低,而燭身直線或遮暗之頂和底則分別代表最高價和最低價。近年陰陽燭日漸受技術分析信徒愛戴,原因是陰陽燭圖以彩色及幾何圖形表達升市和跌市,相比傳統的棒形圖多了一份視覺說明。

  價格比例

  一直以來,技術員大多採用兩種技術來顯示圖表的價格比例——絕對比例圖表和對數比例圖表。絕對比例圖表利用相同的垂直距離來顯示價格,在全圖上每一個價格的單位比例是統一的。

  另一方面,對數比例圖表強調價格間的百分比變動。如上圖所示1至2和2至4的獲利比率同是100%。在對數比例中1至2和2至4的垂直距離是相同的,但在絕對比例中2至4則是1至2的兩倍。

  既然兩者有著比例上的差異,究竟何時該用相同比例圖,又何時該用對數比例圖呢?大致來說,相同比例圖適用於窄幅上落的價格走勢,對於短期圖和短線炒家較為適合;相反,對數比例則較適合用在長線圖上,以及在一個有代表性改變的價格上(如九零年代科技網股爆破、經濟不景)。

  圖表預測

  坊間上提供的圖表技術分析種類琳琅滿目,各有特色和優勝之處。眾人皆知,所有的技術分析同樣以過去的資料價格和活動為本。因此,投資者對技術分析種類的選取均視乎個人的需要或投資模式而定。一個成功的投資者,能藉著個人認為有效的圖表工具來製定準確的買賣策略,從而達至高沽低買的投資目的。

學習外匯交易賺錢

趨勢和周期

  即使是隻做當日結清的短線單,也不能僅僅依賴小時圖,何況在外匯市場如想得到更多的利潤,中長線的動作是十分有益的。周線圖和日線圖的作用,正在於說明投資者認清趨勢和週期。

  順勢做單是外匯市場製勝的秘訣,提供趨勢和重大阻力點,是日線圖最重要的功能。此外,每一根日線圖直線的 像徵意義:通常情況下,開市價很低而收市價接近全天最高價,是買入信號;收市價和開市價持平,是市場有所等待、可能會轉折的信號;而開市價較低,價位上漲後,又退回到開市價以下收市,是明顯的下跌信號。要注意的是,這些信號須和其他分析手段合併使用,準確率才更高。

  在大的漲勢中,常夾雜有一些小的跌勢,這些小跌勢的時間通常在一星期左右,如b1至b2即是典型的短期趨勢,隻有經常研究日線圖和周線圖,才可能不被短期趨勢攪渾了頭腦。

  順勢買賣要注意在勢剛剛形成時就果斷跟進,大多數投資者容易犯的錯誤是在跌勢中跟進太晚,總以為價位已太低,於是不斷地逆勢買進,偶爾抓準了反彈機會可賺一點,但若果抓錯了阻力點,或未能及時獲利平倉,就會被套牢,拖得越久,損失越大。

  周線圖和月線圖並不僅僅是供長線投資者參考的。周線圖的作用是除了揭示大勢外,它還揭示外匯的週期性規律。比如在1985年初之前,英鎊基本上在阻力線a線下處於下跌週期,此後在支撐線b線上方持續上漲了4年,漲幅近9千點。從1989年開始,英鎊則在1.5 ̄2.0的幅度內週期性迴圈。

  通常情況下,若果周線圖的位置在上漲週期中,上一根周線圖收市在高處,本周價位突破上周最高點,這些都是上漲的信號。在判斷市場走勢的大轉勢時,周線圖在外匯迴圈週期中的位置是十分重要的。

  外匯市場的用兵之道,貴在隨機應變。對於功力不深的投資者來說,尋找市場的頂和底,或許會使你傾家蕩產,但是功力高深的外匯交易大師,卻有人私人找頂和找底的辦法,輸小賺大,累積了幾十萬美金的財富。外匯市場的心理行為特性,亦並非一成不變,隨時研究這些變化,對市場和自身的心理行為特性善加把握,則知己知彼,離戰勝外匯市場就不太遙遠了。

學習外匯交易賺錢

一年之中每月重要的轉勢時間

  江恩特別列出,一年之中每月重要的轉勢時間如下:

   - 1月7日至10日及1月19日至24日

   - 2月3日至10日及2月20日至25日

   - 3月20日至27日

   - 4月7日至12日及4月20日至25日

   - 5月3日至10日及5月21日至28日

   - 6月10日至15日及6月21日至27日

   - 7月7日至10日及7月21日至27日

   - 8月5日至8日及8月14日至20日

   - 9月3日至10日及9月21日至28日

   - 10月7日至14日明亮10月21日至30日

   - 11月5日至10日及11月20日至30日

   - 12月3日至10日及12月16日至24日

  在上面所列出的日子中,相對於中國曆法中的24個節氣時間。

  從天文學角度,乃是以地球為中心來說,太陽行走相隔15度的時間。

學習外匯交易賺錢

巧用均線止虧損

作為技術分析的一部分,搬移均線能指引投資者進行外匯交易,獲得更多的利潤,但小周卻從中吃了不少苦頭——虧損。那原因到底是什麼呢?讓我們一起來看看吧:

  轉眼間,我炒外匯也有1年多了。在這些日子裏,我一直在潛心研究外匯中的技術分析,很渴望能找到一種可以穩定盈利的交易方法。功夫不負有心人,很快,我就發現了一個製勝的法寶——搬移平均線,雖然它看上去很簡單,但在交易過程中能幫上我不少的忙。比如,我在08年12月10日做歐元兌日元的時候,日圖中的匯價已有效地突破了5日均線和10日均線,並且5日均線成功地上穿了10日均線,這說明短期空頭勢力很可能被多頭所替代,市場上將會出現很多的停損碟。而停損碟的大量產生,將有助於行情進一步沿著多方延續下去。於是,我便順應市場的趨勢,在120.78的價位買入一手歐元/日元,止贏100點,40點止損。隨後,匯價果然沿著搬移平均線給出的方向上漲,而我也很順利地獲得了100點的利潤。

  不過後來的一次動作卻讓我非常鬱悶。那天,我看到在英鎊/美金1小時圖上,搬移平均線中的5小時均線向上運行,且與10小時圖形成了金叉,便大膽地在1.7319的價位跟進一單,止贏120點,止損60點。可Ë曾想,當我再次開啟舊檔係統碟的時候,卻發現匯價不僅打破了我的止損價位,還朝著我買入的相反方向運行了很長一段時間。再往日圖上看,其實早在我買入英鎊/美金的時候,它就給出了做空的信號——5日均線與10日、22日、63日、125日和200日均線形成了空頭排序。為此,我就開始刻意地避開用小時圖來分析匯價,但結果同樣令我失望。後來,在與一個朋友的聊天中,他告訴我說:2007年的某日,他看了日均線圖後,就買入了美金/日元,止贏30點,止損15點。本想從中短線賺取一部分利潤的,可匯價偏偏不給面子,在他進場以後就朝著相反的方向開始運行。當時的他也很迷茫,難道搬移平均線不準?後來經由長時間的研究,才發現:當投資者進行長線交易的時候,宜看日、周乃至月均線圖;進行短線交易的時候,則應綜合看分鐘圖、小時圖和日圖,這樣才能更好地說明投資者進行外匯交易。而我們之前的動作正是因為沒有根據實際情況以及綜合來看對應的圖表,從而導致了虧損的產生。

學習外匯交易賺錢

技術指標——拋物式轉向

   拋物式轉向(SAR)——拋物式轉向又稱止損點動作係統。是利用拋物線原理隨時調整止損點位置的工具,由於群組成該線的止損點是以弧形模式搬移,所以又稱拋物線指標。SAR在圖形和運用上很像搬移平均線,都屬於價格和時間並重的分析工具。

  計算方法:

   (a)選取某段時間判斷為上升或下跌。

   (b)如看漲,則第一天的SAR值必須是近期內的最低價;如看降,則第一天的SAR值必須是近期內的最高價。

   (c)第二天的SAR值求得方法,將第一天的最高價(看漲時)或最低價(看降時)與第一天的SAR的差距乘以調整係數,再加上第一天的SAR即可。以此類推計算SAR值。其公式:

   SAR(n)=SAR(n-1)+AFX[EP(n-1)-SAR(n-1)]。

   SAR(n):第n天的SAR值。

   SAR(n-1):第(n-1)天的SAR值。

   AF:調整係數。

   EP:極點價。

   如是看漲一段時間,EP為這段時間的最高價、如是看降一段時間,EP為這段時間的最低價。

   (d)EP(n-1)為第(n-1)天的EP。

   (e)第一個調整係數AF為0.02,如每隔一天的最高價比前一天的最高價還高,則AF遞增0.02,如無新高則沿用前一天的數值,但調整係數不超過0.2。

   (f)如是買進期間,計算出某日的SAR比當天或前一天的最低價還高,計算某天的SAR比當天或前一天的最高價低,則應以當天或前一天的最高價為某天的SAR。

學習外匯交易賺錢

技術分析技巧——隨機指標

  隨機指標是喬治·藍恩博士所發明的,是歐美期貨市場常用的一套技術分析工具,由於期貨貨風險性波動大,需要較短期、敏感的指標工具,因此中短期投資的技術分析也較為適用,隨機指標綜合了動量觀念、強弱指標與搬移平均線的優點。

  計算隨機指標數值時,從九天週期為例,首先須找出最近九天當中曾經出現過的最高價、最低價與第九天的收碟價,然後利用這三個數字來計算第九天的未成熟隨機值(RSV)

  (第9天收碟價━最近9天內最低價)

  RSV =━━━━━━━━━━━━━━━━━━×100

  (最近9天內最高價━最近9天內最低價)

  計算出未成熟隨機值(RSV) 之後,再根據平滑搬移平均線的方法,來計算K值與D值。

  當日K值= 2/3 前一日 K值+ 1/3 RSV。

  當日D值= 2/3 前一日 D值+ 1/3 當日K值。

  若無前一日的K 值與D 值,可以分別用50來代入計算,在長期的平滑運算之後,起算基期不同的,都將趨於一致,並無任何差異。

  KD線的隨機觀念,在實用上遠比搬移平均線進步很多。在技術分析的領功能變數上,事實上可分為圖形分析與搬移平均線理論兩個範圍。

  搬移平均線在習慣上,都是以收碟價來做計算依據,因而無法表現出一段行情的真正波幅。

  也就是說,當日或最近數日的最高或最低價,無法表現在搬移平均線的資料上,有些專家體認到這些缺點,而另外開創出一些更進步的技術理論,將搬移平均線的套用,更發揮。

  KD線即是其中一個代表性的傑作。未成熟隨機值隨著九日中高低價、收碟價的變動而有所不同。若果行情是一個明顯的漲勢,會帶動K線(快速平均值)與D線(慢速平均值)向上升。如漲勢開始遲緩,則會反應到K值與D值,使K值跌破D值,此時中短期跌勢確立。

  KD線本質上是一個隨機波動的觀念,對於掌握中短期的行情走勢非常正確。因此可說是非常實用的利器。

  1.當K 值大於D 值,顯示目前是向上漲升的趨勢,因此在圖形上K 線向上突破D 線時,即為買進訊號。

  2.當D 值大於K 值,顯示目前是向下跌落,因此在圖形上K 線向下跌破D 線,即為賣出訊號。

  3.唯K 線與D 線的交叉,須在80以上,20以下,訊號才正確。

  4.背離現 像:價格創新高或新低,而KD未有此現 像,亦為反轉的重要前兆。

學習外匯交易賺錢

MetaTrader編程入門

MetaTrader寫程式入門教學(0)
  ----指標檔案構成


例1

//+--------------------------------------------------
//雙些線後是單行註釋,用於註解,自用說明。/*和*/包起來實現多行註釋,記錄自己的說明介紹,寫程式使用記錄等
//MQL4語系基本服從C語系的規則-----------注意目前MetaEditor處理不好多位元組代碼,所以不要在代碼中使用中文和中文空格-------------+
//每個指標檔案隻是至少內含三個部分(1)property 和參數,陣列聲明,(2)起始化函數nit(), (3)主函數start()
//property 是各種說明訊息
//最重要必須的是這三種,(1)說明指標將畫在價格視窗還是獨立的視窗
//(2)有多少個(1~7)儲存指標資料的陣列,(3)說明對應將畫指標的繪畫彩色,編號1~7
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- 可設定的參數,可根據需要,由使用者設定
extern int MA_Period=13;
extern int MA_Shift=0;
extern int MA_Method=2;
extern int MA_Price = 6;
/*  MA_Method =
MODE_SMA 0 Simple moving average,
MODE_EMA 1 Exponential moving average,
MODE_SMMA 2 Smoothed moving average,
MODE_LWMA 3 Linear weighted moving average.
*/
/*  MA_Price =
PRICE_CLOSE 0 Close price.
PRICE_OPEN 1 Open price.
PRICE_HIGH 2 High price.
PRICE_LOW 3 Low price.
PRICE_MEDIAN 4 Median price, (high+low)/2.
PRICE_TYPICAL 5 Typical price, (high+low+close)/3.
PRICE_WEIGHTED 6 Weighted close price, (high+low+close+close)/4.
*/
//陣列,儲存指標資料
double Buffer0[];

//| 起始化準備函數,裝入時呼叫一次
int init()
  {
//-設定編號為0的線的線形等參數, 0~6,對應indicator_color1~7
   SetIndexStyle(0,DRAW_LINE);
//---- 設定編號為0的線 與陣列的對應關係, 0~6
   SetIndexBuffer(0,Buffer0);
   return(0);
  }

int start()   //指標計算主函數,每次計算呼叫
  {
  ma();
   return(0);
  }

//訂做函數,這裏隻是直接使用庫函數實現MA, 若你自己計算,可設計任何指標   
void ma()
  {
   int  pos=Bars; 
//Bars = Number of bars in the current chart.目前視窗中的蠟燭數
   while(pos>=0)
     {
      Buffer0[pos]=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,MA_Price,pos);
     pos--;
     }
  }
//+--------------------------------------------------
例2
//+--------------------------------------------------

#property indicator_separate_window
#property indicator_buffers 7
#property indicator_color1 Red
#property indicator_color2 Yellow
#property indicator_color3 Blue
#property indicator_color4 Green
#property indicator_color5 Gray
#property indicator_color6 SkyBlue
#property indicator_color7 Tan

extern int MA_Period=13;
extern int MA_Shift=0;
extern int MA_Method=2;
extern int MA_Price = 6;


double Buffer0[];
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
//----

int init()
  {
//-設定編號為0的線的線形等參數, 0~6,對應indicator_color1~7
   SetIndexStyle(0,DRAW_LINE);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexStyle(3,DRAW_LINE);
   SetIndexStyle(4,DRAW_LINE);
   SetIndexStyle(5,DRAW_LINE);
   SetIndexStyle(6,DRAW_LINE);
//---- 設定編號為0的線 與陣列的對應關係, 0~6
   SetIndexBuffer(0,Buffer0);
   SetIndexBuffer(1,Buffer1);
   SetIndexBuffer(2,Buffer2);
   SetIndexBuffer(3,Buffer3);
   SetIndexBuffer(4,Buffer4);
   SetIndexBuffer(5,Buffer5);
   SetIndexBuffer(6,Buffer6);
   return(0);
  }

//
int start()   //指標計算主函數,每次計算呼叫
 {
  ma();
  ma1();
  return(0);
 }


void ma()
  {
   int  pos=Bars;  

   while(pos>=0)
     {
      Buffer0[pos]=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,MA_Price,pos);
      Buffer1[pos]=iMA(NULL,0,MA_Period*2,MA_Shift,MA_Method,MA_Price,pos);
      Buffer2[pos]=iMA(NULL,0,MA_Period*3,MA_Shift,MA_Method,MA_Price,pos);
    pos--;
     }
  }
void ma1()
  {
   int  pos=Bars; 

   while(pos>=0)
     {
      Buffer3[pos]=iMA(NULL,0,MA_Period*4,MA_Shift,MA_Method,MA_Price,pos);
      Buffer4[pos]=iMA(NULL,0,MA_Period*5,MA_Shift,MA_Method,MA_Price,pos);
      Buffer5[pos]=iMA(NULL,0,MA_Period*6,MA_Shift,MA_Method,MA_Price,pos);
      Buffer6[pos]=iMA(NULL,0,MA_Period*7,MA_Shift,MA_Method,MA_Price,pos);
     pos--;
     }
  }

MetaTrader寫程式入門(1)--智慧交易係統基礎

//+------------------------------------------------------------------+
//|                                       Designed by OKwh, China     |
//|                           Copyright  2006, OKwh  |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright  2006,  OKwh  "
#property link      ""
#define MAGICMA  200610011231
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
extern int whichmethod = 1;   //1~4 種下單模式
extern  double TakeProfit = 100; 
extern   double StopLoss = 20;
extern double MaximumRisk        = 0.3;
extern  double TrailingStop =25;
extern   int maxOpen = 3;   //最多持倉限製
extern   int maxLots = 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); } //反起始化
//| expert start function
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(5000);
     }
    }
  }
}
//平倉持有的賣單
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(5000);
       }
    }
  }
}
//判斷是否買或賣或平倉
int buyorsell()   //在這個函數計算設定你的交易信號
  {
   double MacdCurrent, MacdPrevious, SignalCurrent;
   double SignalPrevious, MaCurrent, MaPrevious;
   MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
   MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
   SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
   SignalPrevious=iMACD(NULL,0,12,26,9,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);
 if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious      &&  MaCurrent>MaPrevious)
   return (1); // 買  Ma在上升,Macd在0線上,並且兩線上交叉
 if(MacdCurrent>0 && MacdCurrentSignalPrevious
       && MaCurrent    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(5000);
      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(5000);
       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);
  }
      }
    }
  }
}
MT寫程式入門教學(2)----指標畫哪裏?價格視窗還是獨立視窗?

其實,都可以,不過是坐標的規格化,使得它們在相近的資料範圍,就可以畫在一起。
看你自己的習慣。畫在價格視窗,方便和價格同時感受。

//+本例展示了如何把MA轉換後畫到獨立視窗,同樣也可以把獨立視窗的指標改畫在價格視窗
//要達到這些目的,需要考慮兩個方面 1 估計資料的範圍,以確定以什麼為單位? 2 確定坐標偏移,也就是確定坐標零點。
//目的就是讓你要畫的多條線在同樣的數值範圍,這樣才能同時畫出,達到參考目的
//比如-1000到+1000和0到+4這樣兩套資料要變換後才能在同圖畫出,
//轉換方法複習國中數學直角坐標係的縮放和平移部分-------------------------+

// 共畫2條線
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Yellow

// Parameter
// MA-Properties
extern double MovingFast     = 7;  
extern   double MovingSlow     = 13;  
extern   double MovingSlow02     = 13;  
extern   int MaM=2;
extern   int MaP=2;
extern   int MaM0=3;
extern   int MaP0=3;

extern   int range1 = 11;
extern   int range2 = 4;

int i;

// Buffer
//// 共畫2條線,用2個陣列存儲線資料
double bufferMA1[];
double bufferMA2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                 |
//+------------------------------------------------------------------+
int init()
{

//// 設定2條線的順序編號,畫法,對應陣列,
  SetIndexStyle( 0, DRAW_LINE );
  SetIndexBuffer( 0, bufferMA1 );
  SetIndexStyle( 1, DRAW_LINE );
  SetIndexBuffer( 1, bufferMA2 );
  return(0);
}
int deinit() {   return(0);}
int start()
{
double Buffer10,Buffer11,Buffer20,Buffer21,Buffer30, Buffer31;
int countedBars = IndicatorCounted();
  //---- check for possible errors
if ( countedBars < 0 )   { return(-1);   }
if ( countedBars > 0 ) { countedBars--; }
int   barsToCount = Bars - countedBars;
for ( int i = barsToCount; i >= 0; i-- )
{
  //// 開始計算
  Buffer20 = iMA(NULL,0,MovingFast,0,MaM,MaP, i) ;//MovingFast
  Buffer30 = iMA(NULL,0,MovingSlow,0,MaM,MaP, i) ;//MovingSlow
  Buffer21 = iMA(NULL,0,MovingFast,0,MaM,MaP, i+range1) ;
  Buffer31 = iMA(NULL,0,MovingSlow02,0,MaM,MaP, i+range2) ;
  //賦值給陣列以便畫線,使用Point使得坐標以點為單位,保證本指標對不同貨幣的一致y軸單位和視覺效果
  bufferMA1[i] = MathRound((Buffer20-Buffer21)/Point);
  bufferMA2[i] = MathRound((Buffer30-Buffer31)/Point);
}
return(0);
}
上面把兩個MA的差值畫在獨立視窗,當然若把差值再加上一個MA,就可以畫在價格視窗。
MA及其各種變化是最常用的指標基礎。MA一般常用來替代價格本身 再做進一步計算。

如改
#property indicator_chart_window
......
  Buffer10 = iMA(NULL,0,MovingFast*6,0,MaM,MaP, i)
  bufferMA1 = MathRound(Buffer20-Buffer21)+Buffer10 ;
  bufferMA2 = MathRound(Buffer30-Buffer31)+Buffer10 ;
.........

就可以把它們跌加到價格上畫了。

你隻需修改Buffer10 ,Buffer20, Buffer21 Buffer30, Buffer31為你需要的,在考慮一下資料範圍坐標問題,你可以畫任意的指標了。

使用timeframes參數可獲得其它時間週期的資料。
使用Symbol( ) 可獲得目前貨幣對的名稱。
使用Point可獲得目前貨幣對的點值。

MT寫程式入門教學(3)----設計開發指標和自動交易係統的注意事項(個人觀點,僅供參考)

一、 指標的本質和用途:

交易的本質,最基本的交易是一對買賣(有些交易商運行多次部分平倉,有些運行交易間關聯聯如一個平倉是另一個開倉的條件等),利用交易生存期間的價格變化贏利或虧損,可以看出,一個基本的交易有五個要素(1)倉位大小,(2)建倉價格,(3)平倉價格,(4)開倉時間,(5)平倉時間。基本的交易活動交易圍繞這5個要素展開,綜合考慮贏利和虧損的可能而進行,其中隻有(1)是自己可完全控製的,其它要素決策的依據訊息如市場價格、時間演化、其它(政治經濟氣候需求等)影響的相互複雜作用而不斷變化。對於你們這類大多數交易者,所能獲得的訊息隻有兩個方面(1)市場本身的價格和時間歷史,(2)公開安排的新聞發佈,一般均基於此進行交易(當然這裏不考慮個人的什麼靈感)。這兩個方面也就是技術分析和基本面分析的基礎。

指標之所以需要是因為市場價格和時間變動是不斷變化的過程,動態變化是其基本特徵,其中的複雜程度超出了人類的精確認知能力,難以精確的使用自然科學使用的那種基於重現和必然的分析方法。人基本上出於大腦對價格時間圖的形 像形狀的直覺感知進行判斷分析的。形 像形狀的直覺感知方法事實上是大腦對輪廓形狀、方向趨勢、快慢力度、長短高低、躍變累積等特徵的提取能力。鑒於此,所謂指標應需而生,目的就是提煉突出這些特徵。基礎訊息就是關聯的時間序列和價格序列,如搬移平均指標就是相鄰相近某數量價格數值的權重加和平均,其中使用的數值就是價格因素的貢獻,價格數值的數目或是說對應的時間坐標就是時間因素,這樣用一種數學方法處理選取的價格因素和時間因素得到一個或一係列新的數值,畫出圖得到新的形 像以說明人獲得跟明確清晰的感覺。傳統上時間訊息被當作簡單的等間隔整數序列來使用。隻有個別如週期分析較多考慮了時間因素。

無論什麼指標,實際都是借助或複雜或簡單的數學方法對輪廓形狀、方向趨勢、快慢力度、長短高低、躍變累積等特徵提取。認識到這一點,就再不會為那些激動人心的命名而激動(當然有些人喜歡激動,喜歡靈感,喜歡玄妙,而我自己,無奈由於長期的職業訓練,隻會用清晰的已知的數理化去表示或近似表示那模糊變動的東西,以實現可動作,喪失了以模糊表達模糊隻可意會不可言傳的能力了)。

二、指標開發:

借助或複雜或簡單的數學方法對輪廓形狀、方向趨勢、快慢力度、長短高低、躍變累積等特徵提取時,人們一般大多從模仿修改已有指標開始。開發中要注意(1)重點要表示那類特徵;(2)在單邊趨勢、突變、振蕩三類情況下的表現如何;(3)優點和缺點;(4)什麼情況下最有效,什麼情況下無效;(5)時間特徵如何。

三、交易係統

交易係統要解決很多問題,二不僅是寫個公式那麼簡單,因為它要考慮很多因素。(1)時間週期和貨幣種類;(2)對各種單邊趨勢、突變、振蕩的適合程度;(3)如何降低失效的損失;(4)如何改善市場成長為活的係統。

寫程式要考慮(1)判斷下單策略;(2)止贏止損追蹤策略;(3)倉位控製;(4)平倉策略;(5)動態調整策略。

事實上,即便是相同指標,不同人使用也是不同的結果。而且成功持續穩定贏利的實際交易往往需要多指標的綜合使用和判斷。

每個指標和交易係統都有自己的長處和不足,每個交易者還有自己的個性和交易經驗和習慣,它們的合適配合,才會增加贏利的可能,否則,任何指標或交易係統都毫無價值。

完全自動的交易係統可能還沒有,可能現實中能生存的是指標、交易係統和人的某種群組合,以相互補充和動態調整,以適應市場甚至市場的規律也是變化的這個基本點。

鑒於我國外匯交易正逐漸延伸,並且很可能不會是股市那要的發展過程,受朋友邀請,業餘指導一個小團隊的對外匯交易策略的研究設計工作,篩選出的有效指標將會在eBay和淘寶銷售,初步先研發MT的指標,適當時候推出基於際網路的訓練程式。我將毫無保留任何有效的技術,因為我明白,那些是工具,即使同樣的工具有不同人使用也會產生不同的結果,那種認為給大眾公開技術指標交易係統就會讓自己失敗的說法是好無根據證據的。市場實際是不斷變化甚至進化的,任何技術實際是表達表示它的某部分特徵而已,而實際交易是人綜合處理各種特徵的結果。

學習外匯交易賺錢
對於想學習外匯的人歡迎與我聯絡,我們所教的不僅是外匯,還包含了資金管理、K線教學、紀律的操盤及實盤解析,還提供10種交易輔助軟體,本站外匯新聞及黃金新聞是網路上所收集的,新聞內容僅供參考,想要了解實盤解析及價位提點歡迎與我聯絡,無論公司或個人認為本站存在侵權內容均可與本站聯絡,任何此類反饋訊息一經查明屬實後,將立即刪除!