//+------------------------------------------------------------------+// Возвращает флаг закрытия последней позиции в убытке. Позиция выбирается по символу, типу и магикуbool isLossLastClosePos(string sy, int op, int mn) {
datetime t=0;
int i, j=EMPTY;
for(i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
if(OrderMagicNumber()!=mn) continue;
if(OrderSymbol()!=sy) continue;
if(OrderType()!=op) continue;
if(t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
if(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)) {
if(OrderProfit()+OrderCommission()+OrderSwap()<0) return(true);
}
return(false);
}
//+------------------------------------------------------------------+// Возвращает флаг закрытия последней позиции в убытке. Позиция выбирается по символу и магикуbool isLossLastClosePos(string sy, int mn) {
datetime t=0;
int i, j=EMPTY;
for(i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
if(OrderMagicNumber()!=mn) continue;
if(OrderSymbol()!=sy) continue;
if(OrderType()>1) continue;
if(t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
if(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)) {
if(OrderProfit()+OrderCommission()+OrderSwap()<0) return(true);
}
return(false);
}
//+------------------------------------------------------------------+
这就是我们的检查方式。
if(isLossLastClosePos(symbol, magic)) {
// последняя позиция закрыта в убытке
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.05.2008 |//| Описание : Возвращает тип закрытия по профиту, //| 1= позиция закрыта в профите, |//| 2- позиция закрыта в минусе |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+int isCloseLastPosByStoporTake(string sy="", int op=-1, int mn=-1) {
datetime t;
int 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)) {
double ocp=OrderProfit();
if (OrderProfit()+OrderCommission()+OrderSwap()>0) return(1);
if (OrderProfit()+OrderCommission()+OrderSwap()<0) return(2);
}
return(0);
}
为了找出答案,你要这样做。
if(isCloseLastPosByStoporTake("",-1,-1)==1) // Позиция закрыта в плюсеif(isCloseLastPosByStoporTake("",-1,-1)==2) // Позиция закрыта в минусе
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает флаг убыточности последней позиции. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+bool isLossLastPos(string sy="", int op=-1, int mn=-1) {
datetime t;
int 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)) {
if (OrderProfit()<0) return(True);
}
return(False);
}
方法末尾的const修饰语的作用是什么?
在变量名的初始化中使用这个修饰语,我们能得到什么好处?
我知道变量不能改变并获得不同的值。
也许这个修改器能加速程序的工作?
方法末尾的const修饰语的作用是什么?
在变量名的初始化中使用这个修饰语,我们能得到什么好处?
我知道变量不能改变并获得不同的值。
可能是这个修改器加快了程序的运行?
这来自于OOP。这意味着该方法不会改变它所调用的对象。争论与此毫无关系。
这样做的好处是,当你查看原型时,你会发现对象不会被改变,即可见性。
大家好 )请帮我写一段代码(更正确的是一个小部分),目的是写一个选择订单历史的函数,在那里我需要看到最后关闭的订单是什么值,是正值还是负值。谁知道这个代码,请告诉我(我已经绞尽脑汁了)))))
预先感谢你。
大家好 )请帮我写一段代码(更正确的是一个小部分),目的是写一个选择订单历史的函数,在那里我需要看到最后关闭的订单是什么值,是正值还是负值。谁知道这个代码,请告诉我(我已经绞尽脑汁了)))))
预先感谢你。
MQL4
这就是我们的检查方式。
大家好 )请帮助我写一段代码(更正确的是一个小部分),我的目标是写一个选择订单历史的函数,在那里我需要看到最后一个订单被关闭的值,正数或负数。请告知谁在做这个(我已经在绞尽脑汁了)))))
提前感谢。
为了找出答案,你要这样做。
MQL4
这样检查吧。
))))
))))
你意识到你现在的暗示很愚蠢,不是吗?
代码是我的。我从Igor那里得到了逻辑和变量名称。所以我不接受你的暗示。函数名称?它是否反映了意思,还是你在英语方面毫无头绪?
MQL4
这样检查吧。
来了解你在做什么。
非常感谢!