MA8 + MA5 в подвале, как написать советника?
Показано с 1 по 5 из 5

Тема: MA8 + MA5 в подвале, как написать советника?

  1. #1
    Местный
    Регистрация
    20.07.2015
    Сообщений
    17
    Благодарности
    Получено: 1
    Отправлено: 5

    MA8 + MA5 в подвале, как написать советника?

    Добрый день!
    Подскажите пожалуйста или покажите где уже есть такое.
    Есть две MA8 и MA5 в отдельном окне (в подвале), как сделать так чтобы при пересечении закрывался SELL и открывался BUY, в обратном случае - закрывался BUY и открывался SELL.
    Вот начал писать такой код, но что-то у меня не выходит. (делал по аналогии других индикаторов)

    Код:
    //--------------------------------------------------------------------
    // Signal.mq4
    //--------------------------------------------------------------------
    //extern int Period_MA1=8;             
    //extern int Period_MA2=5;
    //--------------------------------------------------------------------
    int start()                          
      {
       double MA1 = iCustom(NULL, 0, "Moving Average", 0, 0); 
       double MA2 = iCustom(NULL, 0, "Moving Average", 0, 0);
       
       
       Comment("MA1 = " + DoubleToString(MA1) + "\n" +
               "MA2 = " + DoubleToString(MA2));
       
       
                              
    //--------------------------------------------------------------------
       
    
       
    //--------------------------------------------------------------------
       if (MA2 > MA1)   //
         {
         
         
         //-----------------код закрывает БАЙ ордера--------------------
      int cnt = OrdersTotal();
      for (int i=cnt-1; i>=0; i--) {
            if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
      if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, 2);
      //if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, 2);
      }
    //-----------------код закрывает БАЙ ордера--------------------
         
         
         
    
                                          if(OrdersTotal() == 0) // если нет открытых ордеров то открывать ордер на покупку
                                             {
                                             OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, Ask-500*Point, Ask+500*Point); // первым указывается ЛОСЬ, вторым ПРОФИТ
                                             }
                                          else
                                          Print("BUY - ORDER NE USTANOVLEN!!!");
         }
         
         
         
    
         
    //--------------------------------------------------------------------
       if (MA2 < MA1)   //
         {
         
         
         //-----------------код закрывает СЕЛЛ ордера--------------------
      int cnt = OrdersTotal();
      for (int i=cnt-1; i>=0; i--) {
            if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
      if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, 2);
      }
    //-----------------код закрывает СЕЛЛ ордера--------------------
         
    
    
                                          if(OrdersTotal() == 0) // если нет открытых ордеров то открывать ордер на продажу
                                             {
                                             OrderSend(Symbol(), OP_SELL, 0.1, Bid, 3, Bid+500*Point, Bid-500*Point); // первым указывается ЛОСЬ, вторым ПРОФИТ
                                             }
                                          else
                                          Print("SELL - ORDER NE USTANOVLEN!!!");
         }
    //--------------------------------------------------------------------
       return(0);
    }                           // Выход из start()

    Вы не можете благодарить!

  2. #2
    Эксперт
    Регистрация
    16.08.2012
    Адрес
    Челябинск
    Сообщений
    1,903
    Благодарности
    Получено: 688
    Отправлено: 73
    Цитата Сообщение от unikum22 Посмотреть сообщение
    как сделать так чтобы при пересечении
    Пересечение требует 4-ре значения, а у вас 2. Чтобы работало на 2-х нужен анализ о наличии открытой позиции.

    Вы не можете благодарить!
    Для заказа кода, напишите в личку - я отвечу на ваше предложение.

  3. #3
    Местный
    Регистрация
    20.07.2015
    Сообщений
    17
    Благодарности
    Получено: 1
    Отправлено: 5
    Цитата Сообщение от wayfarer Посмотреть сообщение
    Пересечение требует 4-ре значения, а у вас 2.
    в смысле 4-ре значения? MA всего две, какие еще значения нужно указать?

    Вы не можете благодарить!

  4. #4
    Эксперт
    Регистрация
    16.08.2012
    Адрес
    Челябинск
    Сообщений
    1,903
    Благодарности
    Получено: 688
    Отправлено: 73
    Цитата Сообщение от unikum22 Посмотреть сообщение
    в смысле 4-ре значения? MA всего две, какие еще значения нужно указать?
    посмотрите рисунок, скажите где есть пересечение, а где нет, хотя везде есть две МА.
    Далее, что у вас в коде:
    double MA1 = iCustom(NULL, 0, "Moving Average", 0, 0);
    double MA2 = iCustom(NULL, 0, "Moving Average", 0, 0);
    Если вы не видите то сообщаю, что у вас MA1==MA2, всегда.
    Изображения Изображения

    Вы не можете благодарить!
    Для заказа кода, напишите в личку - я отвечу на ваше предложение.

  5. #5
    Местный
    Регистрация
    20.07.2015
    Сообщений
    17
    Благодарности
    Получено: 1
    Отправлено: 5
    Спасибо, я разобрался!

    Вы не можете благодарить!

Похожие темы

  1. Поиск советника
    от seregajd в разделе Софт для автоматизации торговли
    Ответов: 345
    Последнее сообщение: 02.07.2019, 15:35
  2. Тестирование советника Bulldozer A12.v3.12.1
    от karin в разделе Тестирование советников
    Ответов: 23
    Последнее сообщение: 07.03.2018, 09:14
  3. Помогите написать простенький советник)спасибо
    от Александр--- в разделе Программирование на MQL
    Ответов: 8
    Последнее сообщение: 19.12.2017, 18:36
  4. Как написать индикатор с динамическим параметром
    от remembaaa в разделе Программирование на MQL
    Ответов: 5
    Последнее сообщение: 18.07.2017, 08:19
  5. Как написать техзадание?
    от viktan в разделе Программирование на MQL
    Ответов: 0
    Последнее сообщение: 20.10.2015, 10:50

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •