//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.05.2008 |//| Описание : Возвращает флаг закрытия последней позиции по стопу. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {
datetime t;
double ocp, osl;
int dg, i, j=-1, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
dg=MarketInfo(sy, MODE_DIGITS);
if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
ocp=NormalizeDouble(OrderClosePrice(), dg);
osl=NormalizeDouble(OrderStopLoss(), dg);
if (ocp==osl) return(True);
}
return(False);
}
我尽力了,我重写了所有的东西,但仍然是错误的130,请问哪里错了?
我不认为这里需要一个停止平移器,他们和停止在1000点吗?
尝试
是否有一个函数可以返回平仓指令(止损)的值?
例如,让EA知道是否触发了止损。
我没有在文档中找到它,也许它就在那里,但我在一个月内重读了大约十遍,我不记得了。
我不记得有这样一个功能
下次我们就在一个地方写吧。垃圾邮件是不好的。
是否有一个函数可以返回平仓指令(止损)的值?
例如,让EA知道是否触发了止损。
我没有在文档中找到它,也许它就在那里,但我在一个月内重读了大约十遍,我不记得了。
我不记得我见过这样的功能。
在历史中寻找该订单,如果你找到它,比较它的收盘价OrderClosePrice()和它的StopLoss OrderStopLoss()水平。
如果它们相等,那么该仓位已在止损上关闭。
在历史中寻找该订单,如果你找到它,比较它的收盘价 OrderClosePrice()和它的StopLoss OrderStopLoss()水平
如果它们相等,说明该头寸在止损处被关闭。
金有一个函数,取最后关闭的订单...
我知道,很多人都开始从这些功能中学习。我最近在这里给了他一个链接,但这个人坚持要问。可能是懒得去查了......。:)
请您告诉我,如果在一个额外的窗口中,有几个指标相互叠加,您能不能把它们上面那一行的名称和参数去掉?我受够了这种电传文。
你可以,但你需要在每个指标中删除它。编辑代码