Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 85
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
1) компилятор ругается если второе измерение не поставить, сразу выскочит "укажите тип класса, неизвестные параметры"
2) тогда бот сдохнет сразу же при запуске с "critical error array out of range"
3) сразу задаем int count1=-1; Далее проходим по циклу. Что тут не так?
Вы хоть изредка просматривайте ответы: 1 и 2 и 3 и ...
Вы уже больше недели делаете одно и тоже, и с каждым разом всё хуже, хотя вам уже дали ответ, указав на ошибку. В первом код значит компилятор не ругался что нет второго измерения, а вот в последующих начал ругаться? Компилятор испортился? Так-же можно открыть любой код с массивами, и посмотреть как они создаются, и сделать по аналогии.
Подобного - нет. МАшки уже столько перелопачены, стольким количеством народа, что остаётся только ждать свежей мысли от свежеиспечённого амбициозного трейдера. Шутка.
Правда - надоело за столько лет МАшки мусолить. Запаздывают они. Их нужно в другой области применять наверное, но не для ловли трендов-флетов.
Машки разные бывают.
По большому счету - везде одни машки используют
Машки разные бывают.
По большому счету - везде одни машки используют
Artyom Trishkin:
А так?
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);
}
пока не сделаю. Я бы сюда и не писал если бы нашел аналогично с другими.
пока не сделаю. Я бы сюда и не писал если бы нашел аналогично с другими. Вы думаю и сами понимаете что числовой ряд и список структур не одно и то же, иначе будет очередное уравнение с бесконечным количеством неизвестных.
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);
}
Не правильно. Отследите по вашему коду каким размером будет ваш массив.
Думать нужно, хоть чуть. Не стоит гадать. Думайте. Каждый шаг программы. Или ждёте что за вас напишут? Это во фриланс - там порою заказывают написание функций.
Не правильно. Отследите по вашему коду каким размером будет ваш массив.
Думать нужно, хоть чуть. Не стоит гадать. Думайте. Каждый шаг программы. Или ждёте что за вас напишут? Это во фриланс - там порою заказывают написание функций.
как я это вижу
1) добавляем до нуля если ордер найден
2) меняем размер на 0, резерв 10
3) записывается 0 числом первый ордер, 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, смотрите иногда документацию, её сейчас полно на каждом шагу.как я это вижу
1) добавляем до нуля если ордер найден
2) меняем размер на 0, резерв 10
3) записывается 0 числом первый ордер, 1 второй и т д
ну а касаемо фриланса- я не спорю что напишут все что угодно, только потом все равно придется переписывать самому. Не обращаться же туда нонстопом.А как вы в массив с нулевым размером что-то хотите вписать?
Положить деньги в кошелёк, которого нету ...
А как вы в массив с нулевым размером что-то хотите вписать?
Положить деньги в кошелёк, которого нету ...
переделал пост 844 чтоб не писать еще раз сюда код
ну а касаемо массива с нулевым рамером - 0 это может быть целое число, может быть эквивалент булевого фальс, может быть пустотой, а может и стартовой точкой отсчета.