[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 472

 
Elektronik:

Все уже сделали за вас и прекрасно работает

 KimIV01.11.2006 18:49

Рекомендую мой проверенный код



https://forum.mql4.com/ru/4689


спасибо за ответ, но я хотел бы узнать почему у меня не работает:)
 
hoz:

 В документации написано, что функция SetIndexEmptyValue используется, чтобы указать "пустое" значение. То есть мы указываем, при каком значении не нужно ничего рисовать вообще. Это очень удобно в нашем случае, так как сигналы встречаются далеко не на каждом баре. Это работает следующим образом. Когда вам не нужно выводить стрелочку на текущем баре, вы присваиваете соответствующему элементу буфера данных "пустое" значение, в нашем случае 0. 

 Что-то я не въезжаю. Если рисуется что-либо по сигналу, то без сигнала рисоваться не будет. Тогда какой смысл от этой функции вообще?


Так уж принято, что компьютеру надо прямо указать, что значение отсутствует.  Потом это кажется и не ноль вовсе. Представте себе отрисовку буфера- вот у него значение 1.2903, 1.2905, 1.2904... И вдруг 0. В этих мистах линии индикатора придётся вдруг нырять ниже окна!!!   
 
hoz:

 В документации написано, что функция SetIndexEmptyValue используется, чтобы указать "пустое" значение. То есть мы указываем, при каком значении не нужно ничего рисовать вообще. Это очень удобно в нашем случае, так как сигналы встречаются далеко не на каждом баре. Это работает следующим образом. Когда вам не нужно выводить стрелочку на текущем баре, вы присваиваете соответствующему элементу буфера данных "пустое" значение, в нашем случае 0. 

 Что-то я не въезжаю. Если рисуется что-либо по сигналу, то без сигнала рисоваться не будет. Тогда какой смысл от этой функции вообще?

Эта функция заполняет массив (в данном случае идикаторный буфер) пустым значением EMPTY_VALUE = 0x7FFFFFFF.
 
drknn:


Вообще-то в языке есть специальный тип переменных - color называется. Например:

double Velichina;

color MyLine;

  Velichina=2.569;

  MyLine=Red; 


У меня было так 
  OrderSend( NULL, OP_BUY, lot, Ask, 3, NormalizeDouble( Bid- (stoplos*Point),Digits),   NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, 00FF33);  }
           
Чтож ему туда, спициально  color писать, что ли? 
 
Dimka-novitsek:

У меня было так Чтож ему туда, спициально  color писать, что ли? 

Нет, можно вместо 00FF33 написать просто Red, или любой цвет из таблицы Набора Web-цветов - откройте эту ссылку - там цветов предостаточно, чтоб не юзать шестнадцатиричный код.
 
Робот
//+------------------------------------------------------------------+
//|                                                     советник.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


  extern double  lot=1;                          
  extern int taymfreym=0 ;                           
  extern double  stoplos=20 ;                          
  extern double  takeprofit=50 ; 
  extern double  magicnumber=350//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
            double strela1 = iCustom(NULL, taymfreym, "индикатор", 0, 1);
            double strela2 = iCustom(NULL, taymfreym, "индикатор", 1, 1);
            int BUY=0,SELL=0;int ticket; 
            Print (  " strela1 " , strela1 , "   strela2  " , strela2  );
            
    
            
            for(int i=1; i<=OrdersTotal(); i++) {  
            if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
        {                                       // Анализ ордеров:
         if (OrderSymbol()!=Symbol( ) )continue;      // Не наш фин. инструм
         if (OrderMagicNumber( ) !=magicnumber)continue;
         if (OrderType()==0){ BUY++; ticket=OrderTicket( );}
         if (OrderType()==1) {SELL++;ticket=OrderTicket( );}    } }
         
   if (strela1>strela2&&BUY==0&&SELL==0){               
            
           OrderSend( NULL, OP_BUY, lot, Ask, 3, NormalizeDouble( Bid- (stoplos*Point),Digits), 
  NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE);  }
           
           
   if (strela1<strela2&&BUY==0&&SELL==0){  
   
            OrderSend( NULL, OP_SELL, lot, Bid, 3, NormalizeDouble( Ask- (stoplos*Point),Digits), 
  NormalizeDouble( Bid+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ; }
            
            
  if (strela1>strela2&&BUY==0&&SELL!=0){ 
   OrderSelect(ticket, SELECT_BY_TICKET);
   OrderClose(  ticket , OrderLots( ) , OrderOpenPrice( ) , 3, CLR_NONE);                 
   OrderSend( NULL, OP_BUY, lot, Ask, 3, NormalizeDouble( Bid- (stoplos*Point),Digits),  
 NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE);  }         
      
  if (strela1<strela2&&SELL==0&&BUY!=0){ 
   OrderSelect(ticket, SELECT_BY_TICKET);
   OrderClose(  ticket , OrderLots( ) , OrderOpenPrice( ) , 3, CLR_NONE);                 
   OrderSend( NULL, OP_SELL, lot, Bid, 3, NormalizeDouble( Ask- (stoplos*Point),Digits),  
 NormalizeDouble( Bid+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ; }
      
            
            
//----
   return(0);
  }
//+------------------------------------------------------------------+
Это место 
 double strela1 = iCustom(NULL, taymfreym, "индикатор", 0, 1);
 double strela2 = iCustom(NULL, taymfreym, "индикатор", 1, 1);

Не получается   strela2, ее значение напостой -1.  Задача если стрелочка вверх, ордер бай и наоборот. А может я вообще что-то вовсе не так пишу!!

Я этим   iCustom первый раз пользуюсь. Верно ли вообще так их сравнивать?  strela1 и  strela2 ? Что вообще за значения я так получаю- не ну я понял что это

   

   первый и второй буферы, но не более того

Чем он вообще стрелки рисует??  

 

Индикатор 

/*ДЕКОМПИЛ УДАЛЕН, ВАМ ПРЕДУПРЕЖДЕНИЕ*/

Чем он вообще стрелки рисует?? 

 

Что означает слово "тралит"?

Цитата полностью звучит так:

<Советник для входов использует сигналы индикатора "Alligator", переводит позицию в безубыток и тралит с заданным шагом.>

 
Не понял! Мне чел по почте прислал индикатора. Откуда это он декомпил? Да я и не раз, не раз встречал совершенно подобные индикаторы. Верните пожалуста на место!
 
Да, строку в нём увидел.