Проблема с удвоением лота в советнике
Здравствуйте, уважаемые форумчане. Столкнулся с проблемой удвоения лота если последняя сделка сработала в минус. Почему-то лот удваивается по два раза подряд. Вот скрин из тестера:
Помогите пожалуйста разобраться. За ранее огромное спасибо!
Здравствуйте, уважаемые форумчане. Столкнулся с проблемой удвоения лота если последняя сделка сработала в минус. Почему-то лот удваивается по два раза подряд. Вот скрин из тестера:
Помогите пожалуйста разобраться. За ранее огромное спасибо!
1 2015.01.02 09:00 sell 1 0.10 1.2053 1.2103 1.2003 0.00 2000.00
2 2015.01.02 22:23 t/p 1 0.10 1.2003 1.2103 1.2003 0.50 2000.50
3 2015.01.02 22:23 sell 2 0.10 1.2001 1.2051 1.1951 0.00 2000.50
4 2015.01.05 00:00 t/p 2 0.10 1.1951 1.2051 1.1951 0.50 2001.00
5 2015.01.05 00:00 buy 3 0.10 1.1948 1.1898 1.1998 0.00 2001.00
6 2015.01.05 00:02 s/l 3 0.10 1.1898 1.1898 1.1998 -0.50 2000.50
7 2015.01.05 00:02 sell 4 0.10 1.1898 1.1948 1.1848 0.00 2000.50
8 2015.01.05 00:39 s/l 4 0.10 1.1948 1.1948 1.1848 -0.50 2000.00
9 2015.01.05 00:39 buy 5 0.20 1.1948 1.1898 1.1998 0.00 2000.00
10 2015.01.05 14:34 s/l 5 0.20 1.1898 1.1898 1.1998 -1.00 1999.00
11 2015.01.05 14:34 sell 6 0.20 1.1898 1.1948 1.1848 0.00 1999.00
12 2015.01.05 22:40 s/l 6 0.20 1.1948 1.1948 1.1848 -1.00 1998.00
13 2015.01.05 22:40 buy 7 0.40 1.1948 1.1898 1.1998 0.00 1998.00
14 2015.01.06 12:27 s/l 7 0.40 1.1898 1.1898 1.1998 -2.01 1995.99
15 2015.01.06 12:27 sell 8 0.40 1.1898 1.1948 1.1848 0.00 1995.99
16 2015.01.06 19:18 s/l 8 0.40 1.1948 1.1948 1.1848 -2.00 1993.99
17 2015.01.06 19:18 buy 9 0.80 1.1948 1.1898 1.1998 0.00 1993.99
18 2015.01.06 22:09 s/l 9 0.80 1.1898 1.1898 1.1998 -4.00 1989.99
19 2015.01.06 22:09 sell 10 0.80 1.1898 1.1948 1.1848 0.00 1989.99
20 2015.01.07 12:55 t/p 10 0.80 1.1848 1.1948 1.1848 4.01 1994.00
21 2015.01.07 12:55 sell 11 1.60 1.1846 1.1896 1.1796 0.00 1994.00
22 2015.01.08 10:58 t/p 11 1.60 1.1796 1.1896 1.1796 8.04 2002.03
23 2015.01.08 10:58 sell 12 0.10 1.1794 1.1844 1.1744 0.00 2002.03
24 2015.01.09 18:03 s/l 12 0.10 1.1844 1.1844 1.1744 -0.50 2001.53
25 2015.01.09 18:03 buy 13 0.10 1.1844 1.1794 1.1894 0.00 2001.53
26 2015.01.12 12:31 s/l 13 0.10 1.1794 1.1794 1.1894 -0.50 2001.03
27 2015.01.12 12:31 sell 14 0.20 1.1794 1.1844 1.1744 0.00 2001.03
28 2015.01.12 16:50 s/l 14 0.20 1.1844 1.1844 1.1744 -1.00 2000.03
29 2015.01.12 16:50 buy 15 0.20 1.1844 1.1794 1.1894 0.00 2000.03
30 2015.01.13 11:46 s/l 15 0.20 1.1794 1.1794 1.1894 -1.01 1999.03
31 2015.01.13 11:46 sell 16 0.40 1.1794 1.1844 1.1744 0.00 1999.03
32 2015.01.14 11:36 t/p 16 0.40 1.1744 1.1844 1.1744 2.00 2001.03
33 2015.01.14 11:36 sell 17 0.40 1.1742 1.1792 1.1692 0.00 2001.03
34 2015.01.14 15:30 s/l 17 0.40 1.1792 1.1792 1.1692 -2.00 1999.03
35 2015.01.14 15:30 buy 18 0.10 1.1792 1.1742 1.1842 0.00 1999.03
36 2015.01.14 15:51 t/p 18 0.10 1.1842 1.1742 1.1842 0.50 1999.53
37 2015.01.14 15:51 buy 19 0.80 1.1844 1.1794 1.1894 0.00 1999.53
38 2015.01.14 16:35 s/l 19 0.80 1.1794 1.1794 1.1894 -4.00 1995.53
39 2015.01.14 16:35 sell 20 0.10 1.1794 1.1844 1.1744 0.00 1995.53
40 2015.01.14 23:59 close at stop 20 0.10 1.1790 1.1844 1.1744 0.04 1995.57
2 2015.01.02 22:23 t/p 1 0.10 1.2003 1.2103 1.2003 0.50 2000.50
3 2015.01.02 22:23 sell 2 0.10 1.2001 1.2051 1.1951 0.00 2000.50
4 2015.01.05 00:00 t/p 2 0.10 1.1951 1.2051 1.1951 0.50 2001.00
5 2015.01.05 00:00 buy 3 0.10 1.1948 1.1898 1.1998 0.00 2001.00
6 2015.01.05 00:02 s/l 3 0.10 1.1898 1.1898 1.1998 -0.50 2000.50
7 2015.01.05 00:02 sell 4 0.10 1.1898 1.1948 1.1848 0.00 2000.50
8 2015.01.05 00:39 s/l 4 0.10 1.1948 1.1948 1.1848 -0.50 2000.00
9 2015.01.05 00:39 buy 5 0.20 1.1948 1.1898 1.1998 0.00 2000.00
10 2015.01.05 14:34 s/l 5 0.20 1.1898 1.1898 1.1998 -1.00 1999.00
11 2015.01.05 14:34 sell 6 0.20 1.1898 1.1948 1.1848 0.00 1999.00
12 2015.01.05 22:40 s/l 6 0.20 1.1948 1.1948 1.1848 -1.00 1998.00
13 2015.01.05 22:40 buy 7 0.40 1.1948 1.1898 1.1998 0.00 1998.00
14 2015.01.06 12:27 s/l 7 0.40 1.1898 1.1898 1.1998 -2.01 1995.99
15 2015.01.06 12:27 sell 8 0.40 1.1898 1.1948 1.1848 0.00 1995.99
16 2015.01.06 19:18 s/l 8 0.40 1.1948 1.1948 1.1848 -2.00 1993.99
17 2015.01.06 19:18 buy 9 0.80 1.1948 1.1898 1.1998 0.00 1993.99
18 2015.01.06 22:09 s/l 9 0.80 1.1898 1.1898 1.1998 -4.00 1989.99
19 2015.01.06 22:09 sell 10 0.80 1.1898 1.1948 1.1848 0.00 1989.99
20 2015.01.07 12:55 t/p 10 0.80 1.1848 1.1948 1.1848 4.01 1994.00
21 2015.01.07 12:55 sell 11 1.60 1.1846 1.1896 1.1796 0.00 1994.00
22 2015.01.08 10:58 t/p 11 1.60 1.1796 1.1896 1.1796 8.04 2002.03
23 2015.01.08 10:58 sell 12 0.10 1.1794 1.1844 1.1744 0.00 2002.03
24 2015.01.09 18:03 s/l 12 0.10 1.1844 1.1844 1.1744 -0.50 2001.53
25 2015.01.09 18:03 buy 13 0.10 1.1844 1.1794 1.1894 0.00 2001.53
26 2015.01.12 12:31 s/l 13 0.10 1.1794 1.1794 1.1894 -0.50 2001.03
27 2015.01.12 12:31 sell 14 0.20 1.1794 1.1844 1.1744 0.00 2001.03
28 2015.01.12 16:50 s/l 14 0.20 1.1844 1.1844 1.1744 -1.00 2000.03
29 2015.01.12 16:50 buy 15 0.20 1.1844 1.1794 1.1894 0.00 2000.03
30 2015.01.13 11:46 s/l 15 0.20 1.1794 1.1794 1.1894 -1.01 1999.03
31 2015.01.13 11:46 sell 16 0.40 1.1794 1.1844 1.1744 0.00 1999.03
32 2015.01.14 11:36 t/p 16 0.40 1.1744 1.1844 1.1744 2.00 2001.03
33 2015.01.14 11:36 sell 17 0.40 1.1742 1.1792 1.1692 0.00 2001.03
34 2015.01.14 15:30 s/l 17 0.40 1.1792 1.1792 1.1692 -2.00 1999.03
35 2015.01.14 15:30 buy 18 0.10 1.1792 1.1742 1.1842 0.00 1999.03
36 2015.01.14 15:51 t/p 18 0.10 1.1842 1.1742 1.1842 0.50 1999.53
37 2015.01.14 15:51 buy 19 0.80 1.1844 1.1794 1.1894 0.00 1999.53
38 2015.01.14 16:35 s/l 19 0.80 1.1794 1.1794 1.1894 -4.00 1995.53
39 2015.01.14 16:35 sell 20 0.10 1.1794 1.1844 1.1744 0.00 1995.53
40 2015.01.14 23:59 close at stop 20 0.10 1.1790 1.1844 1.1744 0.04 1995.57
Код:
//+------------------------------------------------------------------+
//| Begemot.mq4 |
//| Begemot32 |
//| http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Begemot32"
#property link "http://www.mql5.com"
#property version "1.00"
#property strict
extern double Lot;
double OrPrice;
double OrLots;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int init()
{
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert start function |
//+------------------------------------------------------------------+
int start()
{
for(int i=0;i<OrdersTotal();i++)
{
if (OrderSelect(OrdersHistoryTotal()-1, SELECT_BY_POS, MODE_HISTORY)) // Выбираем последний ордер из истории.
{
OrPrice=OrderProfit(); //узнаем профит закрытого ордера
OrLots=OrderLots(); //узнаем объем(лот)закрытого ордера
}
}
if(OrPrice<0) { //если профит меньше нуля (отрицательный показатель) то..
Lot=OrLots*2; // ...умножаем лот на 2
if(OrdersTotal() == 0 && Open[0]<Close[0] && Close[0]==High[0]) // если нет ордеров и восходящая свеча то..
{
OrderSend(Symbol(), OP_BUY, Lot, Ask, 3, Ask-50*Point, Ask+50*Point); // открываем ордер на БАЙ с удвоенным лотом
}
else
if(OrdersTotal() == 0 && Open[0]>Close[0] && Close[0]==Low[0]) // если нет ордеров и нисходящая свеча то..
{
OrderSend(Symbol(), OP_SELL, Lot, Bid, 3, Bid+50*Point, Bid-50*Point); // открываем ордер на СЕЛЛ с удвоенным лотом
}
else
Print("ORDER NE USTANOVLEN!!!");
}
else // если последний ордер закрылся с положительным результатом (цена больше или равна нулю)то..
//ОТКРЫТИЕ ОРДЕРА НА ПОКУПКУ
if(OrdersTotal() == 0 && Open[0]<Close[0] && Close[0]==High[0]) // если нет ордеров и восходящая свеча то..
{
OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, Ask-50*Point, Ask+50*Point); // открываем ордер на БАЙ
}
else
Print("BUY - ORDER NE USTANOVLEN!!!");
//ОТКРЫТИЕ ОРДЕРА НА ПРОДАЖУ
if(OrdersTotal() == 0 && Open[0]>Close[0] && Close[0]==Low[0]) // если нет ордеров и нисходящая свеча то..
{
OrderSend(Symbol(), OP_SELL, 0.1, Bid, 3, Bid+50*Point, Bid-50*Point); // открываем ордер на СЕЛЛ
}
else
Print("ORDER NE USTANOVLEN!!!");
return(0);
}
Последнее редактирование модератором: