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

 
Aleksey Vyazmikin #:

Прошу помощи зала :)

Нужно заменить в коде через #define функцию OrderSend на пользовательскую функцию, которая будет идентична  OrderSend, но в ней будет исполняться предварительно дополнительный код.

Написал такой код

Но получаю ошибки

Что не так делаю, подскажите, пожалуйста!

рекурсия однако.

вы или крестик снимите (используйте ::OrderSend в теле функции) или трусы оденьте - перенесите #define ниже, чтоб не затрагивал функцию

 
Maxim Kuznetsov #:

рекурсия однако.

вы или крестик снимите (используйте ::OrderSend в теле функции) или трусы оденьте - перенесите #define ниже, чтоб не затрагивал функцию

Да, как раз зашел удалить пост. Спасибо, так и сделал - устал уже...

 

коллеги - как сейчас работать через хранилище?

два МТ 5 - чтобы  коды через него юзать в разных локациях МТ 5.


да - смотрю она сейчас в коде - сторадж

https://www.mql5.com/ru/code/storage

MQL5 Storage - персональное онлайн-хранилище исходных кодов на MQL4/MQL5
MQL5 Storage - персональное онлайн-хранилище исходных кодов на MQL4/MQL5
  • www.mql5.com
Онлайн-хранилище MQL5 Storage – доступ к файлам исходных кодов из любой точки мира, версионный контроль и совместная разработка проектов.
 

Коллеги - почему пишет активация хранилища - ошибка....

делаю по ссылке вроде все правильно

https://www.mql5.com/ru/code/storage

https://www.metatrader5.com/ru/metaeditor/help/mql5storage/mql5storage_connect



логи


0    2023.03.08 19:36:12.688    Protector    connecting
0    2023.03.08 19:36:13.244    Protector    connected
0    2023.03.08 19:36:13.345    Protector    authorized
0    2023.03.08 19:36:26.798    Protector    disconnected
0    2023.03.08 19:36:26.798    Protector    disconnected
0    2023.03.08 19:36:26.798    Protector    disconnected
0    2023.03.08 19:38:24.397    Protector    disconnected

2    2023.03.08 19:41:14.484    Storage    activation of MQL5 Storage failed [406]
2    2023.03.08 19:41:38.857    Storage    activation of MQL5 Storage failed [406]
2    2023.03.08 19:44:20.271    Storage    activation of MQL5 Storage failed [406]
2    2023.03.08 19:46:17.602    Storage    invalid MQL5 login or password
2    2023.03.08 19:46:33.815    Storage    invalid json content

MQL5 Storage - персональное онлайн-хранилище исходных кодов на MQL4/MQL5
MQL5 Storage - персональное онлайн-хранилище исходных кодов на MQL4/MQL5
  • www.mql5.com
Онлайн-хранилище MQL5 Storage – доступ к файлам исходных кодов из любой точки мира, версионный контроль и совместная разработка проектов.
 

вроде что то куда то подключилось - но что это значит?

Работает или нет или частично....






вышел - зашел - опять не подключает...


что это значит?



пишет - хранилище не удалось найти....


 
Roman Shiredchenko #:

вроде что то куда то подключилось - но что это значит?

Работает или нет или частично....


вышел - зашел - опять не подключает...


Роман, а почему вы всегда сохраняете снимок двух мониторов? Ведь снимок получается очень мелкий… Разве вы не знаете, что Alt+Print Screen копирует только активное окно ПО?

 
Alexey Viktorov #:

Роман, а почему вы всегда сохраняете снимок двух мониторов? Ведь снимок получается очень мелкий… Разве вы не знаете, что Alt+Print Screen копирует только активное окно ПО?


Нет. Спс. Буду знать.
 

здравствуйте всем!

тестирую сов на демке. Работает по индикатору ADX. Сегодня открылись лимитки нарушив все условия индюка. (должен быть бай лимит(чуть позже), а открылся селлимит)

как такое может быть? 

Проверил тестером сейчас. Тот же советник в тестере открыл байлимит. Сигналы индюка отрисованы идентично.

Может ли быть данная проблема связана со временем сервера?

Посмотрел журнал, запись об открытии 11:21, а в терминале 10:21, и в это время не должно открываться вообще ничего (условия не выполняются) а вот в 9:21, как раз условия на открытие селлимита.

