[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 611

 

Помогите написать простенький индикатор, который в основном окне рисует линии максимумов и минимумов за нужный период (который задается внешней переменной).

 

Прошу подсказать где найти саветник с 15 рабочими днями.

Прошу сылку или фаил или название.

Ну и как всегда благодарен за потраченое время.

 
41ckm39fi:

Добрый вечер.

Подскажите пожалуйста в чем ошибка, индикатор не выдает сообщение о пересечении двух MA.


А вы хорошо подумали прежде чем написали этот индикатор?

Логику распишите, хотя бы для себя.

#property indicator_chart_window

extern int        Period_MA_fast         = 5,
                  Period_MA_med          = 8,
                  Period_MA_slow         = 16,
                  period_DeMarker       = 14;
//---- 
double            DeMarker_buffer0[],
                  Speed_MA_fast[],
                  Speed_MA_med[],
                  Speed_MA_slow[];      

#define SIGNAL_BAR 1
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   //---- indicators
   IndicatorBuffers(4);
   SetIndexBuffer(0,DeMarker_buffer0);
   SetIndexBuffer(1,Speed_MA_fast);
   SetIndexBuffer(2,Speed_MA_med);
   SetIndexBuffer(3,Speed_MA_slow);
   SetIndexStyle(0,DRAW_NONE);
   SetIndexStyle(1,DRAW_NONE);
   SetIndexStyle(2,DRAW_NONE);
   SetIndexStyle(3,DRAW_NONE);
   //----
   return(0);
  }

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() {
   int    counted_bars=IndicatorCounted();
   int    i,limit;
   
   if(counted_bars>0) counted_bars--;
      limit=Bars-counted_bars;
   //----
   for(i=limit; i>=0; i--) {
      DeMarker_buffer0[i]=iDeMarker(NULL,0,14,i);
      Speed_MA_med[i]=iMA(NULL,0,Period_MA_med,0,MODE_LWMA,PRICE_CLOSE,i);
      Speed_MA_slow[i]=iMA(NULL,0,Period_MA_slow,0,MODE_LWMA,PRICE_CLOSE,i);
   }
   
   for(i=limit; i>=0; i--)
      Speed_MA_fast[i]=iMAOnArray(DeMarker_buffer0,0,5,0,MODE_LWMA,i);
   
   static int PrevTime = 0;

   if(PrevTime >= Time[0] ) return(0);
   PrevTime = Time[0];

   if(Speed_MA_fast[SIGNAL_BAR] - 0.3 > 0)
      if (0.3 - Speed_MA_fast[SIGNAL_BAR+1] >= 0)
         Alert( "sMA(", Symbol(), ", ", Period(), ")  -  BUY!!!" );

   if(0.7 - Speed_MA_fast[SIGNAL_BAR] > 0)
      if (Speed_MA_fast[SIGNAL_BAR+1] - 0.7 >= 0)
         Alert("sMA(", Symbol(), ", ", Period(), ")  -  SELL!!!");

   if(Speed_MA_med[SIGNAL_BAR] - Speed_MA_slow[SIGNAL_BAR] > 0)
      if (Speed_MA_med[SIGNAL_BAR+1] - Speed_MA_slow[SIGNAL_BAR+1] >= 0)  
         Alert( "speedMA(", Symbol(), ", ", Period(), ")  -  BUY!!!" );   

   if(Speed_MA_slow[SIGNAL_BAR] - Speed_MA_med[SIGNAL_BAR] > 0)
      if (Speed_MA_slow[SIGNAL_BAR+1] - Speed_MA_med[SIGNAL_BAR+1] >= 0)  
         Alert( "speedMA(", Symbol(), ", ", Period(), ")  -  SELL!!!" );     
  
  
   return(0);
}
//+------------------------------------------------------------------+
Возможно будет работать, не проверял
 

Пасибо Всем! Есть ещё один вопросик.........

есть советник с условиями входа и выхода по определеленным сигналам (не важно каким)

например три экрана-один индикатор опять же к примеру Force или Stohostick

условия выхода тоже только по нему-

все в ожуре, но стоит поставить дополнительный Stop Loss для защиты поз

прим.=10п. слив конкретный

................. можно ли использовать такой советник без доп. лосей, хотя бы

малым лотом=0,01 ведь сигнал на выход будет так или иначе

P.S. Вот и подумал про мыло или аську-только открылся а MT тебе сообщуху

в ящик и ты уже кубатуришь где будет твоя лучшая остановка по мимо советника?????????

.......просящему у тебя не отказывай

 
KlugerX35:

Пасибо Всем! Есть ещё один вопросик.........

есть советник с условиями входа и выхода по определеленным сигналам (не важно каким)

например три экрана-один индикатор опять же к примеру Force или Stohostick

условия выхода тоже только по нему-

все в ожуре, но стоит поставить дополнительный Stop Loss для защиты поз

прим.=10п. слив конкретный

................. можно ли использовать такой советник без доп. лосей, хотя бы

малым лотом=0,01 ведь сигнал на выход будет так или иначе

P.S. Вот и подумал про мыло или аську-только открылся а MT тебе сообщуху

в ящик и ты уже кубатуришь где будет твоя лучшая остановка по мимо советника?????????

.......просящему у тебя не отказывай


Если в советнике предусмотрен "технический" выход, то стоп ему не нужен, если хочешь поставить на всякий случай, для подстраховки, то ставь по больше тогда.

 прим.=10п. слив конкретный

Для какого переода такой маленький, для минутки? Конечно, он сенокосный, и будет рубить даже потенциально прибыльные сделки.

можно ли использовать такой советник без доп. лосей, хотя бы

малым лотом=0,01 

Если от стабильно работает, нормально обрабатывает ошибки, и результат его торговли тебя устраивает, то можно.
 

Такой вопрос - мож кто может толково объяснить.

Почему утверждается шо закрытие встречным ордером экономит один спред? Ведь первая сделка, наприимер Бай покупается по Аску и продается по уровню цены Бида на тот момент (никакого выигрыша в общем размере позиции нет), а вторая - Сел - открывается по Биду и соответсвенно длина позиции расчытывается исходя цены закрытия по Аску.

В учебнике воопще какой-то непонятный пример https://book.mql4.com/ru/trading/orderclose там разница не в спред как утверждается а в размере второй сделки - в закрытии по одну 2 по -15, а закрытие по встречной только 15, то есть исчезает весь убыток от сделки, а никак не спред.

Так в чем тут фишка?

 
FatyM:

Прошу подсказать где найти саветник с 15 рабочими днями.

Прошу сылку или фаил или название.

Ну и как всегда благодарен за потраченое время.

Файлы:
 
Vinin:


А вы хорошо подумали прежде чем написали этот индикатор?

Логику распишите, хотя бы для себя.

Возможно будет работать, не проверял

Я переписал логику сравнения мувингов все равно нет сообщений, не могу понять в чем ошибка.
#property indicator_chart_window
#property  indicator_level1 0.3
#property  indicator_level2 0.7
//---- 
extern int        Period_DeMarker       = 14;
//---- 
double            DeMarker_buffer0[],
                  MA0[],
                  MA1[],
                  MA11[],
                  MA2[],                        
                  MA22[];      

#define SIGNAL_BAR 1
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
IndicatorBuffers(6);
SetIndexBuffer(0,DeMarker_buffer0);
SetIndexBuffer(1,MA0);
SetIndexBuffer(2,MA1);
SetIndexBuffer(3,MA2);
SetIndexBuffer(4,MA11);
SetIndexBuffer(5,MA22);
SetIndexStyle(0,DRAW_NONE);
SetIndexStyle(1,DRAW_NONE);
SetIndexStyle(2,DRAW_NONE);
SetIndexStyle(3,DRAW_NONE);
SetIndexStyle(4,DRAW_NONE);
SetIndexStyle(5,DRAW_NONE);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   int    i,limit;
//----
if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//----
  for(i=limit; i>=0; i--)
  DeMarker_buffer0[i]=iDeMarker(NULL,0,14,i);
//---- 
  for(i=limit; i>=0; i--)
  
  MA0[i]=iMAOnArray(DeMarker_buffer0,0,5,0,MODE_LWMA,i);
//----   
  static int PrevTime = 0;
//---- 
  if(PrevTime >= Time[0]) return(0);
//---- 
  PrevTime = Time[0];
//----
                if(MA0[SIGNAL_BAR] - 0.3 > 0 && 0.3 - MA0[SIGNAL_BAR+1] >= 0)  
//---- 
                                Alert( "sMA(", Symbol(), ", ", Period(), ")  -  BUY!!!" );
//----
if(PrevTime <= Time[0]) 

return(0);
//---- 
  PrevTime = Time[0];
//----          
                if(0.7 - MA0[SIGNAL_BAR] > 0 && MA0[SIGNAL_BAR+1] - 0.7 >= 0)
//----               
                                Alert("sMA(", Symbol(), ", ", Period(), ")  -  SELL!!!");
                                
                                
MA1[i]=iMA(NULL,0,8,0,MODE_LWMA,PRICE_CLOSE,i);
                        
MA2[i]=iMA(NULL,0,16,0,MODE_LWMA,PRICE_CLOSE,i);

MA11[i]=iMA(NULL,0,8,0,MODE_LWMA,PRICE_CLOSE,i);
                        
MA22[i]=iMA(NULL,0,16,0,MODE_LWMA,PRICE_CLOSE,i);                                                       
                
//----   
if((MA1[i]>MA2[i]) && (MA11[i+1]<MA22[i+1]))  
//---- 
                                Alert( "speedMA(", Symbol(), ", ", Period(), ")  -  SIGNAL1!!!" );    

if((MA1[i]<MA2[i]) && (MA11[i+1]>MA22[i+1]))  
//---- 
                                Alert( "speedMA(", Symbol(), ", ", Period(), ")  -  SIGNAL2!!!" );   

   return(0);
  }
 

Как корректно заставить работать MathRand, у меня при каждом запуске выдает один и тот же набор случайных чисел. А это значит они не случайны

 

Как корректно заставить работать MathRand, у меня при каждом запуске выдает один и тот же набор случайных чисел. А это значит они не случайны

Причина обращения: