MT4編程參考四

    
        

            string Symbol()

        

            返回目前目前通貨的名稱

        

            示例:

        

            int total=OrdersTotal();

        

            for(int pos=0;pos<TOTAL;POS++)

        

            {

        

            // check selection result becouse order may be closed or deleted at this time!

        

            if(OrderSelect(pos, SELECT_BY_POS)==false) continue;

        

            if(OrderType()>OP_SELL || OrderSymbol()!=Symbol()) continue;

        

            // do some orders processing...

        

            }

        

            int UninitializeReason()

        

            取得程式末起始化的理由

        

            示例:

        

            // this is example

        

            int deinit()

        

            {

        

            switch(UninitializeReason())

        

            {

        

            case REASON_CHARTCLOSE:

        

            case REASON_REMOVE: CleanUp(); break; // clean up and free all expert's resources.

        

            case REASON_RECOMPILE:

        

            case REASON_CHARTCHANGE:

        

            case REASON_PARAMETERS:

        

            case REASON_ACCOUNT: StoreData(); break; // prepare to restart

        

            }

        

            //...

        

            }

        

             

        

            訂做指標函數 [Custom Indicator Functions]

        

            void IndicatorBuffers(int count)

        

            設定訂做指標快取數

        

             

        

            :: 輸入參數

        

            count - 快取數量

        

            示例:

        

            #property indicator_separate_window

        

            #property indicator_buffers 1

        

            #property indicator_color1 Silver

        

            //---- indicator parameters

        

            extern int FastEMA=12;

        

            extern int SlowEMA=26;

        

            extern int SignalSMA=9;

        

            //---- indicator buffers

        

            double ind_buffer1[];

        

            double ind_buffer2[];

        

            double ind_buffer3[];

        

            //+------------------------------------------------------------------+

        

            //| Custom indicator initialization function |

        

            //+------------------------------------------------------------------+

        

            int init()

        

            {

        

            //---- 2 additional buffers are used for counting.

        

            IndicatorBuffers(3);

        

            //---- drawing settings

        

            SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,3);

        

            SetIndexDrawBegin(0,SignalSMA);

        

            IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);

        

            //---- 3 indicator buffers mapping

        

            SetIndexBuffer(0,ind_buffer1);

        

            SetIndexBuffer(1,ind_buffer2);

        

            SetIndexBuffer(2,ind_buffer3);

        

            //---- name for DataWindow and indicator subwindow label

        

            IndicatorShortName("OsMA("+FastEMA+","+SlowEMA+","+SignalSMA+")");

        

            //---- initialization done

        

            return(0);

        

            }

        

            int IndicatorCounted()

        

            返回快取數量

        

            示例:

        

            int start()

        

            {

        

            int limit;

        

            int counted_bars=IndicatorCounted();

        

            //---- check for possible errors

        

            if(counted_bars<0) return(-1);

        

            //---- last counted bar will be recounted

        

            if(counted_bars>0) counted_bars--;

        

            limit=Bars-counted_bars;

        

            //---- main loop

        

            for(int i=0; i

        

            {

        

            //---- ma_shift set to 0 because SetIndexShift called abowe

        

            ExtBlueBuffer[i]=iMA(NULL,0,JawsPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);

        

            ExtRedBuffer[i]=iMA(NULL,0,TeethPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);

        

            ExtLimeBuffer[i]=iMA(NULL,0,LipsPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);

        

            }

        

            //---- done

        

            return(0);

        

            }

        

            void IndicatorDigits( int digits)

        

            設定指標精確度

        

            :: 輸入參數

        

            digits - 小數點後的小數位數

        

            示例:

        

            #property indicator_separate_window

        

            #property indicator_buffers 1

        

            #property indicator_color1 Silver

        

            //---- indicator parameters

        

            extern int FastEMA=12;

        

            extern int SlowEMA=26;

        

            extern int SignalSMA=9;

        

            //---- indicator buffers

        

            double ind_buffer1[];

        

            double ind_buffer2[];

        

            double ind_buffer3[];

        

            //+------------------------------------------------------------------+

        

            //| Custom indicator initialization function |

        

            //+------------------------------------------------------------------+

        

            int init()

        

            {

        

            //---- 2 additional buffers are used for counting.

        

            IndicatorBuffers(3);

        

            //---- drawing settings

        

            SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,3);

        

            SetIndexDrawBegin(0,SignalSMA);

        

            IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);

        

            //---- 3 indicator buffers mapping

        

            SetIndexBuffer(0,ind_buffer1);

        

            SetIndexBuffer(1,ind_buffer2);

        

            SetIndexBuffer(2,ind_buffer3);

        

            //---- name for DataWindow and indicator subwindow label

        

            IndicatorShortName("OsMA("+FastEMA+","+SlowEMA+","+SignalSMA+")");

        

            //---- initialization done

        

            return(0);

        

            }

        

            void IndicatorShortName( string name)

        

            設定指標的簡稱

        

            :: 輸入參數

        

            name - 新的簡稱

        

            示例:

        

            #property indicator_separate_window

        

            #property indicator_buffers 1

        

            #property indicator_color1 Silver

        

            //---- indicator parameters

        

            extern int FastEMA=12;

        

            extern int SlowEMA=26;

        

            extern int SignalSMA=9;

        

            //---- indicator buffers

        

            double ind_buffer1[];

        

            double ind_buffer2[];

        

            double ind_buffer3[];

        

            //+------------------------------------------------------------------+

        

            //| Custom indicator initialization function |

        

            //+------------------------------------------------------------------+

        

            int init()

        

            {

        

            //---- 2 additional buffers are used for counting.

        

            IndicatorBuffers(3);

        

            //---- drawing settings

        

            SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,3);

        

            SetIndexDrawBegin(0,SignalSMA);

        

            IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);

        

            //---- 3 indicator buffers mapping

        

            SetIndexBuffer(0,ind_buffer1);

        

            SetIndexBuffer(1,ind_buffer2);

        

            SetIndexBuffer(2,ind_buffer3);

        

            //---- name for DataWindow and indicator subwindow label

        

            IndicatorShortName("OsMA("+FastEMA+","+SlowEMA+","+SignalSMA+")");

        

            //---- initialization done

        

            return(0);

        

            }

        

            void SetIndexArrow( int index, int code)

        

            在指標上設定一個箭頭符號

        

            :: 輸入參數

        

            index - 第幾根指標線 0-7

        

            code - 符號的編碼,參照 Wingdings 字型

        

            示例:

        

            SetIndexArrow(0, 217);

        

            bool SetIndexBuffer( int index, double array[])

        

            設定指標線的快取陣列

        

            :: 輸入參數

        

            index - 第幾根指標線 0-7

        

            array[] - 快取的陣列

        

            示例: 

        

            double ExtBufferSilver[];

        

            int init()

        

            {

        

            SetIndexBuffer(0, ExtBufferSilver); // set buffer for first line

        

            // ...

        

            }

        

            void SetIndexDrawBegin( int index, int begin)

        

            設定劃線的開始點

        

            :: 輸入參數

        

            index - 第幾根指標線 0-7

        

            begin - 劃線的開始點

        

            示例:

        

            #property indicator_separate_window

        

            #property indicator_buffers 1

        

            #property indicator_color1 Silver

        

            //---- indicator parameters

        

            extern int FastEMA=12;

        

            extern int SlowEMA=26;

        

            extern int SignalSMA=9;

        

            //---- indicator buffers

        

            double ind_buffer1[];

        

            double ind_buffer2[];

        

            double ind_buffer3[];

        

            //+------------------------------------------------------------------+

        

            //| Custom indicator initialization function |

        

            //+------------------------------------------------------------------+

        

            int init()

        

            {

        

            //---- 2 additional buffers are used for counting.

        

            IndicatorBuffers(3);

        

            //---- drawing settings

        

            SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,3);

        

            SetIndexDrawBegin(0,SignalSMA);

        

            IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);

        

            //---- 3 indicator buffers mapping

        

            SetIndexBuffer(0,ind_buffer1);

        

            SetIndexBuffer(1,ind_buffer2);

        

            SetIndexBuffer(2,ind_buffer3);

        

            //---- name for DataWindow and indicator subwindow label

        

            IndicatorShortName("OsMA("+FastEMA+","+SlowEMA+","+SignalSMA+")");

        

            //---- initialization done

        

            return(0);

        

            }

        

            void SetIndexEmptyValue( int index, double value)

        

            設定劃線的空值,空值不劃在和出現在資料視窗

        

            :: 輸入參數

        

            index - 第幾根指標線 0-7

        

            value - 新的空值

        

            示例:

        

            SetIndexEmptyValue(6,0.0001);

        

            void SetIndexLabel( int index, string text)

        

            設定指標線的名稱

        

            :: 輸入參數

        

            index - 第幾根指標線 0-7

        

            text - 線的名稱,Null不會顯示在資料視窗中

        

            示例:

        

            //+------------------------------------------------------------------+

        

            //| Ichimoku Kinko Hyo initialization function |

        

            //+------------------------------------------------------------------+

        

            int init()

        

            {

        

            //----

        

            SetIndexStyle(0,DRAW_LINE);

        

            SetIndexBuffer(0,Tenkan_Buffer);

        

            SetIndexDrawBegin(0,Tenkan-1);

        

            SetIndexLabel(0,"Tenkan Sen");

        

            //----

        

            SetIndexStyle(1,DRAW_LINE);

        

            SetIndexBuffer(1,Kijun_Buffer);

        

            SetIndexDrawBegin(1,Kijun-1);

        

            SetIndexLabel(1,"Kijun Sen");

        

            //----

        

            a_begin=Kijun; if(a_begin SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_DOT);

        

            SetIndexBuffer(2,SpanA_Buffer);

        

            SetIndexDrawBegin(2,Kijun+a_begin-1);

        

            SetIndexShift(2,Kijun);

        

            //---- Up Kumo bounding line does not show in the DataWindow

        

            SetIndexLabel(2,NULL);

        

            SetIndexStyle(5,DRAW_LINE,STYLE_DOT);

        

            SetIndexBuffer(5,SpanA2_Buffer);

        

            SetIndexDrawBegin(5,Kijun+a_begin-1);

        

            SetIndexShift(5,Kijun);

        

            SetIndexLabel(5,"Senkou Span A");

        

            //----

        

            SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_DOT);

        

            SetIndexBuffer(3,SpanB_Buffer);

        

            SetIndexDrawBegin(3,Kijun+Senkou-1);

        

            SetIndexShift(3,Kijun);

        

            //---- Down Kumo bounding line does not show in the DataWindow

        

            SetIndexLabel(3,NULL);

        

            //----

        

            SetIndexStyle(6,DRAW_LINE,STYLE_DOT);

        

            SetIndexBuffer(6,SpanB2_Buffer);

        

            SetIndexDrawBegin(6,Kijun+Senkou-1);

        

            SetIndexShift(6,Kijun);

        

            SetIndexLabel(6,"Senkou Span B");

        

            //----

        

            SetIndexStyle(4,DRAW_LINE);

        

            SetIndexBuffer(4,Chinkou_Buffer);

        

            SetIndexShift(4,-Kijun);

        

            SetIndexLabel(4,"Chinkou Span");

        

            //----

        

            return(0);

        

            }

        

            void SetIndexShift( int index, int shift)

        

            設定指標線的位移數

        

            :: 輸入參數

        

            index - 第幾根指標線 0-7

        

            shift - 位移多少

        

            示例:

        

            //+------------------------------------------------------------------+

        

            //| Alligator initialization function |

        

            //+------------------------------------------------------------------+

        

            int init()

        

            {

        

            //---- line shifts when drawing

        

            SetIndexShift(0,JawsShift);

        

            SetIndexShift(1,TeethShift);

        

            SetIndexShift(2,LipsShift);

        

            //---- first positions skipped when drawing

        

            SetIndexDrawBegin(0,JawsShift+JawsPeriod);

        

            <P class=MsoNormal style="MARGIN

    學習外匯交易賺錢

趨勢線的使用圖

  趨勢線其實是道氏理論的精華,技術大師墨菲在懂得絕大多數的技術後,發現使用趨勢線跟簡單的均線,macd便可以很好的動作了。按理說,隻要掌握趨勢線,便可以讓你獲利豐厚的。但現在的問題是,假突破與趨勢出現的緩慢導致我們在使用上常出現問題。我這裏先講一些我個人在使用趨勢線的方法。

  趨勢線有三個作用。

  一是指示趨勢。這是最基本的,也是最基礎的。幾乎每個入行沒多久的朋友都明白。就是高低點間的聯接。表示一個趨勢的完成。其中,兩根趨勢線可以形成通道,三角形,楔形,喇叭形等;四根趨勢線可形成鑽石形態。這些大家都明白,暫不說。

  二是指示徘徊區,具體可看作是在一個通道中運行,但徘徊區大多窄小,在小時圖上一般10-50點之間的波幅,天圖則大約100-400點之間,而且常常不能突破,一旦突破就是一波行情。這種徘徊區類似箱體,但不能說是箱體,這是多空爭執區功能變數,通常表現在重大資料出來之前,節假日交易清淡等。隻要徘徊區突破,就是跟進的時候。這可以說是自利物默以來便是有效的。

  三是指示轉折。這裏分兩種轉折,一種是趨勢在空間上的轉折,一種是時空上的轉折。空間上的轉折就是趨勢線突破,這個好理解。但時空上的轉折需要重點跟大家講一下。先給大家看一個圖。

点击浏览下一页

  我慢慢跟你們解釋:A-L都是趨勢線,而a-g都是趨勢線的交叉點。A,B,C,G,K,L線都有指示趨勢作用的趨勢線,而D,E,F則是指示徘徊區作用較大的趨勢線。現在我們明顯可以看到的是g點明顯受趨勢線的壓製,這是趨勢線在空間上的轉折。我們重點不在這裏。在a,c,k,d,e,f這幾個點中,我們注意到了,BD線交叉恰好在a點,a點上面我們看到了什麼,一個高點的轉折;同時,k,d,e,f,c點等等顯示出它在時空上的威力,也就是說,這或多或少的提供給我們在這些交叉點中是否就存在轉折的時機。

  另外,k點因為多畫了,所以是錯誤的.可供參考.

  以上的a,c,k,d,e,f這幾個點就是趨勢線給我們的轉折。注意到的問題是,這些在古老的教科書上是沒講的.

  時空上轉折的可行性

  大家知道,在外匯市場中,最有威力的不是我們這些散戶,而是大戶手中的期權。期權一動就是幾百萬幾十億,但同時,期權是有時間限製的,一旦到期了,期權大多會撤掉。那麼我們假設,在a點的時間之前,有很多的大型期權在,這些期權都是看多的,在下跌的過程中沒有平掉,而是越積越多,或是說看空的期權逐漸平掉,那麼最後引起了一波行情,當這波行情一旦完了之後,那看多的就開始減頭寸了。也可以看作看空的期權在底下越積越多,在趨勢線B的作用下形成最後與市場達成一致。

  那根趨勢線有什麼關係呢?大家注意一下,我們可以看到B點是由前期高點低點聯接的,是下降趨勢,也就暗示出,下降具有一定的市場共識,於是,在期權到期的時候看多的便開始減少頭寸,或是轉向看空。而這樣,就給趨勢的轉折帶來了一定的可行性。而時間上也是這樣巧合。我認為最終還是人性使然。

  這隻是猜想,但確實給我們理解上帶來好處。

  趨勢線的畫法:主要是高低處聯接,但要注意,是處,不是點。也就是說需要多次確認趨勢。如此而已。

  轉折上的趨勢線畫法注意項目

  時空上轉折是我們這堂課的重點。所以我基本隻談這個。其注意事項有:

  一盡量不要使用最高(低)點連線,盡量使用多個點確認的趨勢線,這有利於判斷其正確的效果。

  二技術的事,沒有百分百的,要正確對待。更多時候我們需要別的指標或是形態來與之形成共振,我們要做把握大,勝算高的事。時空上的轉折我們要參考,但不能單一的使用。

學習外匯交易賺錢

輪中之輪的使用方法

  一、基本用法

  1) 對照輪中的數字,將遊標一選取所要判斷的,匯價的最低點或最高點。

  A、 上漲時遊標二逆時針旋轉,價位或點數將在45度、90度、120度處遇初級阻力,在180度處遇強阻力,在225度、270度處遇超強阻力,在315度、360度處遇特強阻力。

  B、 下跌時遊標二順時針旋轉,價位或點數將在45度、90度、120度處遇初級支撐,在180度處遇強支撐,在225度、270度處遇超強支撐,在315度、360度處遇特強支撐。

  2) 江恩理論輪中之輪要點:

  A、 當匯價突破或跌破一個阻力或支撐位時,將向下一個阻力或支撐位搬移。

  B、 輪中之輪的0度、90度、180度、270度;及45度、135度、225度、315度所構成的兩個正四方形處為阻力或支撐。另外,由0度、120度、240度所構成的正三角形處也為阻力或支撐。

  C、 一周分為24X15(度),暗含24節氣。價位或指數由內向外找,大數取內優先。

  註釋:原江恩理論書籍介紹,輪中之輪用於長週期判斷,一周天為360天(自然日),用於短週期判斷一周天為24小時(沒有說明是自然日還是交易日)

  二、實戰總結:

  1)一周天如按交易日,則大約為18個月。

  2)一周天可以是180天,每格(15度)為7.5天。

  3)一周天也可以是90天,每格(15度)為3.75天。

  4)一周天也可以是45天,每格(15度)為1.875天。

  5)一周天也可以是22.5天,每格(15度)為0.9375天或3.75交易小時。

  6)一周天也可以是11.25天,每格(15度)為0.46875天或1.875交易小時。

  7)最短的一周天可以是6天,每格(15度)為1交易小時。

  說明:江恩理論的精髓——市場在重要的時間到達重要的位置(匯價)時,市場的趨勢將發生逆轉。

  幾點經驗:

  A. 一周天的重要時間為,到達上面第一條中的所述的角度位置所需的時間。週期的長短按第二條中選取。

  B. 當選用的長週期和短週期所指向的位置,為同一位置時,該點即為市場的最為重要的位置。時間大致為長、短週期重疊的時間位置。

  C. 若果匯價在重要的時間內超越了,一個重要的位置。那麼,它將向下一個重要的位置搬移。

  D. 若果匯價在重要的時間內沒有超越,那個重要的位置。那麼,它將回頭尋找它前一個重要的位置。

學習外匯交易賺錢

匯市中周線圖和日線圖作用

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

  順勢做單是外匯市場製勝的秘訣。提供趨勢和重大阻力點,是日線圖最重要的功能。此外,

  每一根日線圖直線的 像征意義:通常情況下,開市價很低而收市價接近全天最高價,是買入信號;收市價和開市價持平,是市場有所等待、可能會轉折的信號;而開市價較低,價位上漲後,又退回到開市價以下收市,是明顯的下跌信號。需要注意的是,這些信號須和其他分析手段合併使用,準確率才更高。

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

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

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

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

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

學習外匯交易賺錢

MT4編程參考三

    
        

            函數[Function]

        

            函數定義

        

            一個函數是由返回值、輸入參數、內嵌動作所群組成的。

        

            示例: 

        

            double // 返回值類型

        

            linfunc (double x, double a, double b) // 函數名和輸入參數

        

            {

        

            // 內嵌的動作

        

            return (a*x + b); // 返回值

        

            }

        

            若果沒有返回值那麼返回值的類型可以寫為void

        

            示例: 

        

            void errmesg(string s)

        

            {

        

            Print("error: "+s);

        

            }

        

            函數呼叫

        

            function_name (x1,x2,...,xn)

        

            示例:

        

            int somefunc()

        

            {

        

            double a=linfunc(0.3, 10.5, 8);

        

            }

        

            double linfunc(double x, double a, double b)

        

            {

        

            return (a*x + b);

        

            }

        

            特殊函數init()、deinit()和start()

        

            init()在載入時呼叫,可以用此函數在開始訂做指標或是自動交易之前做起始化動作。

        

            deinit()在卸載時呼叫,可以用此函數在去處訂做指標或是自動交易之前做起始化動作。 

        

            start()當資料變動時觸發,對於訂做指標或是自動交易的寫程式主要依靠此函數進行。

        

            變量[Variables]

        

            定義變量

        

            定義基本類型

        

            基本類型內含

        

            string - 字元串型;

        

            int - 整數型;

        

            double - 雙精度浮點數型;

        

            bool - 布爾型

        

            示例:

        

            string MessageBox;

        

            int Orders;

        

            double SymbolPrice;

        

            bool bLog;

        

            定義附加類型 

        

            附加類型內含

        

            datetime - 時間型,使用無符號整型數字存儲,是1970.1.1 0:0:0開始的秒數

        

            color - 彩色,使用三色的整型數字編碼而成

        

            示例:

        

            extern datetime tBegin_Data = D'2004.01.01 00:00';

        

            extern color cModify_Color = C'0x44,0xB9,0xE6';

        

            定義陣列類型

        

            示例:

        

            int a[50]; //一個一維由五十個int群組成的陣列

        

            double m[7][50]; //一個兩維由7x50個double群組成的陣列

        

            內定變量定義

        

            內定變量顧名思義是在內定使用的,可以理解為在目前嵌套內所使用的變量。

        

            函數參數定義

        

            示例:

        

            void func(int x, double y, bool z)

        

            {

        

            ...

        

            }

        

            函數的參數內的變量隻能在函數內才生效,在函數外無法使用,而且在函數內對變量進行的修改在函數外無法生效。

        

            呼叫函數示例:

        

            func(123, 0.5);

        

            若果有需要在變量傳入由參數傳入函數內動作後保留修改在函數外生效的情況的話,可以在參數定義的類型名稱後加上修飾符(&)。

        

            示例:

        

            void func(int& x, double& y, double& z[])

        

            {

        

            ...

        

            }

        

            靜態變量定義

        

            在資料類型前加上static就可以將變量定義成靜態變量

        

            示例:

        

            {

        

            static int flag

        

            }全局變量定義

        

            全局變量是指在整個程式中都能夠呼叫的變量,隻需將變量定義卸載所有嵌套之外即可。

        

            示例:

        

            int Global_flag;

        

            int start()

        

            {

        

            ...

        

            }

        

            附加變量定義

        

            附加變量可以容許由使用者自己輸入。

        

            示例:

        

            extern double InputParameter1 = 1.0;

        

            int init()

        

            {

        

             

        

            ...

        

             

        

            }

        

             起始化變量

        

            變量必須經由起始化才可以使用。

        

            基本類型

        

            示例:

        

            int mt = 1; // integer 起始化

        

            // double 起始化

        

            double p = MarketInfo(Symbol(),MODE_POINT);

        

            // string 起始化

        

            string s = "hello";

        

            陣列類型

        

            示例:

        

            int mta[6] = {1,4,9,16,25,36};

        

            外部函數引用

        

            示例:

        

            #import "user32.dll" 

        

            int MessageBoxA(int hWnd ,string szText,

        

            string szCaption,int nType);

        

            int SendMessageA(int hWnd,int Msg,int wParam,int lParam);

        

            #import "lib.ex4"

        

            double round(double value);

        

            #import

        

            預處理程式[Preprocessor]

        

            定義常量

        

            #define identifier_value

        

            常量可以是任何類型的,常量在程式中不可變更。

        

            示例:

        

            #define ABC 100

        

            #define PI 0.314

        

            #define COMPANY_NAME "MetaQuotes Software Corp."

        

            編譯參數定義

        

            #property identifier_value

        

            示例:

        

            #property link http://www.metaquotes.net

        

            #property copyright "MetaQuotes Software Corp."

        

            #property stacksize 1024

        

            以下是所有的參數名稱:

        

            參數名稱 

        

             類型

        

             說明

        

            link

        

             string

        

             設定一個連結到公司網站

        

            copyright

        

             string

        

              公司名稱

        

            stacksize

        

             int

        

             堆堆疊大小

        

            indicator_chart_window

        

             void

        

              顯示在走勢圖視窗

        

            indicator_separate_window

        

             void

        

             顯示在新區塊

        

            indicator_buffers

        

             int

        

            顯示快取最高8

        

            indicator_minimum

        

             int

        

            圖形區間最低點 

        

            indicator_maximum

        

             int

        

             圖形區間最高點

        

            indicator_colorN

        

             color

        

             第N根線的彩色,最高8根線

        

            indicator_levelN

        

             double

        

             predefined level N for separate window custom indicator

        

            show_confirm

        

             void

        

             當程式執行之前是否經由確認

        

            show_inputs

        

             void

        

              before script run its property sheet appears; disables show_confirm property

        

            內嵌檔案

        

            #include <file_name>

        

            示例:

        

            #include <win32.h>

        

            #include "file_name"

        

            示例:

        

            #include "mylib.h"

        

            引入函數或其他模組

        

            #import "file_name"

        

            func1();

        

            func2();

        

            #import

        

            示例:

        

            #import "user32.dll"

        

            int MessageBoxA(int hWnd,string lpText,string lpCaption,

        

            int uType);

        

            int MessageBoxExA(int hWnd,string lpText,string lpCaption,

        

            int uType,int wLanguageId); 

        

            #import "melib.ex4"

        

            #import "gdi32.dll"

        

            int GetDC(int hWnd);

        

            int ReleaseDC(int hWnd,int hDC);

        

            #import

        

            賬戶訊息[Account Information]

        

            double AccountBalance()

        

            返回賬戶餘額

        

            示例:

        

            Print("Account balance = ",AccountBalance());

        

            double AccountCredit()

        

            返回賬戶信用點數

        

            示例:

        

            Print("Account number ", AccountCredit());

        

            string AccountCompany() 

        

            返回賬戶公司名

        

             示例:

        

            Print("Account company name ", AccountCompany());

        

            string AccountCurrency()

        

            返回賬戶所用的通貨名稱

        

            示例:

        

            Print("account currency is ", AccountCurrency());

        

            double AccountEquity()

        

            返回資產淨值

        

            示例:

        

            Print("Account equity = ",AccountEquity());

        

            double AccountFreeMargin()

        

            Returns free margin value of the current account.

        

            示例:

        

            Print("Account free margin = ",AccountFreeMargin());

    學習外匯交易賺錢

道氏理論入門(一)

浪潮、波浪及漣漪

  一位海濱的居住者在有海潮來臨時,也須將採用讓一個來臨的波浪推動在海濱中一隻木樁到其最高點的方法來確定海潮的方向。然後,若果下一個波浪推動海水高出其木樁時,他就可以知道潮水是在上漲。若果他把木樁改換為每一波浪的最高水位記號,最終將會出現一個波浪在其上一記號處停止並開始回撤到低於這一水平,然後他就可以知道潮水已經回轉了,落潮開始了。這樣,事實上就是道氏理論定義的股市趨勢。

  浪潮、波浪及漣漪的比較在道氏理論最早的時期就已開始了。並且更有可能,大海的運動對道氏理論也有一定的啟發。但是,這一比喻也不能走得太遠,股市中的浪潮與波浪遠不如大海的浪潮與波浪那樣規則。用以預測每一次浪潮及海流的準確時間的時間表可以提前製作,但道氏理論卻不能對股市給出一個時間表。以後我們還將回到這一比喻的某些地方,但現在我們將接著討論道氏理論其餘的要點與規則:

  1.平均指數內含消化一切(除了上帝“上帝的行為”)——因為他們反映了無數投資者的綜合市場行為,內含那些有遠見力的以及訊息最靈通的人士,平均指數在其每日的波動過程中內含消化了各種已知的可預見的事情,以及各種可能影響公司債券供給和需求關係的情況。甚至於那些天災人禍,但其發生以後就被迅速消化,並內含其可能的後果。

  2.三種趨勢——“市場”一詞意味著股票價格在總體上以趨勢演進,而其最重要的是主要趨勢,即基本趨勢。它們是大規模地上下運動,通常持續幾年或更多的時間,並導致股價增值或貶值20%以上,基本趨勢在其演進過程中穿插著與其方向相反的次等趨勢——當基本趨勢暫時推進過頭時所發生的回撤或調整(次等趨勢與被間斷的基本趨勢一同被劃為中等趨勢——這是接下來的討論中用到的一個很有用的術語)。最後,次等趨勢由小趨勢或是每一的波動群組成,而這並不是十分重要的。

  3.基本趨勢——如前所述,基本趨勢是大規模的、中級以上的上下運動,通常(但非必然)持續1年或有可能數年之久。隻要每一個後續價位彈升比前一個彈升達到更高的水平,而每一個次等回撤的低點(即價格從上至下的趨勢反轉)均比上一個回撤高,這一基本趨勢就是上升趨勢,這就稱為牛市。相反,每一中等下跌,都將價格壓到逐漸低地水平,這一基本趨勢則是下降趨勢,並被稱之為熊市(這些術語,牛市與熊市。經常在一些非嚴格場合分別用與各種上下運動,但在本書中,我們僅把它們用在衝道氏理論出發的主要或基本趨勢的情形)。

  標準情況下——至少理論上是這樣——基本趨勢是三種趨勢中真正長線投資者所關注的唯一趨勢。他的目的是盡可能在一個牛市中買入——隻要一旦他確定它已經啟動——然後一直持有直到(且隻有到)很明顯它已經終止而一個熊市已經開始的時候。他認為,他可以很保險地忽視各種次等的回撤及小幅波動。對於交易人士來說,他完全有可能關注次等趨勢,在本書後面的章節中將會發現可能因此而獲利。

  4.次等趨勢——這是價格在其沿著基本趨勢方面演進中產生的重要回撤。它們可以是在一個牛市中發生的中等規模的下跌或“回呼”,也可以是在一個熊市中發生的中等規模的上漲或“反彈”。標準情況下,它們持續3周時間到數月不等,但很少再長。在一般情況下,價格回撤到沿基本趨勢方面推進幅度的1/3到2/3。即是說,在一個牛市中,在次等回呼到來之前,工業指數可能穩步上漲30點,其間伴隨著一些短暫的或很小的停頓,這樣在一輪新的中等規模上漲開始之前,這一次等回呼可望出現一個10~20的下跌。然而,我們必須注意,這個1/3~2/3並不是牢不可破的,它僅僅是一種可能性,大多數次等趨勢都在這裏範圍之間,許多在靠近半途就停止了,即回撤到前面基本趨勢推進幅度的50%。很少有少於1/3的情況,但有些幾乎完全看不出回呼。

  從而,我們有兩個標準用以辨識次等趨勢。任何與基本趨勢方向相反、持續至少三個星期並且回撤上一個沿基本趨勢方向上價格推進淨距離(從上一個次等趨勢的末端到本次開始,略去小幅波動部分)至少1/3幅度的價格運動,即可認為是中等規模的次等趨勢。儘管這樣,次等趨勢經常令人捉摸不透。對其辨識、確定其開始並進一步發展的時間等,對道氏理論的追隨者來說都是最困難的事情。對此我們還將在以後加以討論。

  5.小趨勢——它們是非常簡短的(很少持續三周——一般小於6天)價格波動,從道氏理論的角度來看,其本身並無多大的意義,但它們合起來構成中等趨勢。一般的但並非全是如此,一個中等規模的價格運動,無論是次等趨勢還是一個次等趨勢之間的基本趨勢,由一連串的三個或更多的明顯地小波浪群組成。從這些每日的波動中作出的一些推論經常很容易引起誤導。小趨勢是上述第三種趨勢中唯一可被人為操縱的趨勢(事實上,儘管這仍然值得懷疑,甚至在目前的情況下他們可能為有意操縱到很重要的程度)。基本趨勢與次等趨勢不能被操縱。若果這樣做的話美國財政部的財源都會受到限製。

  在我們接下去討論下一個要點之前,花一點時間進一步說明上述三種趨勢,我們用大海的運動與股市的運動進行對比。主要是趨勢就像浪潮。我們可以把一個牛市比為一個湧來的浪潮,它將水面一一步地向海岸推動,直到最後達一個水位高點並開始反轉。接下來的則是落潮或退潮,可以比做熊市。但是,無論是漲潮還是退潮的時候,波浪都一直在湧動,不斷衝擊海岸並撤退。

  在漲潮過程中,每一個連續的波浪都較其前浪達到海岸更高的水平,而其回撤時,都不比其前次回撤低。在落潮過程中,每一個連續的波浪上漲時均比其前浪達到的水位低一點,而在其回撤均比其前浪離開海岸更遠一點。這些波浪就是中等趨勢——基本的或次要的則取決於其運動與海潮的方向相同還是相反。於此同時,海面一直不斷地被小波浪、漣漪及和風衝擊著,它們有與波浪趨勢相同,有的相反,有的則橫印穿行——這好市場中的小趨勢,每日都在進行著的無關重要著小趨勢。

學習外匯交易賺錢

如何在技術圖形上判斷支撐位和阻力位

本文將著重解決幾位讀者經常遇到的問題:怎樣在技術圖形上判斷支撐位和阻力位?

在判斷支撐位和阻力位時,我常用的辦法--我認為是最準確的辦法--就是觀察交易品種K線圖的歷史價格,最高點是多少?最低點是多少?以及收碟價是多少?這些往往可以說明問題。這種判斷支撐位和阻力位的辦法在任何時候的K線圖上都可以變現(Balox):日線圖、周線圖和月線圖。多數情況下,高價或低價會集中在一定的區功能變數,而不是一個點;假如是這樣,我會認為該區功能變數是"支撐區"或"阻力區"。需要指出的是,該區間不能太大,否則對投資者沒有參考意義。

期貨市場中的頂部或底部往往構成阻力位或支撐位;技術圖形中未補的缺口也形成有效的支撐位或阻力位;均線也有助於投資者判斷支撐位和阻力位;觀察趨勢線的走勢也可以確定市場未來的支撐位和阻力位。

需要注意的是,當主要支撐位被擊穿之後,該支撐位便轉換成了主要的阻力位;當主要的阻力位被突破之後,該阻力位便成了主要的支撐位。

找支撐位和阻力位的別一個辦法就是觀察價格在運行過程中的"回撤"--即同目前走勢相反的價格波動,這種波動也稱"調整"或"修正"。我們拿一輪上升行情來舉例:該行情從100點上漲到200點,然後價格轉身向下來一個回撤,至150點,此後繼續上攻,將價格進一步推高。150點便是行情從100點到200點之間50%的"回撤"。150點證明支撐強悍,換言之,因為價格在回落50%之後,再次回轉上攻,50%的回撤證明支撐有效。下跌行情中出現的上漲"修正"也是一個道理。

