Здравствуйте, Андрей, напишите пожалуйста просто функцию,
а не советника целиком. Суть функции — уменьшение лотности
позиций в мартине этим частично снижая риск. При торговле по принципу мартингейла
прибыль бОльшего лота перекрывает убыток предыдущего, при малых объемах это нормально, а вот когда лот большой — уже некомфортно. Пусть советник закроет эти два последних больших лота хоть в ноль, хоть с минимальной прибылью, тогда уже лучше.В общем нужно усреднить две последние позиции, а не всю группу.
Таких советников я не нашёл, а у самого не получается(программировать)

.
Условие включения функции (их может быть несколько это и просадка в процентах и лот)
я пока выбрал лот — так проще.
extern double LotDanger = 0; // лот который включит функцию (0-советник работает как обычно)
extern double ProfDanger = 2; // язь который закроет два последних опасных ордера(0-ни убытка ни прибыли)
----------------------------------------------------------------------------------------------------------
если лот >= LotDanger {включается функция}
если профит >= ProfDanger {закрываются только два последних опасных ордера и советник работает дальше}
-------------------------------------------------------------------------
на скрине показан пример
Если Вам проще переделать советник то любой Ваш мартин усреднитель тоже подойдёт
Комментарии (10)
35 AM2 Сообщений: 16664 - Андрей
4 ruzaden Автор Сообщений: 7
14 Dim777777 Сообщений: 322 - Дмитрий
35 AM2 Сообщений: 16664 - Андрей
35 AM2 Сообщений: 16664 - Андрей
<code>//-------закрытие двух последних ордеров----------------------------------------------------------------- int GetIndexByTicket(int ti, string sy="", int op=-1, int mn=-1) { int i, k=OrdersTotal(); if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) { if ((mn<0 || OrderMagicNumber()==mn) && OrderTicket()==ti) return(i); } } } return(-1); } //+------------------------------------------------------------------+</code>в void OnTick()добавил строку
if(AllProfit2()>ProfDanger && ProfDanger>0 && Lot()>LotDanger) CloseAll2();
разумеется заменил в переменных, всё компилируется — советник торгует, но не так как мне надо
Просьба моя остаёться, ну или заказ-как удобней. С/у Редактирован: 6 декабря 2018, 02:12
4 ruzaden Автор Сообщений: 7
www.opentraders.ru/downloads/2186/
35 AM2 Сообщений: 16664 - Андрей
4 ruzaden Автор Сообщений: 7
4 ruzaden Автор Сообщений: 7
35 AM2 Сообщений: 16664 - Андрей
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий