Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Торгуй как успешные трейдеры - подпишись на их сигналы!
Yaraslau Hladkou
257
Yaraslau Hladkou 2016.04.18 22:48 

Здравствуйте. Подскажите, пожалуйста, где найти код эксперта (или блок учета ордеров), где сделка может быть открыта только одна и закрывается либо по стопу, либо по тейку, т.е. советник не будет постоянно держать открытую позу - будут периоды "вне рынка" до наступления нового сигнала.

Общими усилиями соберем стандартный "надежный" набор блоков советника, в который потом каждый сможет вставить свою "секретную" функцию с условиями входа?

Вот что-то, от чего отталкиваться: 

Файлы:
exp_0.mq4 13 kb
Yuriy Asaulenko
2831
Yuriy Asaulenko 2016.04.18 23:08  
Yaroslav Gladkov:

Уже написан. Полгода назад на экспертизу мною была отправлена статья на эту тему. Сказали, что не дошла, хотя и поныне черновик висит как на проверке.

Оч. жаль, но мне уже не хочется ей заниматься. Код, можно сказать, утерян - перестановка компа.

Sergey Deev
64262
Sergey Deev 2016.04.30 02:17  
Yaroslav Gladkov:

Здравствуйте. Подскажите, пожалуйста, где найти код эксперта (или блок учета ордеров), где сделка может быть открыта только одна и закрывается либо по стопу, либо по тейку, т.е. советник не будет постоянно держать открытую позу - будут периоды "вне рынка" до наступления нового сигнала.

Ну дык и проверьте наличие в рынке ордеров OP_BUY, OP_SELL с требуемым магиком и названием инструмента.

 

int CalculateCurrentOrders(int mode) {

   int num=0;

   for(int i=0;i<OrdersTotal();i++) {

      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

      if (OrderMagicNumber() == MAGIC)

      if (OrderSymbol() == Symbol())

      if ((OrderType()==mode) || (mode==-1)) num++;

     }

   return(num);

}

Sergey Deev
64262
Sergey Deev 2016.04.30 02:19  
Yuriy Asaulenko:

Уже написан. Полгода назад на экспертизу мною была отправлена статья на эту тему. Сказали, что не дошла, хотя и поныне черновик висит как на проверке.

Оч. жаль, но мне уже не хочется ей заниматься. Код, можно сказать, утерян - перестановка компа.

Гениальная, очевидно, статья была по подсчету открытых ордеров в рынке.
Vladimir Zubov
3439
Vladimir Zubov 2016.04.30 02:20  

Если МТ4 то вот

https://forum.mql4.com/ru/38949 

Только "Полезные функции от KimIV". (Yuriy Tokman) - MQL4 форум
Только "Полезные функции от KimIV". (Yuriy Tokman) - MQL4 форум
  • forum.mql4.com
Только "Полезные функции от KimIV". (Yuriy Tokman) - MQL4 форум
Vitaly Muzichenko
2502
Vitaly Muzichenko 2016.04.30 02:38  
Sergey Deev:

Ну дык и проверьте наличие в рынке ордеров OP_BUY, OP_SELL (жесть)с требуемым магиком и названием инструмента.

 

int CalculateCurrentOrders(int mode) {

   int num=0;

   for(int i=0;i<OrdersTotal();i++) {

      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

      if (OrderMagicNumber() == MAGIC)

      if (OrderSymbol() == Symbol())

      if ((OrderType()==mode) || (mode==-1)) num++;

     }

   return(num);

}

И что за бред выйдет на выходе, если ввести в mode = -1 ? нужно посчитать позиции, так он будет считать и ордера, в итоге если будет висеть ордер, то он не откроет позицию до тех пор, пока не удалите ордер,или он не превратится в позицию и не закроется.

Вы считайте или позиции, или ордера! Вы и на заказ такое пишете, или это опечатка? 

Sergey Deev
64262
Sergey Deev 2016.04.30 07:59  
Vitaly Muzichenko:

И что за бред выйдет на выходе, если ввести в mode = -1 ? нужно посчитать позиции, так он будет считать и ордера, в итоге если будет висеть ордер, то он не откроет позицию до тех пор, пока не удалите ордер,или он не превратится в позицию и не закроется.

Вы считайте или позиции, или ордера! Вы и на заказ такое пишете, или это опечатка? 

А вы ум включите прежде чем свой бред писать..

- CalculateCurrentOrders(OP_BUY) - подсчет buy-ордеров;

- CalculateCurrentOrders(OP_SELL) - подсчет sell-ордеров; 

- CalculateCurrentOrders(-1) - подсчет всех открытых и отложенных ордеров. 

Vitaly Muzichenko
2502
Vitaly Muzichenko 2016.04.30 11:53  
Sergey Deev:

А вы ум включите прежде чем свой бред писать..

- CalculateCurrentOrders(OP_BUY) - подсчет buy-ордеров;

- CalculateCurrentOrders(OP_SELL) - подсчет sell-ордеров; 

- CalculateCurrentOrders(-1) - подсчет всех открытых и отложенных ордеров. 

Ну так если мне нужно подсчитать бай и селл, значит по логике нужно поставить CalculateCurrentOrders(-1)  , ну или изворачиваться, сначала получать количество бай, потом селл и их плюсовать, как-то не вяжется, если в расчёте нужны только позиции. Я так и написал, но вы оказывается ещё и читать не умеете, что если ввести -1, то на выходе получим лабуду, он будет считать всё, что нужно, и не нужно.
Sergey Deev
64262
Sergey Deev 2016.04.30 13:07  
Vitaly Muzichenko:
Ну так если мне нужно подсчитать бай и селл, значит по логике нужно поставить CalculateCurrentOrders(-1)  , ну или изворачиваться, сначала получать количество бай, потом селл и их плюсовать, как-то не вяжется, если в расчёте нужны только позиции. Я так и написал, но вы оказывается ещё и читать не умеете, что если ввести -1, то на выходе получим лабуду, он будет считать всё, что нужно, и не нужно.

хромает ваша логика на всю голову

CalculateCurrentOrders(OP_BUY)+CalculateCurrentOrders(OP_SELL) = сумма buy и sell

CalculateCurrentOrders(-1) - это не лабуда, а сумма всех ордеров (открытых и отложенных) по текущему магику и символу.

 только про нагрузку на сервер сейчас ничего не придумывайте - данные из терминала 

Vitaly Muzichenko
2502
Vitaly Muzichenko 2016.04.30 13:15  
Sergey Deev:

хромает ваша логика на всю голову

CalculateCurrentOrders(OP_BUY)+CalculateCurrentOrders(OP_SELL) = сумма buy и sell

CalculateCurrentOrders(-1) - это не лабуда, а сумма всех ордеров (открытых и отложенных) по текущему магику и символу.

 только про нагрузку на сервер сейчас ничего не придумывайте - данные из терминала 

Мне жаль ваших клиентов, но выбор за ними.
Sergey Deev
64262
Sergey Deev 2016.04.30 13:21  
Vitaly Muzichenko:
Мне жаль ваших клиентов, но выбор за ними.
Аргументы кончились? И причем здесь клиенты?
/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий