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

 
trader781:

1) компилятор ругается если второе измерение не поставить, сразу выскочит "укажите тип класса, неизвестные параметры"

2) тогда бот сдохнет сразу же при запуске с "critical error array out of range" 

3)  сразу задаем int count1=-1; Далее проходим по циклу. Что тут не так?

Вы хоть изредка просматривайте ответы: 1 и 2 и 3 и ... 

Вы уже больше недели делаете одно и тоже, и с каждым разом всё хуже, хотя вам уже дали ответ, указав на ошибку. В первом код значит компилятор не ругался что нет второго измерения, а вот в последующих начал ругаться? Компилятор испортился? Так-же можно открыть любой код с массивами, и посмотреть как они создаются, и сделать по аналогии. 

 
Artyom Trishkin:

Подобного - нет. МАшки уже столько перелопачены, стольким количеством народа, что остаётся только ждать свежей мысли от свежеиспечённого амбициозного трейдера. Шутка.

Правда - надоело за столько лет МАшки мусолить. Запаздывают они. Их нужно в другой области применять наверное, но не для ловли трендов-флетов.

Машки разные бывают.

По большому счету - везде одни машки используют 

 
Victor Nikolaev:

Машки разные бывают.

По большому счету - везде одни машки используют 

Ну так и я о чём? Я и говорю - в другой ипостаси, а не в лоб.
 
Vitaly Muzichenko:


пока не сделаю. Я бы сюда и не писал если бы нашел аналогично с другими. Вы думаю и сами понимаете что числовой ряд и список структур не одно и то же, иначе будет очередное уравнение с бесконечным количеством неизвестных.

Artyom Trishkin:

А так? 



#property strict




struct myorder
{
int    Ticket;
double orderopenprice;
int   ordertype;
double profit;
double stoploss;
double  lot;
};
myorder orders[];




int    i;  
int    Magic=444;    



//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
CalcOrders();
  
  }
//+------------------------------------------------------------------+
void CalcOrders()
{
int count1=0;

for(i=OrdersTotal()-1; i>=0; i--)
     {
      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
         && (OrderMagicNumber()==Magic) && (OrderType()<2))
         {
         count1++;
         ArrayResize(orders,count1);
         orders[count1-1].Ticket=OrderTicket();
         orders[count1-1].lot=OrderLots();
         orders[count1-1].orderopenprice=OrderOpenPrice();
         orders[count1-1].ordertype=OrderType();
         orders[count1-1].profit=OrderProfit();
         orders[count1-1].stoploss=OrderStopLoss();
         }    
     }
     ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
    
}
  
а касательно кидать сюда код - самого бесит когда кто - то кааак выложит и потом сиди прокручивай страницы. Так компактней.
 
trader781:
пока не сделаю. Я бы сюда и не писал если бы нашел аналогично с другими.
Вставляйте пожалуйста код не файлом, а в сообщение. Вот как с мобильного смотреть?
 
trader781:
пока не сделаю. Я бы сюда и не писал если бы нашел аналогично с другими. Вы думаю и сами понимаете что числовой ряд и список структур не одно и то же, иначе будет очередное уравнение с бесконечным количеством неизвестных.
#property strict




struct myorder
{
int    Ticket;
double orderopenprice;
int   ordertype;
double profit;
double stoploss;
double  lot;
};
myorder orders[];




int    i;  
int    Magic=444;    



//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
CalcOrders();
  
  }
//+------------------------------------------------------------------+
void CalcOrders()
{
int count1=-1;

for(i=OrdersTotal()-1; i>=0; i--)
     {
      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
         && (OrderMagicNumber()==Magic) && (OrderType()<2))
         {
         count1++;
         ArrayResize(orders,count1,10);
         orders[count1].Ticket=OrderTicket();
         orders[count1].lot=OrderLots();
         orders[count1].orderopenprice=OrderOpenPrice();
         orders[count1].ordertype=OrderType();
         orders[count1].profit=OrderProfit();
         orders[count1].stoploss=OrderStopLoss();
         }    
     }
     ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
    
}
  
а касательно кидать сюда код - самого бесит когда кто - то кааак выложит и потом сиди прокручивай страницы. Так компактней.

Не правильно. Отследите по вашему коду каким размером будет ваш массив.

Думать нужно, хоть чуть. Не стоит гадать. Думайте. Каждый шаг программы. Или ждёте что за вас напишут? Это во фриланс - там порою заказывают написание функций.

 
Artyom Trishkin:

Не правильно. Отследите по вашему коду каким размером будет ваш массив.

Думать нужно, хоть чуть. Не стоит гадать. Думайте. Каждый шаг программы. Или ждёте что за вас напишут? Это во фриланс - там порою заказывают написание функций.

как я это вижу

1) добавляем до нуля если ордер найден

2) меняем размер на 0, резерв 10

3) записывается 0 числом первый ордер, 1 второй и т д

ну а касаемо фриланса- я не спорю что напишут все что угодно, только потом все равно придется переписывать самому. Не обращаться же туда нонстопом.
 
trader781:
пока не сделаю. Я бы сюда и не писал если бы нашел аналогично с другими. Вы думаю и сами понимаете что числовой ряд и список структур не одно и то же, иначе будет очередное уравнение с бесконечным количеством неизвестных.
int count1=-1;

for(i=OrdersTotal()-1; i>=0; i--)
     {
      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
         && (OrderMagicNumber()==Magic) && (OrderType()<2))
         {
         count1++;
         ArrayResize(orders,count1,10);
         orders[count1].Ticket=OrderTicket();
         }    
     }
     ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
    
}
  
а касательно кидать сюда код - самого бесит когда кто - то кааак выложит и потом сиди прокручивай страницы. Так компактней.

Не стал много писать, просто записал маленький видео-ответ.

Артём конечно помогает как может, но не даёт рыбу, а только удочку) 

trader781, смотрите иногда документацию, её сейчас полно на каждом шагу.
 
trader781:

как я это вижу

1) добавляем до нуля если ордер найден

2) меняем размер на 0, резерв 10

3) записывается 0 числом первый ордер, 1 второй и т д

ну а касаемо фриланса- я не спорю что напишут все что угодно, только потом все равно придется переписывать самому. Не обращаться же туда нонстопом.

А как вы в массив с нулевым размером что-то хотите вписать?

Положить деньги в кошелёк, которого нету ...

 
Artyom Trishkin:

А как вы в массив с нулевым размером что-то хотите вписать?

Положить деньги в кошелёк, которого нету ...

переделал пост 844 чтоб не писать еще раз сюда код

ну а касаемо массива с нулевым рамером - 0 это может быть целое число, может быть эквивалент булевого фальс, может быть пустотой, а может и стартовой точкой отсчета.

Причина обращения: