0
Набросал ночник. Торгует с 21 до 24 затем кроет в конце торговли позу. Вот этот вариант еще могу править: www.opentraders.ru/downloads/1118/



//+------------------------------------------------------------------+
//|                                                     FapTurbo.mq4 |
//|                                              Copyright 2016, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // лот
extern int StopLoss      = 1200;     // лось
extern int TakeProfit    = 50;       // язь
extern int Slip          = 30;       // реквот
extern int MAPeriod      = 5;        // период МА
extern int CloseOn       = 1;        // 1-закрытие в конце работы
extern int Magic         = 123;      // магик
extern string Start      = "21:00";  // старт
extern string End        = "23:50";  // конец торговли
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0) sl=NormalizeDouble(price+StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0) sl=NormalizeDouble(price-StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     }

   r=OrderSend(NULL,type,Lots,NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseAll()
  {
   bool cl;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY)
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slip,White);
              }
            if(OrderType()==OP_SELL)
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slip,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double ma=iMA(NULL,0,MAPeriod,0,0,0,1);

   if(CountTrades()<1 && TimeCurrent()>=StringToTime(Start) && TimeCurrent()<=StringToTime(End))
     {
      if(Ask<ma)
        {
         PutOrder(0,Ask);
        }

      if(Bid>ma)
        {
         PutOrder(1,Bid);
        }
     }
     
   if(CountTrades()>0 && CloseOn>0 && TimeCurrent()<StringToTime(Start)) CloseAll();
   
   Comment("\n Time: ", TimeCurrent());
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 28 марта 2016, 12:22
0
Я посмотрел как он открывается. Покупка продажа если цена выше ниже машки плюс время с 22.00 до 24.00 примерно. Такие входы со временем и закрытием по барам могу сделать.
avatar

AM2

  • 28 марта 2016, 11:30
0
В левом верхнем углу даже не появляется требуемая надпись.До этого такой «бяки» на графиках Ренко не возникало.


Вам нужно самостоятельно научиться решать подобные вопросы. Т.к. подобнная штука у вас возникает очень часто во всех своих разновидностях. Форумы и гугл вам помогут. Запустилось все нормально.



avatar

AM2

  • 28 марта 2016, 10:49
0
Переписал все с нуля. Интересный получился вариант: www.opentraders.ru/downloads/1117/

avatar

AM2

  • 28 марта 2016, 10:36
0
а можешь глянуть ещё один мой заказ


Один заказ в месяц, см. условия: zakaz.opentraders.ru/25597.html
avatar

AM2

  • 27 марта 2016, 22:38
0
Здесь более 2000 строк чужого кода, очень маловероятно что получится что то сделать.
avatar

AM2

  • 27 марта 2016, 21:11
0
Перед тем как отправлять проверял:



У вас слишком маленькое расстояние от цены. 50 нормально ставит а 40 уже ошибки сыпет.
avatar

AM2

  • 27 марта 2016, 21:03
0
А как же мой  Там тоже самое


Значит и для вас все то же самое :) 
avatar

AM2

  • 27 марта 2016, 20:53
0
Скрины логи настройки, все скидывайте сюда что поможет мне найти причину.
avatar

AM2

  • 27 марта 2016, 20:00
0
Завтра гляну с утра.
avatar

AM2

  • 27 марта 2016, 19:58
0
Добавьте пожалуйста закрытие по профиту в валюте. И чтобы был выбор открывать по тренду, то есть он открывает если свеча красная то в бай, а нужно добавить выбор, чтобы если свеча красная следующая тоже красная. Ну и можно если уж совсем делать, то добавить отдельно магики бай и сел и закрытие по профиту в валюте тоже отдельно бай и сел.


Жду топик в столе заказов.
avatar

AM2

  • 27 марта 2016, 17:13
0
Просит индикатор. Скомпилируйте индикатор и пропишите в настройках название:

extern string IndName = "FL01";
avatar

AM2

  • 27 марта 2016, 13:48
0
Вот то что пока есть. Смотрите, тестируйте и пишите что добавить:


//+------------------------------------------------------------------+
//|                                                           FL.mq4 |
//|                                              Copyright 2016, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 1;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот
extern int StopLoss      = 0;        // лось
extern int TakeProfit    = 0;        // язь
extern int Box           = 200;      // высота коробки
extern int Slip          = 30;       // реквот
extern int Count         = 5;        // максимальное количество позиций
extern int CloseOn       = 1;        // 1-закрытие по сигналу
extern int Shift         = 1;        // сдвиг
extern int Magic         = 123;      // магик
extern string IndName    = "FL01";

int b=0,s=0;
datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0) sl=NormalizeDouble(price+StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0) sl=NormalizeDouble(price-StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     }

   r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void ClosePos()
  {
   double up = iCustom(NULL,0,IndName,1,Shift);
   double dn = iCustom(NULL,0,IndName,2,Shift);
//---
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY)
              {
               if(Close[1]<up && Open[1]>up)
                 {
                  CloseAll();
                 }
              }
            if(OrderType()==OP_SELL)
              {
               if(Close[1]>dn && Open[1]<dn)
                 {
                  CloseAll();
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseAll()
  {
   bool cl;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY)
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slip,White);
              }
            if(OrderType()==OP_SELL)
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slip,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;

   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderProfit()<0)
        {
         lot=OrderLots()*KLot;
        }
     }
   if(lot>MaxLot)lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double up = iCustom(NULL,0,IndName,1,Shift);
   double dn = iCustom(NULL,0,IndName,2,Shift);

   if(CountTrades()<1)
     {
      b=0;
      s=0;
     }

   if(CountTrades()<=Count && t!=Time[0])
     {
      if(Close[1]>dn && Open[1]<dn)
        {
         PutOrder(0,Ask);
         PutOrder(5,Close[1]-Box*Point);
         b++;
        }

      if(Close[1]<up && Open[1]>up)
        {
         PutOrder(1,Bid);
         PutOrder(4,Close[1]+Box*Point);
         s++;
        }
      t=Time[0];
     }

   //else if(CloseOn>0) ClosePos();

   Comment("\n UP: ",up,
           "\n DN: ",dn);
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 27 марта 2016, 13:04
0
Сначала по условиям смотрю: zakaz.opentraders.ru/25597.html
а потом все остальное :) 
avatar

AM2

  • 26 марта 2016, 20:35
0
Макди плюс другие индикаторы были такие советники. Ruslan71 любит такие заказывать :) 
avatar

AM2

  • 26 марта 2016, 20:33
0
После выходных добавлю :) 
avatar

AM2

  • 26 марта 2016, 20:21
+1
Там условие для валют. Для золота в эти выражения еще по нолику добавить нужно.


red<1000
lime<1000
avatar

AM2

  • 26 марта 2016, 13:27
0
после выходных посмотрю еще.
avatar

AM2

  • 26 марта 2016, 13:07
0
Нет я не возьмусь. Я не понимаю это ТЗ.
avatar

AM2

  • 25 марта 2016, 21:16