//+----------------------------------------------------------------------------+ //| Возвращает тикет ближайшей к рынку позиции по цене открытия или 0 | //| Параметры: | //| sym - наименование инструмента ("" - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ int TicketNearPosOnOpen(string sym="", int op=-1, int mn=-1) { double di=10000, pp; int i, k=OrdersTotal(), t=0;
if (sym=="") sym=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==sym && (op<0 || OrderType()==op)) { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (mn<0 || OrderMagicNumber()==mn) { if (OrderType()==OP_BUY) pp=MarketInfo(sym, MODE_BID); if (OrderType()==OP_SELL) pp=MarketInfo(sym, MODE_ASK); if (di>MathAbs(OrderOpenPrice()-pp)) { di=MathAbs(OrderOpenPrice()-pp); t=OrderTicket(); } } } } } } return(t); }
告诉我更多关于它的信息,你准备好代码了吗?它在哪个分机上?
是的,已经准备好了!我不知道延期的事,我怎么才能知道?
是的,我已经准备好了!我不知道延期的事!"。
MQL4代码基础
是的,我已经准备好了!我不知道延期的事!"。
请参阅本 页面第二篇文章中的所有链接,尤其是以下部分
"ERMINAL"
我如何在MetaTrader 4中安装EA?
...
根据你的概念来定义"... 其中最接近买入和卖出价格的 同时......" - 你怎么说同时?
用return(t);来代替这倒数第二行。
没有帮助。
选择最接近买入和卖出价格的订单,可能同时不太正确,但这个函数会选择买入或卖出,取决于哪个最接近。
下午好!
出现了一个问题:专家顾问被配置为在几十个货币对上进行交易(在一个货币对窗口)。如果任何一个货币对没有显示在市场观察窗口中,就会导致一个故障。我怎样才能以编程方式检查这些货币对是否可以交易,或者它们只是没有显示在市场观察中?
会有不同的错误
并没有帮助。
选择最接近买入和卖出价格的订单,也许它在同一时间不太正确,但这个函数选择买入或卖出,取决于哪个最接近
这个函数返回的是什么,结尾是这一行
没能成功。
选择最接近价格的买入和卖出订单,也许它在同一时间不太正确,但这个功能选择买入或卖出,取决于哪个最接近。
试试这样的方式
如何同时 选择最接近买入和卖出 价格的位置?
//+----------------------------------------------------------------------------+
//| Возвращает тикет ближайшей к рынку позиции по цене открытия или 0 |
//| Параметры: |
//| sym - наименование инструмента ("" - текущий символ) |
//| op - операция (-1 - любая позиция) |
//| mn - MagicNumber (-1 - любой магик) |
//+----------------------------------------------------------------------------+
int TicketNearPosOnOpen(string sym="", int op=-1, int mn=-1) {
double di=10000, pp;
int i, k=OrdersTotal(), t=0;
if (sym=="") sym=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sym && (op<0 || OrderType()==op)) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (mn<0 || OrderMagicNumber()==mn) {
if (OrderType()==OP_BUY) pp=MarketInfo(sym, MODE_BID);
if (OrderType()==OP_SELL) pp=MarketInfo(sym, MODE_ASK);
if (di>MathAbs(OrderOpenPrice()-pp)) {
di=MathAbs(OrderOpenPrice()-pp);
t=OrderTicket();
}
}
}
}
}
}
return(t);
}
或者选择两个接近当前价格的头寸(包括买和卖)?
当你告诉我们你的需求时,我们将帮助你 :)
如何同时选择最接近买入和卖出价格的头寸?
DistMarketAndPos - 返回市场和最近的位置之间的距离,单位是点。