程式交易教學

誠邀您參加全球知名外匯經紀商OANDA的自營交易(Prop Trader)

報名OANDA自營交易(Prop Trader),並通過我們的考核,您就可以使用OANDA提供的資金進行交易,獲得高達90%的交易利潤分成。



優化了挑戰塞交易規則
無最低交易天數限制等優化了挑戰賽的交易規則。

500,000美元交易資金
您可以使用最高500,000美元的資金進行交易。

豐富的交易商品
您可以交易包括外匯、黃金、原油、股票指數等多種商品。



運用MQL程式語言 在圖表中新增按鈕的方法

在圖表中新增按鈕

首先是繪製按鈕物件的方法。若從1開始製作此程式,將會耗費大量時間,因此可在MQL4相關參考中,複製範例編碼加以利用。MQL4相關參考可從選單的「幫助」→「MQL4幫助文件」來開啟。

開啟MQL4相關參考之後,點選畫面左方目錄的「Constants, Enumerations and Structures」→「Object Constants」→「Object Types」→「OBJ_BUTTON」,如此便將出現繪製按鈕所需的範例編碼;複製「Create the button」的編碼(從bool ButtonCreate開始的函數),並粘貼至任一處。

MQL4相關參考

此ButtonCreate函數將記載於init函數的位置。由於包含在預設值當中,因此不需做任何設定,即可在編譯之後製作圖表畫面左上方的按鈕。

ButtonCreate();

Button

此為初始狀態的按鈕。但一旦如此製作按鈕,下一次將無法進行變更;為了可在「變更參數時(REASON_PARAMETERS)」「編譯時(REASON_RECOMPILE)」「從圖表中刪除指標時(REASON_REMOVE)」中重設按鈕,將在OnDeinit函數中記載下列公式。

void OnDeinit(const int reason)

{

ObjectsDeleteAll(0, “3RCI_Sign_”);

if (reason == REASON_PARAMETERS || reason == REASON_RECOMPILE || reason == REASON_REMOVE)

ObjectDelete(“Button”);

}

如此一來,當變更參數等狀況時,按鈕便能夠一併消失。

變更參數

此處將設定新增按鈕的參數。

首先,第一個項目設定為「0」。此處是為了設定顯示在哪一份圖表中,而0則代表目前顯示的圖表。

按鈕的名稱設定為「Button」,接著選擇副窗圖表的編號。由於本次希望顯示於第一個副窗圖表中,因此設定為「1」;而第二個副窗圖表則設定為ChartWindowFind函數以利運作。透過此函數,能自動帶入指標位置的視窗編號。

最後將設定按鈕的座標。本次的X軸為「0」、Y軸則以「15」來稍微移至下方。

ButtonCreate(0, “Button”, ChartWindowFind(), 0, 15);

如此進行編譯,就能分辨出按鈕從圖表的左上方移動至副窗圖表中。

Button

另外,亦可透過變更參數的初始值來進行設定。舉例來說,若將「Button」的內容變更為「Sign」並進行編譯,按鈕的文字將變成Sign。

切換顯示/隱藏箭頭

接下來,將透過按鈕的操作,安裝在圖表中顯示/隱藏箭頭的切換功能。具體來說,即是在按下按鈕時(ON的狀態)顯示箭頭、返回時(OFF的狀態)隱藏箭頭。

首先,由於按鈕的預設狀態為關閉,因此可將參數的「state」部分變更為「true」;如此在繪製按鈕時,最初便會呈現按下的狀態。然後在for文法中,添加尚未按下按鈕的條件。由於是尚未按下的條件,因此使用否定的邏輯運算子「!」。

if (!ObjectGetInteger(0, “Button”, OBJPROP_STATE)) continue;

如此進行編譯,就能夠透過按鈕的操作(開啟/關閉)切換顯示/隱藏箭頭。但由於此程式為start函數,因此若未傳輸Tick就無法運作,即使按下按鈕也不會切換顯示/隱藏。此時就能夠活用「OnChartEvent」函數;其可在MQL4相關參考中,複製範例編碼加以利用。

本次使用的觸發點擊,是可在按下按鈕時執行處理的圖表事件。在MQL4相關參考的目錄中點選「Constants, Enumerations and Structures」→「Chart Constants」→「Types of Chart Events」,便會顯示一覽畫面;複製其中的「ChartEvent function」編碼,並貼上於start函數下方。

Types of Chart Events

由於實際使用的是CHARTEVENT_OBJECT_CLICK編碼,因此可刪除CHARTEVENT_CLICK編碼。因本次希望在按下按鈕時執行處理動作,故可在Print函數的前方新增以下if文法。

if (sparam == “Button”) {

如此進行編譯,即可確認按下按鈕時的運作。

接下來,將定義一項DrawArrow函數,並在其中書寫繪製符號的程式。

將EA自動程式交易應用於外匯與差價合約交易中

EA

我們以圖文形式詳細介紹有關EA自動程式交易的基本知識,以及在MT4/MT5平台上的安裝、參數設定方法、編碼等等內容。另外,對持有OANDA帳戶的客戶,還可以免費使用我們的獨有EA與指標工具。

誠邀您參加全球知名外匯經紀商OANDA的自營交易(Prop Trader)

報名OANDA自營交易(Prop Trader),並通過我們的考核,您就可以使用OANDA提供的資金進行交易,獲得高達90%的交易利潤分成。



優化了挑戰塞交易規則
無最低交易天數限制等優化了挑戰賽的交易規則。

500,000美元交易資金
您可以使用最高500,000美元的資金進行交易。

豐富的交易商品
您可以交易包括外匯、黃金、原油、股票指數等多種商品。