Questions des débutants MQL5 MT5 MetaTrader 5 - page 1380
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Je suppose que si la barre actuelle a un indice avec sa propre heure, alors cette combinaison ne changera jamais.
Ou est-il possible qu'à la suite de la pagination de l'historique, cet index soit attribué à une barre historique, et que la barre actuelle obtienne un nouvel index, plus grand du nombre de barres paginées ?
En d'autres termes :
est-il correct de comprendre que la barre actuelle ne devient disponible (indice, prix et temps) qu'après un échange d'historique complet et que ses paramètres ne changent jamais par la suite ?
Veuillez me dire comment obtenir le nombre de lignes dans une table MySQL.
Renvoie une erreur
Obtenir le dernier ID
Essayez aussi ceci, mais vous ne pouvez pas obtenir le nombre de lignes.
Qu'est-ce qui ne va pas, pourquoi je n'arrive pas à obtenir une valeur de la requête ?
Si je vérifie la requête par rapport à la base de données, elle renvoie ce qui suit
Droit
int id= DatabaseRead(request);
Database est un bool , et id est int
Comment faire sortir le résultat de la requête ?
Ça a marché. J'ai créé une classe sql supplémentaire.
Plusieurs secondes s'écoulent entre le déchargement de l'indicateur et l'appel à DeInit.
Pourquoi y a-t-il une pause et peut-on l'éviter ?
J'utilise ce bloc, extrait de la documentation (à la fois tp et sl).
//+------------------------------------------------------------------+
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);
}
Un ordre s'ouvre à chaque tick. Comment puis-je faire en sorte qu'un seul ordre soit ouvert ?
J'utilise ce bloc, extrait de la documentation (à la fois tp et sl).
//+------------------------------------------------------------------+
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);
}
Résolu.
Comment puis-je prolonger la ligne vers la droite ? Plus loin que la barre actuelle.
Il existe des coordonnées de temps et de prix. Le prix est clair, mais comment définir le temps (j'ai essayé iTime(Symbol(), PERIOD_CURRENT, 0), mais son index est zéro).
Comment puis-je prolonger la ligne vers la droite ? Plus loin que la barre actuelle.
Il existe des coordonnées de temps et de prix. Je comprends le prix, mais comment définir le temps (j'ai essayé iTime(Symbol(), PERIOD_CURRENT, 0), mais son index est zéro)
Bon après-midi.
Voici une question :
J'écris un indicateur qui dessine des zones avec le style de dessin DRAW_FILLING. Il y a plusieurs autres indicateurs, dont beaucoup de muwings, sur le graphique en plus de la zone dessinée. Lorsqu'une zone est dessinée, les lignes des autres indicateurs changent brusquement de couleur.
La question : peut-on dessiner les zones dans MT5 de telle manière que leur couleur ne se chevauche pas et ne modifie pas les couleurs des lignes des autres indicateurs ?
P.S. J'ai creusé toutes les propriétés des tampons indicateurs (méthodes comme PlotIndexSetInteger), il n'y a rien de similaire.
P.S2. Vous trouverez ci-joint une capture d'écran de MT5.
Bon après-midi.
Voici une question :
J'écris un indicateur qui dessine des zones avec le style de dessin DRAW_FILLING. Il y a plusieurs autres indicateurs, dont beaucoup de muwings, sur le graphique en plus de la zone dessinée. Lorsqu'une zone est dessinée, les lignes des autres indicateurs changent brusquement de couleur.
La question : peut-on dessiner les zones dans MT5 de telle manière que leur couleur ne se chevauche pas et ne modifie pas les couleurs des lignes des autres indicateurs ?
P.S. J'ai creusé toutes les propriétés des tampons indicateurs (méthodes comme PlotIndexSetInteger), il n'y a rien de similaire.
P.S2. Voici une capture d'écran de MT5.
Tout dépend de la séquence de chevauchement, celui qui est le dernier est en haut.
Définir d'abord le tampon avecDRAW_FILLING