[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 1101

 
raduga7:
Chers experts MQL4

Sur métastock je comprends If((Ref(H,-1) >Ref(H,0)) AND (Ref(H,-2) < Ref(H,-1) ), Ref( H,-1),PREV) ; mais je suis nouveau dans MQL4.

Je n'ai jamais vu de méta-stock, et la syntaxe de MT4/MT% est presque identique à celle de C/C++.

le tutoriel/manuel contient des exemples de l'opérateur if() : https://book.mql4.com/ru/operators/if rien ne semble être compliqué.

Voici également quelques informations sur les fonctions et la manière de les écrire soi-même : https://book.mql4.com/ru/operators/function.

 
Danil93:
Erreur 4109 - la négociation n'est pas autorisée. Comment le réparer ?


Le serveur ne vous permet pas de négocier - il doit s'agir d'un jour férié, ou il n'y a pas de case à cocher dans les paramètres du terminal pour autoriser la négociation. Mettez-le comme ceci (Service - Paramètres) :

 
IgorM:

Je n'ai jamais vu metastock, et la syntaxe de MT4/MT% est presque la même que celle de C/C++.

il y a des exemples de l'opérateur if() dans le tutoriel/manuel : https://book.mql4.com/ru/operators/if

Il y a aussi des informations sur les fonctions et comment les écrire soi-même : https://book.mql4.com/ru/operators/function.


J'étais un grand utilisateur de Metastock. Hélas, MT4 est plus simple et plus pratique. Il est vrai qu'il y a beaucoup plus d'indicateurs dans Metastock. Mais l'apprentissage de MQl élimine ce problème. D'autant plus que, même sans la langue, la base de code de la TA n'est pas assez petite.
 
Merci pour le conseil, c'est juste mon premier jour de travail avec MTK. J'ai donc écrit une telle question. Mais j'ai cherché sur Google et j'ai trouvé ce que je cherchais.

Mais je n'ai pas encore trouvé de solution avec des lacunes. Donc si quelqu'un n'est pas paresseux, envoyez-moi le code.


//+------------------------------------------------------------------+

//| Support et Résistance |
//| Copyright © 2004 Barry Stander.
//| http://myweb.absa.co.za/stander/4meta/ |
//+------------------------------------------------------------------+
#property copyright "Cliquez ici : Barry Stander"
#lien de propriété "http://myweb.absa.co.za/stander/4meta/"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue

//---- tampons
double v1[] ;
double v2[] ;
double val1 ;
double val2 ;
int i ;

int init()
{

IndicatorBuffers(2) ;

//---- paramètres de dessin
SetIndexArrow(0, 119) ;
SetIndexArrow(1, 119) ;

SetIndexStyle(0,DRAW_ARROW,STYLE_DOT,1,Red) ;
SetIndexDrawBegin(0,i-1) ;
SetIndexBuffer(0, v1) ;
SetIndexLabel(0, "Résistance") ;


SetIndexStyle(1,DRAW_ARROW,STYLE_DOT,1,Blue) ;
SetIndexDrawBegin(1,i-1) ;
SetIndexBuffer(1,v2) ;
SetIndexLabel(1, "Support") ;

retour(0) ;
}

int start()
{

i=Bars ;
while(i>=0)
{

val1 = iFractals(NULL, 0, MODE_UPPER,i) ;
si (val1 > 0)
v1[i]=High[i]+(High[i]-Low[i]);
sinon
v1[i] = v1[i+1] ;

val2 = iFractals(NULL, 0, MODE_LOWER,i) ;
si (val2 > 0)
v2[i]=Low[i] ;
sinon
v2[i] = v2[i+1] ;

i-- ;
}
retour(0) ;
}

//+------------------------------------------------------------------+

 
raduga7, Je ne comprends pas ce que signifie "l'indicateur de prix d'appel" ? Eh bien, l'indicateur a trouvé le prix dont vous avez besoin. Que doit-elle faire ensuite ? Il le met simplement dans son tampon et le stocke quelque part sans le rendre ? Le stocker pour l'utiliser dans les codes d'autres programmes ?
 

Naturellement, il tracera une ligne de prix sur le graphique, comme décrit dans l'indicateur publié ci-dessus.


//---- paramètres de dessin
SetIndexArrow(0, 119) ;
SetIndexArrow(1, 119) ;

SetIndexStyle(0,DRAW_ARROW,STYLE_DOT,1,Red) ;
SetIndexDrawBegin(0,i-1) ;
SetIndexBuffer(0, v1) ;
SetIndexLabel(0, "Resistance")

===================================================

Une dernière question.
Est-il possible d'afficher plusieurs graphiques 2 ou 3 avec des échéances différentes dans une seule fenêtre ? Existe-t-il des solutions toutes faites ou des exemples ?

 
raduga7:


Une autre question.
Est-il possible d'afficher plusieurs 2 ou 3 graphiques avec des échéances différentes dans une seule fenêtre ? Existe-t-il des solutions toutes faites ou des exemples ?

des intervalles de temps ? des délais ?

il y a quelques inconvénients dans les indicateurs MT - comme les coordonnées X et Y, les indicateurs utilisent le prix et le temps, le temps à son tour est également divisé en barres et l'indication de temps spécifique comme type datetime, si l'indicateur dessine en utilisant des tampons d'indicateur, il dessinera certainement par barres, et si l'indicateur utilise des objets graphiques, le temps spécifié

si votre question concerne le nombre de lignes - tampons des indicateurs, alors MT4 a un maximum de 8 pour un indicateur, mais personne n'interdit l'utilisation de plusieurs indicateurs

 

Bonjour, puis-je poser une question, si un indicateur peut prendre les valeurs d'une barre fixée par le temps à travers des variables externes ?

Par exemple, si vous entrez la date dans des variables externes - 6 janvier 2011 à 04h 25m, comment pouvez-vous faire cela dans un indicateur, merci d'avance.
 
Eliza:

Bonjour, puis-je poser une question, l'indicateur peut-il prendre des valeurs de barres définies par le temps via des variables externes ?

Par exemple, si vous mettez la date dans des variables externes - 2011 January 6 04h 25 min, comment pouvez-vous faire cela dans un indicateur, merci d'avance.


iBarShift

iTime

vous pouvez les combiner, comme ceci :

iBarShift(NULL,PERIOD_D1,Time[1 00])

et les variables externes sont un moyen d'échanger des données entre différents EA/indicateurs, je ne vois pas pourquoi les variables externes ont quelque chose à voir avec cela.

 
raduga7:

Naturellement, il tracera une ligne de prix sur le graphique comme décrit dans l'indicateur publié ci-dessus.


//---- paramètres de dessin
SetIndexArrow(0, 119) ;
SetIndexArrow(1, 119) ;

SetIndexStyle(0,DRAW_ARROW,STYLE_DOT,1,Red) ;
SetIndexDrawBegin(0,i-1) ;
SetIndexBuffer(0, v1) ;
SetIndexLabel(0, "Résistance") ;

===================================================

Une dernière question.
Est-il possible d'afficher plusieurs graphiques 2 ou 3 avec des échéances différentes dans une seule fenêtre ? Existe-t-il des solutions toutes faites ou des exemples ?




Vous n'avez pas dit que vous vouliez un rendu, vous avez dit que vous l'aviez trouvé sur Google. Eh bien, DRAW_ARROW n'est pas une ligne - c'est une flèche (il peut aussi simplement utiliser un caractère de la table des caractères autorisés). L'ordinateur est un imbécile qui ne comprend que "Il y a un signal - Pas de signal" - il a besoin d'instructions précises. Vous devez donc savoir exactement ce dont vous avez besoin en plus des prix trouvés.