在外匯交易中,市場(chǎng)的信息瞬息萬(wàn)變。根據(jù)市場(chǎng)的變化,我們往往要及時(shí)跟進(jìn)修改自己交易的策略。當(dāng)然這是建立在已有的基礎(chǔ)上。比如EA在市場(chǎng)符合一定的條件之后開(kāi)了一個(gè)單子并設(shè)定了止盈止損。那么如果中途根據(jù)市場(chǎng)的改變而想相應(yīng)地改變止盈止損的設(shè)置,就有會(huì)用到OrderModify() 函數(shù)。
它的完整構(gòu)成為: bool OrderModify(int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE)
這個(gè)函數(shù)可以修改即時(shí)單和掛單的參數(shù)值。 當(dāng)函數(shù)返回TRUE時(shí),表明修改已經(jīng)成功。如果返回的值為FALSE,則說(shuō)明修改失敗。
注意:只有掛單才能修改開(kāi)倉(cāng)價(jià)位和單子的有效時(shí)間。
一個(gè)標(biāo)準(zhǔn)的市場(chǎng)單包含止贏和止損價(jià)位以用來(lái)保護(hù)盈利或者控制損失。如果不用EA,用戶也可以隨時(shí)改變單子的止損。那就是通過(guò)使用平臺(tái)提供的追蹤止損這個(gè)功能。當(dāng)然,OrderModify()函數(shù)很大地拓展了改單的功能。它不僅可以改變止損止盈價(jià)位,還可以取消他們。但是要注意的是市場(chǎng)單修改時(shí)要有范圍的限制。這個(gè)限制就是止損價(jià)位和現(xiàn)價(jià)要有一定的距離。這個(gè)最小的差價(jià)是交易商設(shè)定的??赡苊總€(gè)交易商會(huì)有不一樣。如果用這個(gè)函數(shù)設(shè)置了一個(gè)比交易商規(guī)定的最小止損差價(jià)還要小的差價(jià),那么這個(gè)請(qǐng)求將會(huì)被客戶終端拒絕,導(dǎo)致修改失敗。
修改掛單和市場(chǎng)單有一點(diǎn)區(qū)別。就是掛單的價(jià)位也是可以修改的。但是要注意的是,如果只修改進(jìn)場(chǎng)價(jià)位而不改動(dòng)止盈止損價(jià)位的話,有可能會(huì)造成上面提到的小于交易商規(guī)定的最小差價(jià)的問(wèn)題。如果這種現(xiàn)象發(fā)生,那么命令的修改也將失敗。 |
|