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

 
Craft:

Тестер ошибок не пишет, просто не выставляеся ни один ордер.

Укажите пожалуйста на ошибку, логика: если значение МА [0] бара больше МА [1] необходимо купить, наоборот - продать (этот код написан для примера, чтобы попытаться разобравшись из простого условия создать сложнее).


В коде используется не МА[0] и МА[1], а МА[j] и MA[j+1];

После небольшой редакции кода (совсем маленькой) появилась ошибка 4107

Я могу довести до рабочего состояния, но это уже будет совсем другой советник. Максимально упрощаю. А тут код можно уменьшить больше чем в два раза.

Если Стопы и тейки сделать равными нулю, то советник начинает открывать сделки

 
Vinin: Я могу довести до рабочего состояния, но это уже будет совсем другой советник. Максимально упрощаю. А тут код можно уменьшить больше чем в два раза.
Vinin, если можно доведите до рабочего состояния с закрытием по стопу или тейкпрофиту, мне главное философию mql прочувствовать в обращении к разным барам в массиве.
 
Добрый вечер!Уменя не работают индикаторы MQL4 перетягиваю на график,и совсем ничего!Пожалуста,помогите!!
ответить


 Дело в том,советники,работают,а индикаторы-нет,совсем никак!!
 
Craft:
Vinin, если можно доведите до рабочего состояния с закрытием по стопу или тейкпрофиту, мне главное философию mql прочувствовать в обращении к разным барам в массиве.

Проверил. Работает. Сигнал - смена напрвления машки
Файлы:
15.2_1.mq4  18 kb
 
Craft:
Красиво, а как это в коде оформляется (логика): If MA150+20 > МА5 > MA150-20 and MA150+20 > МА21 > MA150-20 Then flat else Trend.
Логика где-то здесь... На скорую руку состряпал, так что извиняйте, если что...


//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
//------------------------------- Функция определения тренда по МАшкам ----------------------------
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
// Возврвщает 1 = тренд вверх, -1 = тренд вниз, 0 = флэт...
//------------------------------------------------------------
// -------------- Внешние переменные -------------
//============================================================
extern string  MATrendDetectorParameters = "Параметры детектора тренда";

extern double  Limit150 =20;
extern double  Limit21  =20;
extern double  Limit5   =20;

// ===============================================================
// ---------------------- Собственно сама функция ----------------
// ===============================================================
int   TrendDetectorMA (string sy, int tf)
{

double   MA150, MA150UP, MA150DN,
         MA21, MA21UP, MA21DN,
         MA5, MA5UP, MA5DN,
         
         pt;
// ---------------------------------------
   pt=Point;
   
   if (sy=="" || sy=="0") sy=Symbol();
      
   MA150    =iMA(sy,tf,150,0,MODE_SMA, PRICE_MEDIAN,1);
   MA21     =iMA(sy,tf,21,0,MODE_SMA, PRICE_MEDIAN,1);
   MA5      =iMA(sy,tf,5,0,MODE_SMA, PRICE_MEDIAN,1);
    
   MA150UP  =MA150+Limit150*pt;
   MA150DN  =MA150-Limit150*pt;
   
   MA21UP   =MA21+Limit21*pt;
   MA21DN   =MA21-Limit21*pt;
   
   MA5UP    =MA5+Limit5*pt;
   MA5DN    =MA5-Limit5*pt;
   
// --------------------------------------
// ------------- Рассчёт данных ---------

   if (
         MA5DN>MA21UP &&         // Если нижняя граница быстрой МАшки выше верхней границы средней МАшки и...
         MA21DN>MA150UP          // нижняя граница средней МАшки выше верхней границы медленной МАшки,
      )   
         return(1);              // значит тренд вверх, возвращаем 1
         
   if (
         MA5UP<MA21DN &&         // Если верхняя граница быстрой МАшки ниже нижней границы средней МАшки и...
         MA21UP<MA150DN          // верхняя граница средней МАшки ниже нижней границы медленной МАшки,
      )   
         return(-1);             // значит тренд вниз, возвращаем -1
         
   else  return(0);              // В остальных случаях у нас флэт, возвращаем 0
}

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
Вызов примерно так:
int tr=TrendDetectorMA (NULL, 5);   // NULL, 0 = текущий символ, либо явно, напр. EURUSD
                                    // 5 = таймфрейм, можно 15, 30, 60, 240, 1440, 10080, 43200, хотя можно было 
                                    // и красивее сделать.
   
   Comment ("\n","Тренд = ", tr);
   return;
 

Ребят подскажите пожалуйста как можно использовать в индикаторе данные другого сервера. хотел вот использовать объемы Рамуса в МТ4 там вроде более реальные объемы.

  

 
IgorM:


код плиз, у меня система настроена так, что всегда хочет открыть ордер, и я ее сдерживаю запрещающими сигналами, только сигналы дают разрешение на торговлю = ордер

вот щас и проблема небольшая - опоздания в торговле нет, есть проблемы со случайными ордерами на ночном флете - пока мечтаю научить советника отличать флет, а не ограничивать его временем суток для работы. Для оценки тренда я использую старшие ТФ в логике работы советника, как выход пока получается ставить его на ночь на часовой ТФ - вроде не так тупит как на М15

Зачем ограничивать? Можно же использовать отдельные стратегии для тренда и флэта. Пусть уж всегда работает, раз уж работает... ;)
 
Спасибо, Vinin, спасибо, artmedia70.
 
Dimka-novitsek:

Добрый вечер!Уменя не работают индикаторы MQL4 перетягиваю на график,и совсем ничего!Пожалуста,помогите!!
ответить


Дело в том,советники,работают,а индикаторы-нет,совсем никак!!


справка F1 - раздел технические индикаторы
 

Как с помощью object crate и object set нарисовать горизонтальную линию, например, в окне стохастика?