Вот код открытия ордеров:

void OnTick()
  {
//---
int     x;
double  iflet,ibuy,isell;
int    _timeframe;
if     (timeframe==1)_timeframe=1;
else if(timeframe==0)_timeframe=0;
else if(timeframe==2)_timeframe=5;
else if(timeframe==3)_timeframe=15;
else if(timeframe==4)_timeframe=30;
else if(timeframe==5)_timeframe=60;
else if(timeframe==6)_timeframe=240;
else if(timeframe==7)_timeframe=1440;
else if(timeframe==8)_timeframe=10080;
else _timeframe=43200;

// Обновляем текст на лейблах
   DrawLABEL("lab_Take"       ,1,5,0,Color(GetProfitFromStart()>0,Lime,Red),StringConcatenate("Profit: ",DoubleToStr(GetProfitFromStart(),2),AC));
   //---
//+------------------------------------------------------------------+
//|  Установка лимиток по индикатору ADX                             |
//+------------------------------------------------------------------+
   if(CountOrders()==0 && ObjectGetInteger(0,"lab_Button",OBJPROP_STATE)==true)
   {

    iflet=iADX( Symbol(), _timeframe, 14, PRICE_CLOSE,MODE_MAIN, bar);     // как индикатор орпределяет флэт
    ibuy=iADX( Symbol(), _timeframe, 14, PRICE_CLOSE,MODE_PLUSDI, bar);    // как индикатор орпеделяет где покупать
    isell=iADX(  Symbol(), _timeframe, 14, PRICE_CLOSE,MODE_MINUSDI, bar); // как индикатор орпеделяет где продавать
      
    if(iflet<f && ibuy>isell)                                            //условие для покупки и определение флета
    {
     for(x=1;x<=MAX_Lines;x++)  // считает сколько открыто линий сетки отложенными ордерами, чтобы не превышало указанное в исходных параметрах MAX_Lines
     {                                                                                                                                                                //сек/мин/ч/дн/
      if (OrderSend(Symbol(),OP_BUYLIMIT,lot,Ask-((Delta1-Delta)+Delta*x)*Point,slippage,Ask-((Delta1+Delta*(MAX_Lines-1))+SL)*Point,Ask+TP*Point,"",magic,TimeCurrent()+60*60*24*DN,Blue))
      {Print("Open BuyLimit: ",_Symbol);}
      else {Print("Error Open BuyLimit: ",_Symbol," / ",GetLastError());}
                   
     }
    }
      else 

    if(iflet<f && ibuy<isell)//условие для продажи и определение флета
    {
     for(x=1;x<=MAX_Lines;x++)
     {
                                                                                                                                                                       //сек/мин/ч/дн/    
      if (OrderSend(Symbol(),OP_SELLLIMIT,lot,Bid+((Delta1-Delta)+Delta*x)*Point,slippage,Bid+((Delta1+Delta*(MAX_Lines-1))+SL)*Point,Bid-TP*Point,"",magic,TimeCurrent()+60*60*24*DN,Red))
      {Print("Open SellLimit: ",_Symbol);}
      else {Print("Error Open SellLimit: ",_Symbol," / ",GetLastError());}  
     }
    }
   }
 

Подскажите пожалуйста, есть ли хоть какая-то возможность смоделировать в тестере MT5 частичное заполнение ордеров (FILLING RETURN) режим NETTING?

 
законопослушный гражданин #:

здравствуйте всем!

тестирую сов на демке. Работает по индикатору ADX. Сегодня открылись лимитки нарушив все условия индюка. (должен быть бай лимит(чуть позже), а открылся селлимит)

как такое может быть? 

Проверил тестером сейчас. Тот же советник в тестере открыл байлимит. Сигналы индюка отрисованы идентично.

Может ли быть данная проблема связана со временем сервера?

Посмотрел журнал, запись об открытии 11:21, а в терминале 10:21, и в это время не должно открываться вообще ничего (условия не выполняются) а вот в 9:21, как раз условия на открытие селлимита.

Вот код открытия ордеров:

Это значит что тестер отличается от реальной торговли, со временем сервера это не связано.

Предположу что была перерисовка индикатора.