Slava78

 
Уровень 12

  Торгую в компаниях:


Лучшее от Slava78



Советник Комментариев 9
2020-03-17 14:42:32Рейтинг 0

Советник Комментариев 15
2020-05-28 14:02:26Рейтинг 0

Советник
2020-05-28 05:26:27Рейтинг 0

ТС "Новая Черепаха" Комментариев 3
2020-04-19 10:01:11Рейтинг 0

Советник Комментариев 11
2020-01-02 11:45:26Рейтинг 0

Советник

Советник ставит отложки

EA_ENV_3.mq4 (31 Kb)
  • +4
  • Просмотров: 1747
  • 25 мая 2020, 06:23
  • Slava78
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

  Предыдущая запись в моем блоге
Советник с отложками
Следующая запись в моем блоге  
Советник
22 мая 2020
28 мая 2020

Комментарии (12)

+
0
Если с другом вышел в путь
Веселей дорога
Без друзей меня чуть-чуть
А с друзьями много!!!
avatar

  12  Slava78 Автор Сообщений: 598

  • 25 мая 2020, 06:24
+
0
;) Это для чего нужно
<code>TimeBar=Time[0]+Period()*TaimOut*60;</code>

Редактирован: 25 мая 2020, 06:53
avatar

  16  ssg Сообщений: 817

  • 25 мая 2020, 06:52
+
0
Для чего-то нужно:D 
Редактирован: 25 мая 2020, 09:26
avatar

  12  Slava78 Автор Сообщений: 598

  • 25 мая 2020, 09:24
+
0
А попробуй за комментировать и прогони в тестере.:) 
avatar

  16  ssg Сообщений: 817

  • 25 мая 2020, 16:23
+
0
Я скрин выложил ;) 
avatar

  12  Slava78 Автор Сообщений: 598

  • 25 мая 2020, 18:03
+
0
Very Good!
avatar

  5  nixepace Сообщений: 41 - ОН

  • 26 мая 2020, 20:36
+
0
Благодарю всем за внимание и за то что не отказали!!! *drinks* 
Кое что получилось заработать)

Не сочтите на наглость не могли бы заменить индикатор в советнике вот этим?

И еще, ограничить количество ордеров когда когда возникает условие для открытия ордера? На той неделе 15 ордеров открылось. Повезло то что на телефоне успел позакрывать


Редактирован: 11 июня 2020, 16:53
avatar

  5  nixepace Сообщений: 41 - ОН

  • 9 июня 2020, 16:01
+
+1
1.Ограничивать кол-во ордеров не советую, лучше увеличьте шаг.
Иначе при длинном тренде лимит ордеров кончиться, а тренд так и будет
продолжаться и нечем будет усредняться.
2.Сделал на стандартном ББ. Ваш излишне наворочен.Если не смогли сами его
добавить — значит не сможете и разобраться с индикатором.
3.Поменяйте весь блок настроек на этот:

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 1;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот
extern int StopLoss      = 400;      // стоп лосс
extern int TakeProfit    = 300;      // тейк профит
extern double Profit     = 100;      // общая прибыль
extern double Loss       = 100;      // общий убыток
extern int BULevel       = 0;        // уровень БУ
extern int BUPoint       = 0;        // пункты БУ
extern int TrailingStop  = 100;      // трал
extern bool Usredn       = 0;        // 1-использовать усреднение 0-не использовать
extern int Step          = 50;       // шаг усреднения
extern int Count         = 5;        // число ордеров
extern bool Buystop      = 1;        //1-выстовить байстоп 0-не выставлять
extern bool Buylimit     = 0;        //1-выстовить байлимит 0-не выставлять
extern bool Sellstop     = 1;        //1-выстовить селлстоп 0-не выставлять
extern bool Selllimit    = 0;        //1-выстовить селллимит 0-не выставлять
extern int Expiration    = 5;        // истечение ордера(часы)
extern int Step_stop     = 100;      // дистанция для стопордера
extern int StartHour     = 0;        // час начала торговли
extern int StartMin      = 30;       // минута начала торговли
extern int EndHour       = 23;       // час окончания торговли
extern int EndMin        = 30;       // минута окончания торговли
extern int CloseSig      = 0;        // 1-закрытие по сигналу 0-нет
extern int TaimOut       = 10;       // тайм аут ордера(свечей)
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

extern int MAPeriod      = 240;      // период МА
extern bool Envelop      = true;
extern int EPeriod       = 240;
extern int Method        = 0;
extern int Price1        = 0;
extern int Shift         = 0;
extern double Dev        = 0.3;

extern bool BBands       = true;
extern int PeriodBands   = 500,
           Deviation     = 2,
           bands_shift   = 0;
datetime TimeBar;

4.Замените так же весь блок
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   
   double ma=iMA(NULL,0,MAPeriod,0,0,0,Shift);
   double EUP=iEnvelopes(Symbol(),0,EPeriod,Method,Shift,Price1,Dev,1,1);
   double EDN=iEnvelopes(Symbol(),0,EPeriod,Method,Shift,Price1,Dev,2,1);
   
   double bandsH=iBands(NULL,0,PeriodBands,Deviation,bands_shift,0,1,1);
   double bandsL=iBands(NULL,0,PeriodBands,Deviation,bands_shift,0,2,1);
   
   if(BULevel>0) BU();
   if(TrailingStop>0) Trailing();
   if(AllProfit()>Profit && Profit>0) CloseAll();
   if(AllProfit()<-Loss && Loss>0) CloseAll();

//---  стоповые в обратную сторону первой позиции 
 if(Envelop)
  { 
   if(CountTrades()<1 && TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()) && TimeBar<Time[0])
     {
      if(Ask<EDN) 
        {
           TimeBar=Time[0]+Period()*TaimOut*60;
          if(Buystop) PutOrder(4,Ask+Step_stop*_Point);
          if(Buylimit)PutOrder(2,Ask-Step_stop*_Point);
        }
     }
   if(CountTrades()<1 && TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()) && TimeBar<Time[0])
     {   
      if(Bid>EUP)
        {
           TimeBar=Time[0]+Period()*TaimOut*60;
          if(Selllimit)PutOrder(3,Ask+Step_stop*_Point);
          if(Sellstop) PutOrder(5,Bid-Step_stop*_Point);
        }    
     }
   }
//--- 
if(BBands)
  { 
   if(CountTrades()<1 && TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()) && TimeBar<Time[0])
     {
      if(Ask<bandsL) 
        {
           TimeBar=Time[0]+Period()*TaimOut*60;
          if(Buystop) PutOrder(4,Ask+Step_stop*_Point);
          if(Buylimit)PutOrder(2,Ask-Step_stop*_Point);
        }
     }
   if(CountTrades()<1 && TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()) && TimeBar<Time[0])
     {   
      if(Bid>bandsH)
        {
           TimeBar=Time[0]+Period()*TaimOut*60;
          if(Selllimit)PutOrder(3,Ask+Step_stop*_Point);
          if(Sellstop) PutOrder(5,Bid-Step_stop*_Point);
        }    
     }
   }
//---
 if(Usredn)
  {
   if(CountTrades()>0 && CountTrades()<Count)
     {
      if(FindOrderType()==0 && (FindLastBuyPrice()-Ask)/_Point>=Step) PutOrder(0,Ask);  
      if(FindOrderType()==1 && (Bid-FindLastSellPrice())/_Point>=Step) PutOrder(1,Bid); 
     }
  }
   if(CloseSig>0)
     {
      if(Bid>ma) CloseAll(0);
      if(Ask<ma)  CloseAll(1);
     }

   Comment("\n Lot: ",Lot(),
           "\n Trades: ",CountTrades(),
           "\n Profit: ",AllProfit());
  }
//+------------------------------------------------------------------+

5.Обратите внимание в блоке настроек на
extern bool Envelop = true;//false
extern bool BBands = true;//false
сейчас есть возможность торговать или по старому алгоритму или торговать по
ББ.
avatar

  16  ssg Сообщений: 817

  • 9 июня 2020, 19:11
+
0
Благодарю! Хорошо весьма!!!

Первый раз понял как «заменить блок» скомпилировал и 0 ошибок!

Много ордеров это не про усреднение, а то что он на каждом алерте прибавляет ордер. Усреднение ставлю по максимуму. 1100 пипсов на некоторых парах

Профитов вам!
avatar

  5  nixepace Сообщений: 41 - ОН

  • 9 июня 2020, 23:13
+
0
Что то ББ совсем неадекватный).
если бы тот индикатор по ссылке
Если бы из него выкинуть несколько уровней, а оставить только один, самый крайний

Или извлечь только алерт для открытия ордера?

Очень нужно
Редактирован: 11 июня 2020, 16:53
avatar

  5  nixepace Сообщений: 41 - ОН

  • 10 июня 2020, 00:16
+
+1
1.Это не ББ неадекватный, а пользователь неадекватный.
2.Принцип расчета Энвелоп и ББ совершенно разный.
Нанесите оба индикатора на график и увидите совершенно разные каналы.
Торговля с использованием ББ основана на других принципах и правилах.
Прочитайте как торгуют используя ББ.
3.Все ББ построены по одному алгоритму.Предложенный не исключение.
Только больше наворотов.
4.Добавил что просите.Торговля от самых крайних.
5.Алгоритм замены блоков прежний.

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 1;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот
extern int StopLoss      = 400;      // стоп лосс
extern int TakeProfit    = 300;      // тейк профит
extern double Profit     = 100;      // общая прибыль
extern double Loss       = 100;      // общий убыток
extern int BULevel       = 0;        // уровень БУ
extern int BUPoint       = 0;        // пункты БУ
extern int TrailingStop  = 100;      // трал
extern bool Usredn       = 0;        // 1-использовать усреднение 0-не использовать
extern int Step          = 50;       // шаг усреднения
extern int Count         = 5;        // число ордеров
extern bool Buystop      = 1;        //1-выстовить байстоп 0-не выставлять
extern bool Buylimit     = 0;        //1-выстовить байлимит 0-не выставлять
extern bool Sellstop     = 1;        //1-выстовить селлстоп 0-не выставлять
extern bool Selllimit    = 0;        //1-выстовить селллимит 0-не выставлять
extern int Expiration    = 5;        // истечение ордера(часы)
extern int Step_stop     = 100;      // дистанция для стопордера
extern int StartHour     = 0;        // час начала торговли
extern int StartMin      = 30;       // минута начала торговли
extern int EndHour       = 23;       // час окончания торговли
extern int EndMin        = 30;       // минута окончания торговли
extern int CloseSig      = 0;        // 1-закрытие по сигналу 0-нет
extern int TaimOut       = 10;       // тайм аут ордера(свечей)
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

extern int MAPeriod      = 240;      // период МА
extern bool Envelop      = true;
extern int EPeriod       = 240;
extern int Method        = 0;
extern int Price1        = 0;
extern int Shift         = 0;
extern double Dev        = 0.3;

extern bool BBands       = true;
extern int PeriodBands   = 500,
           Deviation     = 2,
           bands_shift   = 0;
           
extern bool VWAPbands    = true;
          
datetime TimeBar;


//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   
   double ma=iMA(NULL,0,MAPeriod,0,0,0,Shift);
   double EUP=iEnvelopes(Symbol(),0,EPeriod,Method,Shift,Price1,Dev,1,1);
   double EDN=iEnvelopes(Symbol(),0,EPeriod,Method,Shift,Price1,Dev,2,1);
   
   double bandsH=iBands(NULL,0,PeriodBands,Deviation,bands_shift,0,1,1);
   double bandsL=iBands(NULL,0,PeriodBands,Deviation,bands_shift,0,2,1);
  
   double up=iCustom(NULL,0,"VWAP bands alerts",0,1);
   double dn=iCustom(NULL,0,"VWAP bands alerts",6,1);
 
   
   if(BULevel>0) BU();
   if(TrailingStop>0) Trailing();
   if(AllProfit()>Profit && Profit>0) CloseAll();
   if(AllProfit()<-Loss && Loss>0) CloseAll();

//---  стоповые в обратную сторону первой позиции 

 if(Envelop==true)
  { 
   if(CountTrades()<1 && TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()) && TimeBar<Time[0])
     {
      if(Ask<EDN) 
        {
           TimeBar=Time[0]+Period()*TaimOut*60;
          if(Buystop) PutOrder(4,Ask+Step_stop*_Point);
          if(Buylimit)PutOrder(2,Ask-Step_stop*_Point);
        }
     }
   if(CountTrades()<1 && TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()) && TimeBar<Time[0])
     {   
      if(Bid>EUP)
        {
           TimeBar=Time[0]+Period()*TaimOut*60;
          if(Selllimit)PutOrder(3,Ask+Step_stop*_Point);
          if(Sellstop) PutOrder(5,Bid-Step_stop*_Point);
        }    
     }
   }
//--- 
if(BBands==true)
  { 
   if(CountTrades()<1 && TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()) && TimeBar<Time[0])
     {
      if(Ask<bandsL) 
        {
           TimeBar=Time[0]+Period()*TaimOut*60;
          if(Buystop) PutOrder(4,Ask+Step_stop*_Point);
          if(Buylimit)PutOrder(2,Ask-Step_stop*_Point);
        }
     }
   if(CountTrades()<1 && TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()) && TimeBar<Time[0])
     {   
      if(Bid>bandsH)
        {
           TimeBar=Time[0]+Period()*TaimOut*60;
          if(Selllimit)PutOrder(3,Ask+Step_stop*_Point);
          if(Sellstop) PutOrder(5,Bid-Step_stop*_Point);
        }    
     }
   }
//---
if(VWAPbands==true)
  { 
   if(CountTrades()<1 && TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()) && TimeBar<Time[0])
     {
      if(Ask<dn) 
        {
           TimeBar=Time[0]+Period()*TaimOut*60;
          if(Buystop) PutOrder(4,Ask+Step_stop*_Point);
          if(Buylimit)PutOrder(2,Ask-Step_stop*_Point);
        }
     }
   if(CountTrades()<1 && TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()) && TimeBar<Time[0])
     {   
      if(Bid>up)
        {
           TimeBar=Time[0]+Period()*TaimOut*60;
          if(Selllimit)PutOrder(3,Ask+Step_stop*_Point);
          if(Sellstop) PutOrder(5,Bid-Step_stop*_Point);
        }    
     }
   }
//--- 
 if(Usredn)
  {
   if(CountTrades()>0 && CountTrades()<Count)
     {
      if(FindOrderType()==0 && (FindLastBuyPrice()-Ask)/_Point>=Step) PutOrder(0,Ask);  
      if(FindOrderType()==1 && (Bid-FindLastSellPrice())/_Point>=Step) PutOrder(1,Bid); 
     }
  }
   if(CloseSig>0)
     {
      if(Bid>ma) CloseAll(0);
      if(Ask<ma)  CloseAll(1);
     }

   Comment("\n Lot: ",Lot(),
           "\n Trades: ",CountTrades(),
           "\n Profit: ",AllProfit());
  }
//+------------------------------------------------------------------+
avatar

  16  ssg Сообщений: 817

  • 10 июня 2020, 05:28
+
0
Здравствуйте!
AM2 доработал индикатор. А потом я попытался приделать его в этот советник.)

Но ничего не вышло)

Если можно не удаляя других. дополнить этим индикатором. Он хорош тем что реагирует на падение быстрее других скользящих, и не только.

avatar

  5  nixepace Сообщений: 41 - ОН

  • 27 июня 2020, 18:06

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий
Начать торговлю с Альпари