Dimitri, tu as dit que tu n'étais pas écrivain ! Mais vous l'êtes ! Félicitations pour ce début agréable. Il est agréable de constater que vous avez commencé avec un petit matériel, même s'il n'est pas très volumineux, l'essentiel est de commencer, et là au fur et à mesure ce sera de plus en plus long d'acquérir de l'expérience grâce à vos articles et/ou à d'autres écrivains.
Je vous remercie de votre attention.
Dimitri, tu as dit que tu n'étais pas écrivain ! Mais vous l'êtes ! Félicitations pour ce début agréable. Il est agréable de constater que vous avez commencé avec un petit matériel, même s'il n'est pas très volumineux, l'essentiel est de commencer, et là, au fur et à mesure, ce sera de plus en plus long d'acquérir de l'expérience grâce à vos articles et/ou à d'autres écrivains.
Je vous remercie pour le temps que vous m'avez accordé.
iMA_handle=iMA("EURUSD",PERIOD_H1,40,0,MODE_SMA,PRICE_CLOSE); //connecter l'indicateur et obtenir sa poignée ....... ChartIndicatorAdd(ChartID(),0,iMA_handle); // ajouter l'indicateur au graphique des prixCela ne fonctionne pas comme ça. Mais si vous enlevez le symbole et l'heure, tout va bien.
iMA_handle=iMA(NULL,0,40,0,MODE_SMA,PRICE_CLOSE);
Cela ne fonctionne pas comme ça. Mais si vous enlevez le symbole et l'heure, tout est OK.
Si vous testez sur EURUSD et sur l'heure, tout fonctionnera.
D'autre part, vous avez trouvé le problème et l'avez résolu vous-même en utilisant l'aide (peut-être), ce qui n'est pas un plus ?
Merci, l'article a été corrigé.
quelques petites questions :
1 que se passe-t-il ou se reproduit-il lorsque la période de temps du graphique est modifiée pendant l'exécution ?
2 ima_handle défini à OnInit(), iMA_handle=iMA("EURUSD",PERIOD_H1,10,0,MODE_SMA,PRICE_CLOSE) ;
Est-il possible de modifier les paramètres de ce handle de manière dynamique par le programme lui-même, par exemple en remplaçant PERIOD_H1,10 par PERIOD_M15, 39 pendant l'exécution ?
3 Qu'est-ce que le deal ?
Félicitations !
Un code extrêmement simple et bien écrit... Je pense qu'en faisant référence à la bibliothèque, vous avez fait en quelques lignes ce que j'ai fait en presque 100 (uniquement pour ouvrir et fermer des positions longues).
Je me réfère particulièrement à ces lignes :
if(m_Position.Select(my_symbol)) //si la position pour ce symbole existe déjà
{
if(m_Position.PositionType()==POSITION_TYPE_SELL) m_Trade.PositionClose(my_symbol) ; //et qu'il s'agit d'une position Sell, alors fermez-la
if(m_Position.PositionType()==POSITION_TYPE_BUY) return; /ou sinon, s'il s'agit d'une position d'achat, quittez
}
m_Trade.Buy(0.1,mon_symbole) ; //si nous sommes arrivés ici, cela signifie qu'il n'y a pas de position ; alors nous l'ouvrons
}
if(iMA_buf[1]<Close_buf[1] && iMA_buf[0]>Close_buf[0]) //si les valeurs de l'indicateur étaient inférieures au cours de clôture et sont devenues supérieures
{
if(m_Position.Select(my_symbol)) //si la position pour ce symbole existe déjà
{
if(m_Position.PositionType()==POSITION_TYPE_BUY) m_Trade.PositionClose(my_symbol) ; //et qu'il s'agit d'une position d'achat, alors fermez-la
if(m_Position.PositionType()==POSITION_TYPE_SELL) return; /ou sinon, s'il s'agit d'une position de vente, sortir
}
m_Trade.Sell(0.1,mon_symbole) ; //si nous sommes arrivés ici, cela signifie qu'il n'y a pas de position ; alors nous l'ouvrons
}
La seule chose que j'ai oubliée est peut-être une commande pour négocier uniquement lorsqu'une nouvelle barre apparaît. Il y a eu une discussion à ce sujet dans : www.mql5.com/en/forum/5762
J'utilise le code suivant, posté par mogplus8 :
static int LastBarCount=0 ;
if(Bars(_Symbol,_Period)>LastBarCount)
LastBarCount=Bars(_Symbol,_Period) ;
else
return ;
Je suis quelque peu perplexe quant à votre déclaration sur les métiers.
Les métiers présentés dans l'article sont très proches des "sceaux" dans l'article http://mqlmagazine.com/leading-article/orders-positions-and-deals-part-i/. S'agit-il de la même chose ? quelles sont leurs différences ?
D'ailleurs, dans la page en question, l'auteur déclare : Chaque ordre placé sur le marché est une transaction en soi, avec son propre résultat, indépendant des autres.
Je colle les mots ici juste pour clarifier les possibles malentendus pour ceux qui ont prêté attention aux commentaires.
Je vous remercie.
- mqlmagazine.com
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Un nouvel article Un démarrage rapide ou un petit guide pour les débutants a été publié :
Bonjour cher lecteur ! Dans cet article, je vais essayer de vous expliquer et de vous montrer comment maîtriser facilement et rapidement les principes de création d'Expert Advisors, de travail avec des indicateurs, etc. Il est destiné aux débutants et ne comportera pas d'exemples difficiles ou abstraits.
Cet article a couvert les grands principes à considérer lors de la programmation d'un Expert Advisor. Nous avons appris à utiliser l' aide contextuelle intégrée dans MetaEditor 5 pour obtenir des informations sur diverses fonctions, avons eu une idée générale des ordres et des positions et avons adopté l'utilisation des bibliothèques standard.
Auteur : Dmitriy Parfenovich