Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1456

 
Aleksandr Slavskii #:

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

На самом деле он не должен открывать эти лишние. Но по другому объяснить то, что у вас происходит я не могу.


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

Спасибо . Объяснение выглядит очень логично.  На четверке с точно таким же кодом и на том же периоде происходит то же самое только ордера закрываются не встречным ордером. Брокер у меня Альпари. После Ваших объяснений стало понятно почему номера закрывающих встречных ордеров так сильно отличаются от закрыВАЕМых ими ордеров. Потому что все закрывающие ордера открываются в самом конце после всех закрываемых ордеров

 

Всем доброго времени суток!
Я пытаюсь научиться выставлять ордера в пятерке именно при помощи класса  CTrade , так как мне показалось что это самый быстрый и простой вариант их установки. А точнее я пытаюсь научиться выставлять параметр СТОПЛОСС. В четверке последняя цена бид хранилась в предопределенной  перуменной Вid ,а в пятерке как я понял последняя цена бид не хранится, а, если я не ошибаюсь, как один из вариантов,  вычисляется в методе Bid класса  CSymbolInfo. Но что бы этот метод вычислил цену  Символ должен быть предварительно выбран методом Name. Как работает  метод Name я понимаю.В него нужно вставить или название символа или NULL и он вернет ложь или истину.

Но не могу понять как и где нужно объединить метод Name и метод   Bid , что бы в переменную с сохранилась цена бид

В четверке ордера выбирались при помощи функции Select() А в пятерке нужно выбирать не ордера а символ.... Как это делать я не понимаю

Буду всем очень признателен если напишете в моем коде фрагмент при помощи которого в переменную с сохранится цена бид, которую я использую в параметре СЛ метода Вuy класса  CTrade

int y;
double c,d;
#include<Trade\Trade.mqh>        //класс
#include <Trade\SymbolInfo.mqh>  //класс 
CTrade  trad;                   //класс (создание объекта класса)
CSymbolInfo pris;
//+------------------------------------------------------------------+
void OnTick()
  {
   c=pris.Bid();//
   Print(" ---------------------CТОП------------------------------------------------------------  ",c);
   MqlDateTime t;                //структура (объявление структуры)
   TimeCurrent(t);               //структура (инициализация структуры)
   if(t.hour == 9&&y==0)
   {trad.Buy(0.1,NULL,0,c);y =1;}   //класс
      
  }
Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo / Name
Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo / Name
  • www.mql5.com
Name - CSymbolInfo - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Помогите разобраться. В строке ObjectMove(0, "LineAB", prevTime, prevPrice, newAx, newAy);  пишет wrong parameters count. Где ошибка?

 
vitaliy zamkovoy #:

Помогите разобраться. В строке ObjectMove(0, "LineAB", prevTime, prevPrice, newAx, newAy);  пишет wrong parameters count. Где ошибка?

https://www.mql5.com/ru/docs/objects/objectmove

 
Подскажите как установить робота на МТ который стоит на VPS? До этого он был активирован в МТ5 на компьюторе.
 
Arkin Nabirov #:
Подскажите как установить робота на МТ который стоит на VPS? До этого он был активирован в МТ5 на компьюторе.
отключить его от VPS, активировать на вашем терминале и поставить на график
 
Подскажите как узнать средствами MQL4,5 число первого торгового дня в январе любого года?
 
elzinkhana #:
Подскажите как узнать средствами MQL4,5 число первого торгового дня в январе любого года?

Никак. Только самому собрать такие данные.

 
elzinkhana #:
Подскажите как узнать средствами MQL4,5 число первого торгового дня в январе любого года?
/********************Script program start function*******************/
void OnStart()
 {
  datetime newYear[];
  int bars = Bars(_Symbol, PERIOD_D1, D'2020.01.01', TimeCurrent())-1;
  CopyTime(_Symbol, PERIOD_D1, bars, 1, newYear);
  printf("Первый торговый день %s %s", EnumToString(ENUM_DAY_OF_WEEK((newYear[0]/PeriodSeconds(PERIOD_D1)+4)%7)), TimeToString(newYear[0]));
 }/******************************************************************/

Результат

2023.05.14 13:37:02.118 !!0 (EURUSD,D1) Первый торговый день MONDAY 2022.01.03 00:00
2023.05.14 13:38:18.547 !!0 (EURUSD,D1) Первый торговый день MONDAY 2021.01.04 00:00
2023.05.14 13:38:35.906 !!0 (EURUSD,D1) Первый торговый день THURSDAY 2020.01.02 00:00
 
Alexey Viktorov #:

Результат

Почему решили, что это торговый день? Идея в наличии котировок? А если котировки были, но нельзя было торговать - думаю в этом вопрос.