亚洲av中文无码乱人伦在线视色,网曝黑料国产吃瓜,无码国产精品久久一区免费,亚洲av在在线观看,亚洲av国产午夜精品一区二区

「581獨(dú)家」MT4開(kāi)發(fā)技巧 利用腳本批量修改止盈止損(mt4交易怎么設(shè)置止損)

交易者在交易過(guò)程中都會(huì)給訂單設(shè)置止盈止損價(jià)格,但是如果下了很多單,每個(gè)訂單右鍵點(diǎn)修改,再一個(gè)一個(gè)的設(shè)置止盈止損就太麻煩了,那么我們就自己來(lái)做個(gè)小程序替我們批量修改吧。

我們都知道MT4有一種功能叫腳本,它不同于EA程序。腳本程序只運(yùn)行一次,執(zhí)行完就退出了。這種程序一般都是來(lái)做一些輔助的功能,比如批量平倉(cāng)等。我們就利用這個(gè)來(lái)給訂單批量修改。

首先我們的腳本程序要可以做一些簡(jiǎn)單的過(guò)濾,因?yàn)樵趫?chǎng)單比較多,有些單并不需要修改。那么我們可以根據(jù)訂單的交易品種、交易方向、注釋和Magic來(lái)過(guò)濾訂單,只有符合條件的才會(huì)進(jìn)行修改。腳本的參數(shù)部分代碼如下:

input double tp = 0;//止盈價(jià)

input double sl = 0;//止損價(jià)

input string symbol = "";//品種

input int type = -1;//0為多單1為空單-1為全部

input string comment = "";//注釋

input int magic = 0;//Magic

這里列出來(lái)所有的過(guò)濾條件,所有變量的默認(rèn)值為不做過(guò)濾。 其中下單方向參數(shù)可以做成更人性化的下拉菜單形式,詳細(xì)請(qǐng)看我們的另外一篇文章(鏈接到《MT4開(kāi)發(fā)技巧,更方便的EA參數(shù)》這篇文章,如果那篇文章沒(méi)發(fā)過(guò)就忽略此段文字)

下面是程序部分,我們分別過(guò)濾下這幾個(gè)條件,代碼如下:

for(int i=OrdersTotal()-1;i >= 0;i–)

{

if(OrderSelect(i,SELECT_BY_POS) == false)

{

continue;

}

double temp_tp = tp;

double temp_sl = sl;

//如果給的價(jià)格是0則是去除止盈止損價(jià)格,如果是負(fù)數(shù)則不修改止盈止損,如果大于0才會(huì)修改止盈止損

if(tp < 0)

temp_tp = OrderTakeProfit();

if(sl < 0)

temp_sl = OrderStopLoss();

//Magic過(guò)濾

if((magic == 0) || (magic != 0 && OrderMagicNumber() == magic))

{

//注釋過(guò)濾

if((comment == "") || (comment != "" && OrderComment() == comment))

{

//品種過(guò)濾

if((symbol == "") || (symbol != "" && OrderSymbol() == symbol))

{

if(OrderType() == OP_BUY && type != 1)//方向過(guò)濾

{

bool res = OrderModify(OrderTicket(),OrderOpenPrice(),temp_sl,temp_tp,0);

}

if(OrderType() == OP_SELL && type != 0)//方向過(guò)濾

{

bool res = OrderModify(OrderTicket(),OrderOpenPrice(),temp_sl,temp_tp,0);

}

}

}

}

}

代碼比較長(zhǎng),因?yàn)榕袛嗟倪壿嫳容^多,我們既然要開(kāi)發(fā)一個(gè)輔助功能,那么就讓這個(gè)功能越強(qiáng)大越好。因此,我們做了如下的判斷:

(1)希望我們的腳本既可以設(shè)置止盈止損價(jià)格,又可以去除止盈止損,因此判斷下輸入?yún)?shù),假如tp變量輸入的是負(fù)數(shù),那么就不做修改。如果tp變量的輸入了一個(gè)0,代表要去掉這些訂單的止盈價(jià)格。只有當(dāng)tp變量輸入的是正值時(shí)才會(huì)根據(jù)這個(gè)值來(lái)設(shè)置止盈。

(2)過(guò)濾Magic,如果設(shè)置的是0則不做限制,如果是非0則要判斷下,只有和magic參數(shù)輸入相同的訂單才會(huì)去修改。

(3)過(guò)濾注釋?zhuān)蚆agic的邏輯相同,只有輸入了注釋才會(huì)對(duì)它進(jìn)行過(guò)濾判斷。

(4)過(guò)濾品種,也是相同的邏輯,輸入了指定的品種名稱(chēng)后就會(huì)對(duì)不是該品種的訂單做出過(guò)濾。

(5)過(guò)濾做單方向,此處的判斷和上面的有所不同,以多單為例:當(dāng)判斷訂單為多單時(shí),輸入的方向參數(shù)卻是1,既只有空單才會(huì)被修改,那么所有的多單就被過(guò)濾掉了。只有判斷為多單,并且輸入的參數(shù)不為1時(shí)才可以修改該訂單。

通過(guò)上面的代碼,我們做了一個(gè)非常好用的一鍵修改訂單功能,但是別高興的太早了?,F(xiàn)在請(qǐng)運(yùn)行下這個(gè)腳本程序,發(fā)現(xiàn)并不能輸入?yún)?shù)而是直接運(yùn)行了,這是怎么回事呢?

在MT4的腳本開(kāi)發(fā)中,默認(rèn)情況下腳本的運(yùn)行不會(huì)彈出參數(shù)對(duì)話(huà)框,而是直接運(yùn)行,這是為了快捷運(yùn)行而考慮的。那么我們需要讓參數(shù)框出現(xiàn)則需要在程序里加入這樣一段代碼即可:

#property show_inputs

這句話(huà)的意思就是告訴MT4,我需要這個(gè)腳本彈出對(duì)話(huà)框?,F(xiàn)在再運(yùn)行一次腳本,發(fā)現(xiàn)已經(jīng)可以出現(xiàn)了。如下圖

「581獨(dú)家」MT4開(kāi)發(fā)技巧 利用腳本批量修改止盈止損(mt4交易怎么設(shè)置止損)

在MT4開(kāi)發(fā)中,其實(shí)有很多的細(xì)節(jié)我們需要注意。小編希望通過(guò)本篇文章,能夠讓大家少走彎路,順利開(kāi)發(fā)出自己的交易系統(tǒng)。

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線(xiàn)咨詢(xún)
返回頂部