Logo

Вход

Войти с помощью соц. сетей
Пока нет объявлений.
Эта тема закрыта.
X
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения
  • #1 Свернуть

    Помогите с советником

    Кто поможет с написанием советника????

    все что пока нужно. будет несколько стратегий в 1.

    1. Например - есть нижний фрактал а1 далее вырисовывается верхний фрактал b1 если в дальнейшем вырисовывается нижний а2 и если он не пробивает то покупаем.
  • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
  • #2 Свернуть

    Сообщение от viktor123 Посмотреть сообщение
    Кто поможет с написанием советника????

    все что пока нужно. будет несколько стратегий в 1.

    1. Например - есть нижний фрактал а1 далее вырисовывается верхний фрактал b1 если в дальнейшем вырисовывается нижний а2 и если он не пробивает то покупаем.
    не пробивает кого?

    Предлагаю к инвестированию ^ /-/ Перечитайте регламент найдёте много интерестного!

    Комментарий

    • #3 Свернуть

      Сообщение от viktor123 Посмотреть сообщение
      Кто поможет с написанием советника????

      все что пока нужно. будет несколько стратегий в 1.

      1. Например - есть нижний фрактал а1 далее вырисовывается верхний фрактал b1 если в дальнейшем вырисовывается нижний а2 и если он не пробивает то покупаем.
      интересная у вас ТС , вот только немного непонятная! Толи вы кудато торопились и поэтому не дописали до конца суть своей мысли, толи ,как в операции ''ы'', чтобы не кто не догодался.

      Комментарий

      • #4 Свернуть

        MQL код:

        double FrBuffUpper[];
        double FrBuffLower[];
        if (CopyBuffer(Fractal_handle,0,0,80,FrBuffUpper)==-1) return;
        if (CopyBuffer(Fractal_handle,1,0,80,FrBuffLower)==-1) return;
        double a1=0.0;
        double b1=0.0;
        double a2=0.0;
        if (FrBuffLower[79]==EMPTY_VALUE) return; //если предыдущий бар не нижний фрактал.
        for (int i=78; i>=0; i--)
        {
        if (FrBuffUpper[i]!=EMPTY_VALUE && b1==0.0) b1=FrBuffUpper[i]; //Нашли предыдущий фрактал b1
        if (FrBuffLower[i]!=EMPTY_VALUE && a1==0.0) {a1=FrBuffLower[i];break;} //Нашли предыдущий фрактал a1
        }
        if (a2>a1) OrderSend(...); //если фрактал нижний фрактал а2 (предыдущего бара) находится выше фрактала a1 то совершаем действия по открытию позиции.

        Я правильно понял?
         
        Последний раз редактировалось MIXAN; 22.09.2012, 22:12. Причина: Дописал массивы

        Комментарий

        • #5 Свернуть

          Сообщение от MIXAN Посмотреть сообщение

          MQL код:

          double FrBuffUpper[];
          double FrBuffLower[];
          if (CopyBuffer(Fractal_handle,0,0,80,FrBuffUpper)==-1) return;
          if (CopyBuffer(Fractal_handle,1,0,80,FrBuffLower)==-1) return;
          double a1=0.0;
          double b1=0.0;
          double a2=0.0;
          if (FrBuffLower[79]==EMPTY_VALUE) return; //если предыдущий бар не нижний фрактал.
          for (int i=78; i>=0; i--)
          {
          if (FrBuffUpper[i]!=EMPTY_VALUE && b1==0.0) b1=FrBuffUpper[i]; //Нашли предыдущий фрактал b1
          if (FrBuffLower[i]!=EMPTY_VALUE && a1==0.0) {a1=FrBuffLower[i];break;} //Нашли предыдущий фрактал a1
          }
          if (a2>a1) OrderSend(...); //если фрактал нижний фрактал а2 (предыдущего бара) находится выше фрактала a1 то совершаем действия по открытию позиции.

          Я правильно понял?
          Маладец! Правильно! А что за "CopyBuffer(..." - это откуда???
           
          Здесь вы найдёте много всяких интересностей - "целая" коллекция!


          Комментарий

          • #6 Свернуть

            Помогите пожалуйста дописать советник.

            MQL код:
            extern double LOT = 1;             //объем 1й сделки
            extern int TakeProfit = 10; //тейкпрофит в пунктах
            extern int OpenNextOrder = 40; // через сколько открывать 2й ордер

            extern double LOT2 = 2; //объем 2й сделки
            extern int TakeProfit2 = 20; //тейкпрофит в пунктах
            extern int OpenNextOrder2 = 80; // через сколько открывать 3й ордер

            extern double LOT3 = 4; //объем 3й сделки
            extern int TakeProfit3 = 40; //тейкпрофит в пунктах
            extern int OpenNextOrder3 = 160; // через сколько открывать 4й ордер

            extern double LOT4 = 8; //объем 1й сделки
            extern int TakeProfit4 = 80; //тейкпрофит в пунктах
            extern int OpenNextOrder4 = 320; // через сколько открывать 2й ордер

            double arr_LOT[3];
            int arr_TakeProfit[3];
            int arr_OpenNextOrder[3];

            extern bool buy=true;

            bool CloseBuys=false;

            extern int MAGIC=1111;
            //+------------------------------------------------------------------+
            int init()
            {
            arr_LOT[0]=LOT;
            arr_LOT[1]=LOT2;
            arr_LOT[2]=LOT3;
            arr_LOT[3]=LOT4;

            arr_TakeProfit[0]=TakeProfit;
            arr_TakeProfit[1]=TakeProfit2;
            arr_TakeProfit[2]=TakeProfit3;
            arr_TakeProfit[3]=TakeProfit4;

            arr_OpenNextOrder[0]=OpenNextOrder;
            arr_OpenNextOrder[1]=OpenNextOrder2;
            arr_OpenNextOrder[2]=OpenNextOrder3;
            arr_OpenNextOrder[3]=OpenNextOrder4;

            double arr_LOT[3];
            int arr_TakeProfit[3];
            int arr_OpenNextOrder[3];

            return(0);
            }
            //+------------------------------------------------------------------+
            int start()
            {
            if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)

            return(0);
            }
            //+------------------------------------------------------------------+


            что здесь не так , как дописать?
             
            Последний раз редактировалось Gold; 23.09.2012, 00:45. Причина: теги и орфография

            Комментарий

            • #7 Свернуть

              Сообщение от master86 Посмотреть сообщение
              Помогите пожалуйста дописать советник.


              MQL код:
              extern double LOT = 1;             //объем 1й сделки
              extern int TakeProfit = 10; //тейкпрофит в пунктах
              extern int OpenNextOrder = 40; // через сколько открывать 2й ордер

              extern double LOT2 = 2; //объем 2й сделки
              extern int TakeProfit2 = 20; //тейкпрофит в пунктах
              extern int OpenNextOrder2 = 80; // через сколько открывать 3й ордер

              extern double LOT3 = 4; //объем 3й сделки
              extern int TakeProfit3 = 40; //тейкпрофит в пунктах
              extern int OpenNextOrder3 = 160; // через сколько открывать 4й ордер

              extern double LOT4 = 8; //объем 1й сделки
              extern int TakeProfit4 = 80; //тейкпрофит в пунктах
              extern int OpenNextOrder4 = 320; // через сколько открывать 2й ордер

              double arr_LOT[3];
              int arr_TakeProfit[3];
              int arr_OpenNextOrder[3];

              extern bool buy=true;

              bool CloseBuys=false;

              extern int MAGIC=1111;
              //+------------------------------------------------------------------+
              int init()
              {
              arr_LOT[0]=LOT;
              arr_LOT[1]=LOT2;
              arr_LOT[2]=LOT3;
              arr_LOT[3]=LOT4;

              arr_TakeProfit[0]=TakeProfit;
              arr_TakeProfit[1]=TakeProfit2;
              arr_TakeProfit[2]=TakeProfit3;
              arr_TakeProfit[3]=TakeProfit4;

              arr_OpenNextOrder[0]=OpenNextOrder;
              arr_OpenNextOrder[1]=OpenNextOrder2;
              arr_OpenNextOrder[2]=OpenNextOrder3;
              arr_OpenNextOrder[3]=OpenNextOrder4;

              double arr_LOT[3];
              int arr_TakeProfit[3];
              int arr_OpenNextOrder[3];

              return(0);
              }
              //+------------------------------------------------------------------+
              int start()
              {
              if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)

              return(0);
              }
              //+------------------------------------------------------------------+


              что здесь не так , как дописать?
              "Здесь не так" по крайней мере повторная инициализация массивов в ините. Даже скажем не инициализация, а объявление. Это ошибочно: нельзя 2 раза объявлять переменную с одним и тем же именем. Компилятор банально не знает к какой из них обращаться. Неоднозначность в программах не допускается.
                 
              Здесь вы найдёте много всяких интересностей - "целая" коллекция!


              Комментарий

              • #8 Свернуть

                Сообщение от iMag Посмотреть сообщение
                Маладец! Правильно! А что за "CopyBuffer(..." - это откуда???
                Это MQL5. "Получает в массив buffer данные указанного буфера указанного индикатора в указанном количестве." (с) - http://www.mql5.com/ru/docs/series/copybuffer
                   

                Комментарий

                • #9 Свернуть

                  Сообщение от master86 Посмотреть сообщение
                  что здесь не так , как дописать?
                  Сообщение от master86 Посмотреть сообщение
                  MQL код:
                  double arr_LOT[3];
                  int arr_TakeProfit[3];
                  int arr_OpenNextOrder[3];
                  Насколько я знаю такая запись создаст массив из 3=х элементо. то есть
                  Сообщение от master86 Посмотреть сообщение
                  MQL код:
                  arr_LOT[3]=LOT4;
                  уже не годится (как и остальные присвоения 3-му элементу массива)
                   

                  Комментарий

                  • #10 Свернуть

                    Сообщение от iMag Посмотреть сообщение
                    "Здесь не так" по крайней мере повторная инициализация массивов в ините. Даже скажем не инициализация, а объявление. Это ошибочно: нельзя 2 раза объявлять переменную с одним и тем же именем. Компилятор банально не знает к какой из них обращаться. Неоднозначность в программах не допускается.
                    Ээээ... Пардон! Я был не прав!
                    Можно ещё раз проинициализировать, как в данном примере, и мы получим по 2 отдельных массива каждого. Надо ещё разобраться, после такого подхода к каким массивам программа будет обращаться в первую очередь: локальным или глобальным.
                    Ну, и, как написал МИХАН, при объявлении массива указывается кол-во элементов в натуральных числах (1, 2, 3,...), но при обращении к ним следует учитывать то, что индексация начинается с "0".
                     
                    Здесь вы найдёте много всяких интересностей - "целая" коллекция!


                    Комментарий

                    • #11 Свернуть

                      подскажите как будет выглядеть в коде вот ето:

                      int start()
                      {
                      Если (мы покупаем)
                      {
                      Если (у нас нет ордеров на покупку)
                      {
                      Закрывать покупки не будем;
                      Откроем новый ордер на бай лотом под номером [количество ордеров на покупку];
                      }
                      Если (профит последнего ордара настолько мал, что он меньше -уровня открытия следующего ордера по номером [количество ордеров на покупку])
                      {
                      Откроем новый ордер на бай лотом под номером [количество ордеров на покупку];
                      }
                      Если (последний ордер закрылся по тейкпрофиту а также если открывали последнюю позицию мы раньше, чем ее закрыли)
                      {
                      Разрешаем закрыть все ордера;
                      }
                      Если (мы разрешили закрыть все ордера);
                      {
                      Закрываем все открытые ордера;
                      }
                      }
                      Вернем(0);
                      }

                      заранее всем спасибо.
                       

                      Комментарий

                      • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
                      • #12 Свернуть

                        Всем привет. master86, если еще нужна помощь, дай знать

                        Комментарий

                        Сейчас онлайн

                        working...
                        X