double v1[1000]; double v2[1000]; double v3[1000];<------ leave out the '1000' initialization for indicator buffers, as they don't require
Eh bien, j'ai fait cela au début, mais ensuite je n'ai pas pu imprimer les valeurs du tampon, ce que je voulais faire
Attendez, laissez-moi reformuler ceci :
Si je ne déclare pas le nombre d'éléments dans le tampon, alors l'indicateur fonctionnera comme avec v1[i]=High[i]
Mais Print (v1[i]) ; ne sortira pas parce que d'après ce que je peux dire, il n'y a aucun moyen d'imprimer des valeurs de tableau non déclarées si le nombre d'éléments n'a pas été déclaré, donc il imprimera toujours 0
Donc si je ne le déclare pas globalement, alors l'indicateur fonctionne, cependant le if(faster>slower) fait toujours disparaître l'indicateur, ET je ne peux pas non plus imprimer les valeurs.
Si je le déclare et que je le réinitialise à nouveau avec v1[i]=High[i], je peux imprimer, mais tout ajout tel que && faster > slower fait disparaître l'indicateur.
Je ne comprends pas bien pourquoi.
Merci
J'ai pris votre code, j'ai enlevé les valeurs des déclarations de tampon et ça marche très bien . . .
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v2[4]= 1.5913 if
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v1[8]= 1.5962 if
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v2[11]= 1.5948 if
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v1[15]= 1.5992 if
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v1[18]= 1.5996 if
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v2[20]= 1.5919 if
27.09.2011 13:04:03 Agent86V2 GBPUSD,H1 : v2[27]= 1.5954 if
J'ai pris votre code, j'ai enlevé les valeurs des déclarations des tampons et ça marche très bien....
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v2[4]= 1.5913 if <----High
------> en ce moment Fractals inconsistent High est plus bas que prev Low <---------
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v2[11]= 1.5948 if<----High
------> en ce moment Fractals inconsistent High est plus bas que prev Low <---------
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v1[15]= 1.5992 if<----Low
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v1[18]= 1.5996 if<----High
------> en ce moment alternent des fractales cohérentes <---------
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v2[20]= 1.5919 if <----Low
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v2[27]= 1.5954 if <----High
Intéressant, merci pour le résultat Agent86V2. Les fractales sont en effet un de ces moyens intrigants mais qui peuvent être rentables pour trader.
J'ai pris votre code, j'ai enlevé les valeurs de la déclaration des tampons et ça marche très bien...
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v2[4]= 1.5913 if
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v1[8]= 1.5962 if
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v2[11]= 1.5948 if
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v1[15]= 1.5992 if
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v1[18]= 1.5996 if
2011.09.27 13:04:03 Agent86V2 GBPUSD,H1 : v2[20]= 1.5919 if
27.09.2011 13:04:03 Agent86V2 GBPUSD,H1 : v2[27]= 1.5954 if
Je suis désolé, mais je ne comprends pas. Je pensais avoir compris, mais il semble que quelque chose m'échappe encore.
int start() { double test[]; test[39] = 45.6; Print("test[39]= ",test[39] ); return(0); }Vous m'avez demandé de déclarer comme ci-dessus :
Et vous avez cité ce sujet :
"Lors de la déclaration d'un tableau, le type de données, le nom du tableau et le nombre d'éléments de chaque dimension doivent être spécifiés :"
Donc, d'une part, je ne peux pas imprimer le tableau comme dans ce script sans déclarer d'abord le double test[40] ; comme vous l'avez demandé, mais maintenant il semble que je puisse aussi imprimer sans déclaration.Il semble donc que je puisse imprimer les valeurs dans le tampon indépendamment de la déclaration.
Cependant, je ne peux pas ajouter de conditions supplémentaires qui produiraient normalement le résultat souhaité, comme if(faster > slower) ou && faster > slower.
Il peut s'agir d'EMA n'importe quoi, je veux juste comprendre pourquoi cela ne fonctionne pas.
Il fait disparaître les sommets de l'indicateur et la sortie d'impression v1 cesse de s'imprimer. Je m'attendais à ce qu'il s'aligne sur la condition et imprime la sortie.
J'ai essayé d'ajouter des blocs de code supplémentaires pour cela aussi avec les mêmes résultats.
Merci
J'ai aussi écrit ceci...
Les indicateurs de tampons sont des tableaux spéciaux... Ne confondez pas les tableaux et les tampons, ils sont similaires mais différents.
Dans le code original v1[] et v2[] sont des tampons, dans votre dernier code ce sont des tableaux, lorsque vous déclarez un tableau vous devez lui donner une taille, par exemple, v1[50] a 50 éléments de v1[0] à v1[49]. La mémoire tampon se redimensionne automatiquement lorsqu'il y a plus d'éléments nécessaires et les valeurs se déplacent automatiquement dans la mémoire tampon. Considérez la barre en cours de formation, la barre 0, lorsque cette barre se termine, la valeur de l'indicateur associée à cette barre doit se déplacer vers l'index 1... ceci est fait automatiquement avec les tampons... si vous voulez faire quelque chose de similaire avec des tableaux, vous pouvez le faire, mais vous devez le coder vous-même.
Cependant, je ne peux pas ajouter de conditions supplémentaires qui produiraient normalement le résultat souhaité, comme if(faster > slower) ou && faster > slower.
Cela peut être EMA n'importe quoi, je veux juste comprendre pourquoi cela ne fonctionne pas.
Il fait disparaître les sommets de l'indicateur et la sortie v1 print cesse de s'imprimer. Je m'attendais à ce qu'il s'aligne sur la condition et imprime la sortie.
J'ai essayé d'ajouter des blocs de code supplémentaires pour cela aussi avec les mêmes résultats.
Merci
J'ai aussi écrit ceci...
Les indicateurs de tampons sont des tableaux spéciaux... Ne confondez pas les tableaux et les tampons, ils sont similaires mais différents.
Dans le code original v1[] et v2[] sont des tampons, dans votre dernier code ce sont des tableaux, lorsque vous déclarez un tableau vous devez lui donner une taille, par exemple, v1[50] a 50 éléments de v1[0] à v1[49]. La mémoire tampon se redimensionne automatiquement lorsqu'il y a plus d'éléments nécessaires et les valeurs se déplacent automatiquement dans la mémoire tampon. Considérez la barre en cours de formation, la barre 0, lorsque cette barre se termine une valeur d'indicateur associée à cette barre doit se déplacer vers l'index 1 ... ceci est fait automatiquement avec les tampons ... si vous voulez faire quelque chose de similaire avec des tableaux, vous pouvez, mais vous devez le coder vous-même.
J'ai seulement créé une boucle secondaire parce que je n'arrivais pas à imprimer dans la première boucle de l'indicateur, mais maintenant ça s'imprime.
Quoi qu'il en soit, je ne vais pas revenir sur ce point, je pense l'avoir compris.
Donc, le code qui ne fonctionnera pas est celui des exemples montrés ici :
//+------------------------------------------------------------------+ //| //+------------------------------------------------------------------+ #property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 Red #property indicator_color2 Blue #property indicator_color3 White //---- buffers double v1[]; double v2[]; double v3[]; double val1; double val2; double val3; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { //---- IndicatorBuffers(3); SetIndexArrow(0, 111); SetIndexStyle(0,DRAW_ARROW,STYLE_DOT,1,Blue); SetIndexBuffer(0, v1); SetIndexLabel(0,"Resistance"); SetIndexArrow(1, 111); SetIndexStyle(1,DRAW_ARROW,STYLE_DOT,1,Red); SetIndexBuffer(1, v2); SetIndexLabel(1,"Support"); SetIndexArrow(2, 111); SetIndexStyle(2,DRAW_ARROW,STYLE_DOT,1,White); SetIndexBuffer(2, v3); SetIndexLabel(2,"High A"); //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { double faster = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1), //MODE_MAIN slower = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1); //MODE_SIGNAL int i=Bars; //---- for(i=Bars; i>=0; i--) { val1=iFractals(NULL, 0, MODE_UPPER,i); if (val1 > 0 && faster > slower) // I think I need to add some more comparisons for the Low[i] also // the comparison works but shows indicator when faster < slower too. // adding additional code blocks instead of above and including the part below and inserting this instead // if(faster>slower) // { // v1[i]=High[i]; // } // causes indicator to disappear { v1[i]=High[i]; Print ("v1[", i, "]= ", v1[i], " if"); } else { //v1[i]=v1[i+1]; //Print ("v1[", i, "]= ", v1[i], " else"); } val2=iFractals(NULL, 0, MODE_LOWER,i); if (val2 > 0) { v2[i]=Low[i]; Print ("v2[", i, "]= ", v2[i], " if"); } else { //v2[i]=v2[i+1]; //Print ("v2[", i, "]= ", v2[i], " else"); } } //---- return(0); } //+------------------------------------------------------------------+
Merci
Le code qui ne fonctionnera pas est donc celui des exemples montrés ici :
Merci
Je peux vous dire quel est votre problème ou vous donner des indices.... ... des indices d'abord, si tu veux que je te le dise, dis-le et je te le dirai... .
A l'intérieur de la boucle, for(i=Bars ; i>=0 ; i--) . . . quelles sont les valeurs pour faster et slower?
- 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
Bonjour à tous,
J'étais en train d'apprendre quelques sujets généraux sur les tableaux à partir d'un indicateur de base de code qui a iFractals avec une grande aide de gourous dans les forums.
De toute façon
J'ai été incapable d'ajouter des opérateurs conditionnels ou des opérations logiques pour ajouter une fonction d' addition à l'indicateur.
J'ai essayé d'insérer if(faster > slower) dans différentes zones du code juste pour jouer avec l'idée. Normalement, ces idées devraient fonctionner dans un EA mais pas dans un indicateur.
IE if(v1 > 0 && faster > slower)
mais cela fait disparaître l'indicateur.
Beaucoup d'autres combinaisons qui, selon moi, devraient produire l'indicateur souhaité if(autres conditions) etc. etc.
Toutes ne produisent aucune sortie d'instruction d'impression.
Quel est le point qui me manque ici ?
Merci de me conseiller.
Merci