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

 
Igor Makanu:

если речь идет об увеличении лота нового ордера относительно максимального лота уже открытых ордеров, тогда при подсчете ордеров запоминайте максимальное значение лота ордеров

примерно так:

Лоты у меня считаются. Хотел бы, чтоб с каждой сделкой шаг также увеличивался. По коэфициенту

 
Carcass77:

Лоты у меня считаются. Хотел бы, чтоб с каждой сделкой шаг также увеличивался. По коэфициенту

Вы второй раз пишете про "волшебный шаг", а мы должны угадать, что за шаг! )))

если речь идет о ценах открытия  "крайних" ордеров и Вы хотите относительно цен открытия этих ордеров выставлять новые ордера, то принцип тот же, при пересчете ордеров ищете максимальные/минимальные цены открытия по типам ордеров, примерно так:

int NumberOfOrders(int magic_,double &openpricemaxbuy_,double &openpriceminsell_)
  {
   int i,ot,buy_=0,sell_=0,k=OrdersTotal();
   openpricemaxbuy_=0.0; openpriceminsell_=0.0;
   for(i=0; i<k; i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         ot=OrderType();
         if((OrderMagicNumber()==magic_) && (OrderSymbol()==_Symbol))
           {
            if(ot==OP_BUY) { buy_++;  openpricemaxbuy_  = fmax(openpricemaxbuy_,OrderOpenPrice());  }
            if(ot==OP_SELL){ sell_++; openpriceminsell_ = fmin(openpriceminsell_,OrderOpenPrice()); }
           }
        }
     }
   return(buy_+sell_);
  }



ЗЫ: если речь идет о закрытых ордерах, то код будет другой, и принцип перебора ордеров немного другой - ищете ордер с максимальным временем закрытия и запоминаете его параметры

 

Всем привет. Подскажите почему не работает функция Print в индикаторе.

//+------------------------------------------------------------------+
//|                                                        test3.mq4 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
       Print("Hello");
       Print("---- First indicator -----");

   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Alexander Mikryukov:

Всем привет. Подскажите почему не работает функция Print в индикаторе.

нет причин не работать, смотрите в журнале эксперты свои сообщения

 
Igor Makanu:

нет причин не работать, смотрите в журнале эксперты свои сообщения

Да тупанул. Спасибо. 

 
Доброй ночи! Подскажите, можно ли одним скриптом управлять несколькими счетами? Спасибо!
 
Maxim Voronin:
Доброй ночи! Подскажите, можно ли одним скриптом управлять несколькими счетами? Спасибо!

Можно, но не скриптом, советником. Счета должны быть запущены в разных терминалах...

 
Vladimir Pastushak:

Можно, но не скриптом, советником. Счета должны быть запущены в разных терминалах...

Продолжите если не затруднит
 
Maxim Voronin:
Продолжите если не затруднит

Пишется советник, который может общаться с другими терминалами, примером Вам послужат копировщики.

Все просто, один советник передает что то и принимает в другом терминале...

 

INIT_PARAMETERS_INCORRECT

Предназначен для обозначения программистом некорректного набора входных параметров, в общей таблице оптимизации строка результата с таким кодом возврата будет подсвечена красным цветом.

Тестирование для данного набора параметров эксперта не будет выполняться.


 
Что-то не подсвечивает красным цветом.

У всех так?


вот такой код в ОнИните:
int OnInit()
{

if (Koef2<=Koef) return(INIT_PARAMETERS_INCORRECT); 

return(INIT_SUCCEEDED);


И в журнале вот такие ошибки пишет:



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