一些回撤百分比對於判斷支撐和阻力位具有較強的現實意義,如33%,50%和67%。另外還有兩個數字叫費波納奇數(FIBONACCI是數學家):38%和62%。這五群組數字對於判斷支撐位和阻力位很有說明作用。多數好的交易係統軟體都設有這些百分比回撤工具。隻要你用滑鼠點擊價格走勢中K線圖上的起始點,然後再點擊價格的高點,技術圖形上就會自動顯示百分比回撤數。

再介紹一種判斷支撐位和阻力位的辦法,就是以某一價位為基準點,採用幾何的方法來測算這兩個位置。江恩(死於1955年),這位在股票和商品期貨交易所有著傳奇經歷的人物,曾經積極倡導這種辦法。他還採用上文提到的五個數字來計算他的幾何角度(balox)。一些較先進的交易係統有"GANN FANS"可以說明你測算這種角度。

最後一點,就是利用心理價位來確定支撐位和阻力位,這些數字往往是整數位,在市場中,這種辦法屢試不爽。如原油價格的心理價位是20美金/桶,或25美金/桶,或是是30美金/桶;大豆的心理價位是5美金、6美金或是是4美金;棉花是50美分,白銀是5美金。

學習外匯交易賺錢

波浪的形態劃分

如何來劃分上升五浪和下跌三浪呢?一般說來,八個浪各有不同的表現和特性:

第1浪:(1)幾乎半數以上的第1浪,是屬於營造底部型態的第一部分,第1浪是迴圈的開始,由於這段行情的上升出現在空頭市場跌勢後的反彈和反轉,買方力量並不強大,加上空頭繼續存在賣壓,因此,在此類第1浪上升之後出現第2浪調整回落時,其回檔的幅度往往很深;(2)另外半數的第1浪,出現在長期碟整完成之後,在這類第1浪中,其行情上升幅度較大,經驗看來,第1浪的漲幅通常是5浪中最短的行情。

第2浪:這一浪是下跌浪,由於市場人士誤以為熊市尚未結束,其調整下跌的幅度相當大,幾乎吃掉第1浪的升幅,當行情在此浪中跌至接近底部(第1浪起點)時,市場出現惜售心理,拋售壓力逐漸衰竭,成交量也逐漸拉遠時,第2浪調整才會宣告結束,在此浪中經常出現圖表中的轉向型態,如頭底、雙底等。

第3浪:第3浪的漲勢往往是最大,最有爆發力的上升浪,這段行情持續的時間與幅度,經常是最長的,市場投資者信心恢複,成交量大幅上升,常出現傳統圖表中的突破訊號,例如裂口跳升等,這段行情走勢非常激烈,一些圖形上的關卡,非常輕易地被穿破,尤其在突破第1浪的高點時,是最強烈的買進訊號,由於第3浪漲勢激烈,經常出現"延長波浪"的現 像。

第4浪:第4浪是行情大幅勁升後調整浪,通常以較複雜的型態出現,經常出現"傾斜三角形"的走勢,但第4浪的底點不會低於第1浪的頂點。

第5浪:在匯市中第5浪的漲勢通常小於第3浪,且經常出現失敗的情況。

A浪:在A浪中,市場投資人士大多數認為上升行情尚未逆轉,此時僅為一個暫時的回檔現 像,實際上,A浪的下跌,在第5浪中通常已有警示訊號,如成交量與價格走勢背離或技術指標上的背離等,但由於此時市場仍較為樂觀,A浪有時出現平勢調整或是"之"字型態運行。

第B浪:B浪表現經常是成交量不大,一般而言是多頭的逃命線,然而由於是一段上升行情,很容易讓投資者誤以為是另一波段的漲勢,形成"多頭陷阱",許多人士在此期慘遭套牢。

第C浪:是一段破壞力較強的下跌浪,跌勢較為強悍,跌幅大,持續的時間較長久,而且出現全面性下跌。

從以上看來,波浪理論似乎頗為簡單和容易運用,實際上,由於其每一個上升/下跌的完整過程中均包括有一個八浪迴圈,大迴圈中有小迴圈,小迴圈中有更小的迴圈,即大浪中有小浪,小浪中有細浪,因此,使數浪變得相當繁雜和難於把握,再加上其推劫浪和調整浪經常出現延伸浪等變化型態和複雜型態,使得對浪的準確劃分更加難以界定,這兩點構成了波浪理論實際運用的最大難點。

學習外匯交易賺錢