0
Происходит закрытие свечи с точкой над МА – констатируем, что тренд поменялся.


Нет закрытия свечи над или под МА. поэтому нет входа.
avatar

AM2

  • 31 мая 2015, 11:56
0
Вот здесь правильно входит и закрывается по обратному сигналу

avatar

AM2

  • 30 мая 2015, 20:28
0
В настройках 3 разных лота. Каким образом увеличивать лот после убытка, опишите подробнее? Могу сделать такой вариант: Посмотрели лот последней убыточной сделки, умножили его на коэффициент и прибавили к произведению 3 разных лота в настройках.
avatar

AM2

  • 30 мая 2015, 19:04
0
Это завтра буду смотреть.
avatar

AM2

  • 30 мая 2015, 18:38
0
Сейчас буду смотреть.
avatar

AM2

  • 30 мая 2015, 18:38
0
Вынес настройки ZZ, поправил входы(сейчас очень редко), сделал возможность ставить ТР=0 и закрытие по обратному сигналу.

www.opentraders.ru/downloads/758/

avatar

AM2

  • 30 мая 2015, 18:37
0
Сейчас выставляется только один раз. И такая логика: при срабатывании ордера все удаляются и выставляются заново. Т.о. около цены всегда есть указанное количество отложек.

www.opentraders.ru/downloads/708/

avatar

AM2

  • 29 мая 2015, 15:26
0
Сейчас оптимизировал советник. Получил параметры 70 на 70. Точно по сигналу открывает одну сделку и при появлении обратного сигнала закрывает открытую и открывает новую. Если нужно как то иначе напишите. Вынес в настройки название индикатора. Сейчас достаточно поменять название там если не соответствует.

www.opentraders.ru/downloads/749/

avatar

AM2

  • 29 мая 2015, 11:44
+1
Готово: www.opentraders.ru/downloads/758/
Динамический лот только для фиксированного стопа.

avatar

AM2

  • 29 мая 2015, 10:32
0
на индикаторе Ma_Parabolic_st2.2 (прилагается)
А где прилагается?
avatar

AM2

  • 29 мая 2015, 07:52
0
Завтра посмотрю в чем дело.
avatar

AM2

  • 28 мая 2015, 19:14
0
Я сделал. Он где в базе я обновлю?


//+------------------------------------------------------------------+
//|                                                        MAExp.mq4 |
//|                                              Copyright 2014, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property description "Moving Average sample expert advisor"

#define MAGICMA  20131111
//--- Inputs
extern double Lots          = 0.1;
extern int    MovingPeriod  = 12;
extern int    MovingShift   = 6;
extern double BULevel       = 300;
extern double TrailingStop  = 300;
extern int    Delta         = 6;
extern int    Slip          = 30;
extern int    Count         = 100;
//+------------------------------------------------------------------+
//| Calculate open positions                                         |
//+------------------------------------------------------------------+
int Orders(string symbol)
  {
   int buys=0,sells=0;
//---
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
//--- return orders volume
   if(buys>0) return(buys);
   else       return(-sells);
  }
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void OpenPos()
  {
   double ma;
   int    res;
//--- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//--- sell conditions
   if(Bid<ma && ma-Bid<Delta*Point)
     {
      res=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slip,0,0,"",MAGICMA,0,Red);
      return;
     }
//--- buy conditions
   if(Ask>ma && Ask-ma<Delta*Point)
     {
      res=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slip,0,0,"",MAGICMA,0,Blue);
      return;
     }
//---
  }
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+
void ClosePos()
  {
   double ma;
//--- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
      //--- check order type 
      if(OrderType()==OP_BUY)
        {
         if(Ask<ma)
           {
            CloseAll();
           }
         break;
        }
      if(OrderType()==OP_SELL)
        {
         if(Bid>ma)
           {
            CloseAll();
           }
         break;
        }
     }
//---
  }
//+------------------------------------------------------------------+  
void CloseAll()
  {
   bool cl,sel;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      sel=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol())
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
           {
            if(OrderType()==OP_BUY) cl=OrderClose(OrderTicket(),OrderLots(),Bid,Slip,Blue);
            if(OrderType()==OP_SELL) cl=OrderClose(OrderTicket(),OrderLots(),Ask,Slip,Red);
           }
         Sleep(1000);
        }
     }
  }
//+------------------------------------------------------------------+
void Trailing()
  {
   bool mod;
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderSymbol()==Symbol() || OrderMagicNumber()==MAGICMA)
            if(OrderType()==OP_BUY)
              {
               if(TrailingStop>0)
                 {
                  if(Bid-OrderOpenPrice()>TrailingStop*Point)
                    {
                     if(OrderStopLoss()<Bid-TrailingStop*Point)
                       {
                        mod=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*Point,OrderTakeProfit(),0,Yellow);
                       }
                    }
                 }
              }

      if(OrderType()==OP_SELL)
        {
         if(TrailingStop>0)
           {
            if((OrderOpenPrice()-Ask)>TrailingStop*Point)
              {
               if((OrderStopLoss()>(Ask+TrailingStop*Point)) || (OrderStopLoss()==0))
                 {
                  mod=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop*Point,OrderTakeProfit(),0,Yellow);
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
void BU()
  {
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderType()==OP_BUY)
           {
            if(OrderOpenPrice()<=(Bid-(BULevel+20)*Point) && OrderOpenPrice()>OrderStopLoss())
              {
               bool m=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+20*Point,OrderTakeProfit(),0,White);
              }
           }

         if(OrderType()==OP_SELL)
           {
            if(OrderOpenPrice()>=(Ask+(BULevel+20)*Point) && OrderOpenPrice()<OrderStopLoss())
              {
               m=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-20*Point,OrderTakeProfit(),0,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
bool NewBar()
  {
   static datetime lastbar=0;
   datetime curbar=Time[0];
   if(lastbar!=curbar)
     {
      lastbar=curbar;
      return (true);
     }
   else
     {
      return(false);
     }
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(NewBar())
     {
      if(Orders(Symbol())<=Count) OpenPos();
      ClosePos();
     }

   if(BULevel!=0) BU();
   if(TrailingStop!=0) Trailing();
//---
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 28 мая 2015, 17:43
0
Напомните мне в личку в понедельник. Поставлю на демо и посмотрю. Или переписать могу по своему.
avatar

AM2

  • 28 мая 2015, 12:43
0
Готово: www.opentraders.ru/downloads/757/

Точного соответствия сигналов от индикатора 7 в тестере добиться не удалось. Возможно на демо будет иначе.

avatar

AM2

  • 28 мая 2015, 12:35