Помогите с советником

 
Здравствуйте, помогите пожалуйста прикрутить безубыток после прохождения N пунктов в советнике.
Файлы:
6MA_v1.mq4  39 kb
 
vtoxic:
Здравствуйте, помогите пожалуйста прикрутить безубыток после прохождения N пунктов в советнике.

Чем он Вас привлёк ?

Снимок

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Тут можно найти во много лучше и прибыльней https://www.mql5.com/ru/code/mt4/experts

MQL5 Code Base: Советники
MQL5 Code Base: Советники
  • www.mql5.com
Советники для MetaTrader 4 с исходными кодами
 
vtoxic:
Здравствуйте, помогите пожалуйста прикрутить безубыток после прохождения N пунктов в советнике.

Вот этого можно хоть понять - что он хочет. https://www.mql5.com/ru/code/7772 

Снимок2

Trend Me Leave Me
Trend Me Leave Me
  • www.mql5.com
Советник Trend Me Leave Me.
 
SanAlex:

Вот этого можно хоть понять - что он хочет. https://www.mql5.com/ru/code/7772 


Здравствуйте, благодарю! Обязательно с ним ознакомлюсь. А насчёт моего советника, понравилась идея своей простотой))) Я только начинаю так сказать азы...
 
vtoxic:
Здравствуйте, благодарю! Обязательно с ним ознакомлюсь. А насчёт моего советника, понравилась идея своей простотой))) Я только начинаю так сказать азы...

очень просто - но у Вас не просто, а всё запутано.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

а вот просто и понятно 

Trend Me Leave Me
//+------------------------------------------------------------------+
//|                                                         Prev.mq4 |
//|                              Copyright © 2006, Yury V. Reshetov. |
//|                                       http://betaexpert.narod.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Yury V. Reshetov. ICQ: 282715499"
#property link      "http://betaexpert.narod.ru"
#property version   "1.00"
#property strict
//----
#include <stdlib.mqh>
//---- Входные параметры
// Мы согласны на такую прибыль и нам чужого не надо
extern double     TakeProfit=180.0;
// Если мы просчитались, то такой убыток нас вполне устроит
extern double     StopLoss=50.0;
// Оптимальная доля наших деньжат, которую мы можем продуть
// без риска остаться без портков
extern double     MaximumRisk=0.03;
// Здесь мы будем запоминать время последнего сформировавшегося бара
static int        prevtime=0;
//+------------------------------------------------------------------+
//|              Поехали!                                            |
//+------------------------------------------------------------------+
int start()
  {
// Для начала не мешает убедиться, что сформировался новый бар
// Иначе брокер может открыть позицию и вне рынка,
// тогда хрен докажешь, что от был неправ.
// К тому же, индикаторы при внутрибаровой торговле могут
// менять показания как им удумается - семь пятниц на неделе.
   if(Time[0]==prevtime)
      return(0);
// Запомним текущий бар
   prevtime=Time[0];
// Сколько позиций у нас открыто?
   int total=OrdersTotal();
// Номер тикета
   int ticket=-1;
   for(int cnt=0; cnt < total; cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      // если это открытая позиция и инструмент совпадает
      if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
        {
         ticket=OrderTicket();
        }
     }
// Если есть уже открытая позиция, то новую открывать не стоит
   if(ticket < 0)
     {
      int cmd=OP_BUY;
      // Сколько у нас закрытых ордеров?
      int htotal=HistoryTotal();
      // Покопаемся в истории счета
      for(int i=0; i < htotal; i++)
        {
         if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==false)
           {
            Print("Ошибка в истории счета! Обратись к брокеру! Может он украл наши денежки и подтер следы?");
            break;
           }
         // Если ордер нашего символа и он до закрытия
         // не был лимитным
         if((OrderSymbol()!= Symbol()) || (OrderType() > OP_SELL))
            continue;
         // Если ордер был закрыт с прибылью, то бишь по TakeProfit
         if(OrderProfit() > 0)
           {
            // Значит следующая позиция будет в том же направлении
            cmd=OrderType();
           }
         else     // в противном случае,
           {
            // рынок уже развернулся
            // и нам туда же
            if(OrderType()==OP_SELL)
              {
               cmd=OP_BUY;
              }
            else
              {
               cmd=OP_SELL;
              }
           }
        }
      // Что там шепчут индикаторы?
      double sar=iSAR(NULL, 0, 0.02, 0.2, 0);
      double adx=iADX(NULL, 0, 14, PRICE_CLOSE, MODE_MAIN, 0);
      if(cmd==OP_BUY)    // Если открываем длинную позицию
        {
         // Ждем когда тренд немного приподымется
         // и на рынке все спокойно
         if((sar < Close[0]) && (adx < 20))
           {
            // Покупаем
            ticket=OrderSend(Symbol(),OP_BUY, LotsOptimized(), Ask, 3, Bid - StopLoss * Point, Ask + TakeProfit * Point, "TrendCapture", 16384, 0, Blue);
            // Запишем в журнал, как отреагировал брокер
            if(ticket > 0)
              {
               if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
                  Print("Длинная позиция открыта по цене : ",OrderOpenPrice());
              }
            else
               Print(ErrorDescription(GetLastError()));
            return(0);
           }
        }
      else
        {
         // Если открываем короткую позицию
         // Ждем когда тренд немного присядет
         // и на рынке все спокойно
         if((sar > Close[0]) && (adx < 20))
           {
            // Продаем
            ticket=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,Ask + StopLoss * Point,Bid-TakeProfit*Point,"TrendCapture",16384,0,Red);
            // Запишем в журнал, как отреагировал брокер
            if(ticket > 0)
              {
               if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
                  Print("Короткая позиция открыта по цене : ",OrderOpenPrice());
              }
            else
               Print(ErrorDescription(GetLastError()));
            return(0);
           }
        }
     }
// Предохранитель
   double    Guard=5.0;
   OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES);
   if(OrderType()==OP_BUY)
     {
      // длинная открытая позиция
      // Если текущая цена позволяет выставить предохранитель
      if(Bid-OrderOpenPrice()>Point*Guard)
        {
         // Если защита стоит в убытке
         if(OrderStopLoss() < OrderOpenPrice())
           {
            // За что купил, за то и продаю
            OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Blue);
            // Выходим
            return(0);
           }
        }
     }
   else // Если позиция короткая
     {
      // Если текущая цена позволяет выставить предохранитель
      if((OrderOpenPrice() - Ask) > (Point*Guard))
        {
         // Если защита стоит в убытке
         if(OrderStopLoss() > OrderOpenPrice())
           {
            // За что купил, за то и продаю
            OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Red);
            // Выходим
            return(0);
           }
        }
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Money Management                                                 |
//+------------------------------------------------------------------+
double LotsOptimized()
  {
   double lot=0.1;
   int    losses=0;                  // number of losses orders without a break
//---- select lot size
   lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- return lot size
   if(lot > 100)
      lot=100;
   if(lot < 0.1)
      lot=0.1;
   return(lot);
  }
//+----------------- Вот и сказке звиздец ----------------+
//+------------------------------------------------------------------+
Trend Me Leave Me
Trend Me Leave Me
  • www.mql5.com
Советник Trend Me Leave Me.
 
vtoxic:
прикрутить безубыток после прохождения N пунктов в советнике.

Сделал сразу все стопы и исправил те что были


Файлы:
6MA_v2.mq4  43 kb