Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1380
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Исхожу из того, что если уж имеется индекс текущего бара со своим временем, то это сочетание никогда не изменится.
Или возможен вариант, при котором в результате подкачки истории этот индекс будет присвоен какому-то историческому бару, а текущий бар получит новый индекс, больший на количество подкачаных баров?
То же другими словами:
правильно ли понимать, что текущий бар становится доступен (индекс, цена и время) только после полной подкачки истории и в дальнейшем его параметры никогда не изменяются?
Подскажите пожалуйста как получить количество строк в таблице таблицы MySQL
Возвращает ошибку
Задача получить последний ID
также пробую и так, не могу получить количество строк
Что не так , почему не могу получить значение от запроса?
Если проверяю запрос по базе , то возвращает как есть
Точно
int id= DatabaseRead(request);
Database же bool , а id int
Как вытащить результат запроса???
Все получилось. создал дополнительный класс sql
С момента выгрузки индикатора до вызова DeInit проходит несколько секунд.
Почему возникает пауза и можно ли её избежать?
Использую этот блок, взятый из документации (обавил тп и сл)
//+------------------------------------------------------------------+
void Open_order_BUY()
{
double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID),
ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
//--- объявление и инициализация запроса и результата
MqlTradeRequest request={};
MqlTradeResult result={};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.01; // объем в 0.1 лот
request.type =ORDER_TYPE_BUY; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_ASK); // цена для открытия
request.sl =bid-SL*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // SL
request.tp =ask+TP*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // TP
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера
//--- отправка запроса
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
//+------------------------------------------------------------------+
void Open_order_SELL()
{
double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID),
ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
//--- объявление и инициализация запроса и результата
MqlTradeRequest request={};
MqlTradeResult result={};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.01; // объем в 0.2 лот
request.type =ORDER_TYPE_SELL; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_BID); // цена для открытия
request.sl =ask+SL*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // SL
request.tp =bid-TP*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // TP
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера
//--- отправка запроса
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
На каждом тике открывается ордер. Как исправить, чтобы открывался только один?
Использую этот блок, взятый из документации (обавил тп и сл)
//+------------------------------------------------------------------+
void Open_order_BUY()
{
double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID),
ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
//--- объявление и инициализация запроса и результата
MqlTradeRequest request={};
MqlTradeResult result={};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.01; // объем в 0.1 лот
request.type =ORDER_TYPE_BUY; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_ASK); // цена для открытия
request.sl =bid-SL*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // SL
request.tp =ask+TP*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // TP
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера
//--- отправка запроса
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
//+------------------------------------------------------------------+
void Open_order_SELL()
{
double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID),
ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
//--- объявление и инициализация запроса и результата
MqlTradeRequest request={};
MqlTradeResult result={};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.01; // объем в 0.2 лот
request.type =ORDER_TYPE_SELL; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_BID); // цена для открытия
request.sl =ask+SL*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // SL
request.tp =bid-TP*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // TP
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера
//--- отправка запроса
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
Решено.
Как продлить линию вправо? Дальше текущего бара.
Есть координаты времени и цены. С ценой понятно, а вот как время установить (пробую iTime(Symbol(), PERIOD_CURRENT, 0), но индекс у него нулевой)
Как продлить линию вправо? Дальше текущего бара.
Есть координаты времени и цены. С ценой понятно, а вот как время установить (пробую iTime(Symbol(), PERIOD_CURRENT, 0), но индекс у него нулевой)
Добрый день.
Вопрос такого плана:
Пишу индикатор, рисующий зоны стилем рисования DRAW_FILLING. На графике кроме рисуемых зон несколько других индикаторов, в том числе много мувингов. При наложении рисуемой зоны линии других индикаторов резко меняют цвета.
Вопрос: можно ли в МТ5 рисовать зоны так, чтобы их цвет не накладывался и не менял цвета линий других индикаторов?
P.S. Все свойства отображения буферов индикаторов перекопал (методы типа PlotIndexSetInteger), ничего похожего нет.
P.S2. В приложении скриншот из МТ5.
Добрый день.
Вопрос такого плана:
Пишу индикатор, рисующий зоны стилем рисования DRAW_FILLING. На графике кроме рисуемых зон несколько других индикаторов, в том числе много мувингов. При наложении рисуемой зоны линии других индикаторов резко меняют цвета.
Вопрос: можно ли в МТ5 рисовать зоны так, чтобы их цвет не накладывался и не менял цвета линий других индикаторов?
P.S. Все свойства отображения буферов индикаторов перекопал (методы типа PlotIndexSetInteger), ничего похожего нет.
P.S2. В приложении скриншот из МТ5.
Всё зависит от последовательности наложения, кто последний - тот и сверху
Определяйте буфер с DRAW_FILLING первым