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

 
Yurka Tim #:
какой советник? я использую стандартные (штатные)  инструменты для рисования. И зачем удалять объекты? Они по идее должны храниться в связке с символом и при каждой следующей загрузке этого символа в окно также отображаться. Для каждого символа свои уровни, линии трендов и т.п.

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

 
Valeriy Yastremskiy #:

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

как-то это неправильно и неудобно. какой смысл в привязке объектов рисования к чарту без связки с символом.  Ну есть как есть, что тут поделать. Потому и спрашиваю, может есть какие-то примочки которые это лечат. 
А так, МТ и юзабилити вообще похоже не знакомы друг с другом, программисты делали для программистов :) 
 

Друзья, всем привет )

Подскажите, кто знает. Советник проверяет какие ордеры выставлены. И, периодически, когда ордера исполнены или сняты, то есть OrdersTotal()=0, все равно выдает свойство ордера, к примеру, тип, символ (наверное последнего в истории ордеров). Есть ли команда, чтобы перед повторной проверкой ордеров советник "очищал память" так сказать, по типу  ChartRedraw только для свойств, типов данных? Когда советник перезапускаю вручную, то такой проблемы какое-то время нет. Заранее спасибо!

 
Vladimir Voronin #:

Друзья, всем привет )

Подскажите, кто знает. Советник проверяет какие ордеры выставлены. И, периодически, когда ордера исполнены или сняты, то есть OrdersTotal()=0, все равно выдает свойство ордера, к примеру, тип, символ (наверное последнего в истории ордеров). Есть ли команда, чтобы перед повторной проверкой ордеров советник "очищал память" так сказать, по типу  ChartRedraw только для свойств, типов данных? Когда советник перезапускаю вручную, то такой проблемы какое-то время нет. Заранее спасибо!

Не сталкивался, поскольку веду свой учёт ордеров, но могу предположить, что это свойства последнего выбранного ордера (последний абзац https://www.mql5.com/ru/docs/trading/orderselect )

 
Vladimir Voronin #:

Друзья, всем привет )

Подскажите, кто знает. Советник проверяет какие ордеры выставлены. И, периодически, когда ордера исполнены или сняты, то есть OrdersTotal()=0, все равно выдает свойство ордера, к примеру, тип, символ (наверное последнего в истории ордеров). Есть ли команда, чтобы перед повторной проверкой ордеров советник "очищал память" так сказать, по типу  ChartRedraw только для свойств, типов данных? Когда советник перезапускаю вручную, то такой проблемы какое-то время нет. Заранее спасибо!

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

И по этому тексту не понятно вопрос об MQL5 или 4

 
//+------------------------------------------------------------------+
//|                                                  FXModel_exp.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//--- input parameters
#include "fxlib.mqh"
#include "fxexplib.mqh"
//--- input parameters
input string   I_model_path="C:\FXModel\SampleNet.pt";
input int      I_input_size=100;
input string   I_symbol="EUR/USD";
input ENUM_TIMEFRAMES I_time_frame = PERIOD_M5;
input double I_lot_size = 0.1;
input double I_get = 18;
input double I_cut = 10;
input int I_cycle_sec = 300;
input int I_position_sec = 5;
//--- indicator buffers
//double Label1Buffer[];
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create timer
   EventSetTimer(2);

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   return;<===================
   MqlDateTime time;
   TimeTradeServer(time);
   if(IsTime(time, I_cycle_sec, I_position_sec) || FridayStopper(3, time))
      return;
   double ans[7];
   MqlTradeRequest request;
   MqlTradeResult result;
   MqlTradeCheckResult check;
//I_getPredict(ans);
   POSITTION type = GetPositionAns(ans);
   return;
   if(type == SELL)
      ;//Trade(I_symbol, I_get, I_cut, I_lot_size, ORDER_TYPE_SELL);//request = CreateRequest(I_symbol, I_lot_size, ORDER_TYPE_SELL);
   if(type==BUY)
      ;//Trade(I_symbol, I_get, I_cut, I_lot_size, ORDER_TYPE_BUY);//request = CreateRequest(I_symbol, I_lot_size, ORDER_TYPE_BUY);
   if(type== STAY)
      return;
//if(!OrderCheck(request, check) || !OrderSend(request,result))
//   return;
//MqlTradeRequest request2 = CreateSLTPRequest(result, I_symbol, request.magic, I_get, I_cut);
//if(!OrderSend(request2, result) || result.retcode != TRADE_RETCODE_DONE)
//   Comment("error");
   Sleep(I_position_sec*10+10);
  }
//+------------------------------------------------------------------+
//| Trade function                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//---

  }
//+------------------------------------------------------------------+

Когда проверено на работоспособность

Составлено много раз

Скомпилировано много раз

Изменено возвращение местоположения

Закомментировать метод торговли

Удалить .mq5

Результат не меняется

 
1115 Libro #:

Когда проверено, чтобы быть проданным

Почему?

Скомпилировано много раз

Изменил возврат местоположения

Закомментируйте метод traded

Удалить .mq5

Результат не меняется

Эта тема не синхронизирована с оригинальной темой, поэтому здесь бесполезно размещать вопросы.

https://www.mql5.com/ru/forum/6343/page1408

Это оригинальная тема. Пишите здесь на русском или в английском форуме.

Вопросы от начинающих MQL5 MT5 MetaTrader 5
Вопросы от начинающих MQL5 MT5 MetaTrader 5
  • 2022.05.18
  • www.mql5.com
Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000...
 
Nagisa Unada #:

Эта тема не синхронизирована с оригинальной темой, поэтому размещать здесь вопросы бесполезно.

https://www.mql5.com/ru/forum/6343/page1408

Это оригинальная тема. Пишите здесь на русском или в английском форуме.

спасибо
 

Здравствуйте.

Я новичок в платформе МТ4. Я ввел правильное имя пользователя и пароль, и даже появился доступный баланс, но кнопка NEW ORDER неактивна, хотя у меня есть баланс для торговли; то же самое происходит на смартфонах.


Может ли кто-нибудь помочь мне и подсказать, как решить эту проблему?



Заранее благодарю.

 

Есть такая функция в MQL5:

SymbolInfoDouble(Symbol(),SYMBOL_SESSION_PRICE_LIMIT_MAX)

Согласно описанию она возвращает "Максимально допустимое значение цены на сессию".

Никто не знает, что эта величина означает? Предельное значение цены, выше которого торги будут остановлены (если верить описанию)?


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