Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1676

 
Alexey Viktorov #:

Если вам надо от 1го лота закрыть 0.3 и потом 0.7 то проще открыть два ордера с разными тейками ничего не мудря.

Это не удобно, в моей скальп системе нужно активно тактично сопровождать сделки. + могут быть импульсы, а открывать с разных окон или менять лот за секунды - это такое себе занятие :) Проще открыть 1 лот, а потом частично фиксить. Вот только фиксить не в ручную, а по заданым ценовым уровням (цене). А то, если работать с 3 тейками, то придеться при открытии сделок играть на пианино.
 
TranceFM #:
Это не удобно, в моей скальп системе нужно активно тактично сопровождать сделки. + могут быть импульсы, а открывать с разных окон или менять лот за секунды - это такое себе занятие :) Проще открыть 1 лот, а потом частично фиксить. Вот только фиксить не в ручную, а по заданым ценовым уровням (цене). А то, если работать с 3 тейками, то придеться при открытии сделок играть на пианино.
Тогда заказывай себе советника
 
MakarFX #:
Тогда заказывай себе советника

Т.е. готовых таких нету? Окей. Сколько будет стоить такой сов?

 

В скрипте

#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//обьявим класс
class Сleaner
 {
 public:     

         Сleaner() { Alert("Конструктор");
          }
           ~Сleaner() { Alert("Деструктор"); }
  void come(int &array[],int &re[]){ 
        int AS=ArraySize(array);
        int n=0;    
  for(int i=0; i<AS; i++) {
    if(ArraySearch(re, array[i])==-1) {
      n++;
      ArrayResize(re,n);
      re[n-1]=array[i];
     }
   }
 }
 void sleep() { Sleep(1000); }
private:
          int ArraySearch(int& m[], int e)
       {
        for(int i=0; i<ArraySize(m); i++) {
        if(m[i]==e) return(i);
//        Print(" e =",e,", ArraySize(m) =",ArraySize(m)," ,m[i] =",m[i]," ,i =",i );
       }
  return(-1);
    }
 };
Сleaner pi;
int arr[]= {6,4,6,7,9,65,66,2,2,9,7,7};
int res[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
  
  pi.come(arr,res);
  pi.sleep();
  for(int z=0;z<ArraySize(res);z++)
  Print(res[z]);
   
  }
//+------------------------------------------------------------------+

работает верно

2021.10.14 17:24:29.321 Око_12 GBPUSD,M5: Alert: Деструктор

2021.10.14 17:24:29.321 Око_12 GBPUSD,M5: uninit reason 0

2021.10.14 17:24:29.321 Око_12 GBPUSD,M5: 2

2021.10.14 17:24:29.321 Око_12 GBPUSD,M5: 66

2021.10.14 17:24:29.321 Око_12 GBPUSD,M5: 65

2021.10.14 17:24:29.321 Око_12 GBPUSD,M5: 9

2021.10.14 17:24:29.321 Око_12 GBPUSD,M5: 7

2021.10.14 17:24:29.321 Око_12 GBPUSD,M5: 4

2021.10.14 17:24:29.321 Око_12 GBPUSD,M5: 6

2021.10.14 17:24:28.209 Око_12 GBPUSD,M5: initialized

2021.10.14 17:24:28.209 Око_12 GBPUSD,M5: Alert: Конструктор

повторения из массива удаляются. В сове, если массив

int arr[]= {6,4,6,7,9,65,66,2,2,9,7,7};

динамический и он увеличивается, тоже работает верно, а вот если уменьшается, начинает врать.

 

Не знаю, насколько верно воспроизвел

#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//обьявим класс
class Сleaner
 {
 public:     

         Сleaner() { Alert("Конструктор");
          }
           ~Сleaner() { Alert("Деструктор"); }
  void come(int &array[],int &re[]){ 
        int AS=ArraySize(array);
        int n=0;    
  for(int i=0; i<AS; i++) {
    if(ArraySearch(re, array[i])==-1) {
      n++;
      ArrayResize(re,n);
      re[n-1]=array[i];
     }
   }
 }
 void sleep() { Sleep(1000); }
private:
          int ArraySearch(int& m[], int e)
       {
        for(int i=0; i<ArraySize(m); i++) {
        if(m[i]==e) return(i);
//        Print(" e =",e,", ArraySize(m) =",ArraySize(m)," ,m[i] =",m[i]," ,i =",i );
       }
  return(-1);
    }
 };
Сleaner pi;
int arr[]= {6,6,2};
int res[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

   arr[0]= 6;
   arr[1]= 6;

  pi.come(arr,res);
//  pi.sleep();
  for(int z=0;z<ArraySize(res);z++)
  Print(res[z]);
   
  }
//+------------------------------------------------------------------+

но именно такой результат и в сове

2021.10.14 21:11:34.802 Око_12 GBPUSD,M5: Alert: Деструктор

2021.10.14 21:11:34.802 Око_12 GBPUSD,M5: uninit reason 0

2021.10.14 21:11:34.523 Око_12 GBPUSD,M5: 2

2021.10.14 21:11:34.523 Око_12 GBPUSD,M5: 6

2021.10.14 21:11:34.523 Око_12 GBPUSD,M5: initialized

2021.10.14 21:11:34.523 Око_12 GBPUSD,M5: Alert: Конструктор


 
Всем здравствуйте, господа разработчики со стажем, подскажите начинающему. Интересует процесс упаковки советника MQL4 в один файл ex4 для загрузки на маркет, если у меня пользовательский индикатор подключен через iCustom(ну и сам индикатор также подключен к другому индикатору, а тот в свою очередь к библиотеке). Интересует, есть ли способ легко перенести все это разнообразие в один файл, или придется все интегрировать прямо в коде советника? 
 
Aleksandr Kononov #:
Всем здравствуйте, господа разработчики со стажем, подскажите начинающему. Интересует процесс упаковки советника MQL4 в один файл ex4 для загрузки на маркет, если у меня пользовательский индикатор подключен через iCustom(ну и сам индикатор также подключен к другому индикатору, а тот в свою очередь к библиотеке). Интересует, есть ли способ легко перенести все это разнообразие в один файл, или придется все интегрировать прямо в коде советника? 

придется все интегрировать

 
Aleksandr Kononov #:
Всем здравствуйте, господа разработчики со стажем, подскажите начинающему. Интересует процесс упаковки советника MQL4 в один файл ex4 для загрузки на маркет, если у меня пользовательский индикатор подключен через iCustom(ну и сам индикатор также подключен к другому индикатору, а тот в свою очередь к библиотеке). Интересует, есть ли способ легко перенести все это разнообразие в один файл, или придется все интегрировать прямо в коде советника? 

Через ресурс подключайте

 
Vitaly Muzichenko #:

Через ресурс подключайте

спасибо почитаю🤜🤛
 
ENUM_POSITION_TYPE type = PositionGetInteger(POSITION_TYPE);
Почему компилятор даёт предупреждение implicit enum conversion  ?
Документация по MQL5: Торговые функции / PositionGetInteger
Документация по MQL5: Торговые функции / PositionGetInteger
  • www.mql5.com
PositionGetInteger - Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Причина обращения: