[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 198

 
SK. писал(а) >>

Jetez un coup d'œil ici .

Merci beaucoup SK, Vinin !

Un excellent exemple pour le travail en commun.

Ça devait valoir la peine de se donner du mal pour être si sophistiqué. :-)

On dirait que MQL4 sait comment "rentabiliser" le temps du programmeur. :-)

 
SK. >> :

Regardez ici .

Merci, article très utile.

 
stera писал(а) >>

Merci beaucoup SK, Vinin !

granit77 a écrit >>

Merci, article très utile.

Si ce sujet vous intéresse, jetez un coup d'œil à cet article http://www.forextrade.ru/mqlabs/sozdaniie-indikatora-kaghi.

Il aborde de nombreux détails pour les lignes horizontales, et montre la solution technique (alternance).

Les lignes verticales sont également illustrées. Mais je n'ai toujours pas compris certaines des règles. Par exemple, il suffit de changer la parité des tampons ind., au fur et à mesure que l'image oscille (bloc 4-5, changer les numéros des tampons de 6 et 7 à 5 et 6, et rendre le 5e 7m).

 
Question d'un débutant. Est-il possible d'écrire un EA en mql4 qui implique un trading automatique avec ouverture et fermeture à une certaine heure régulièrement ? Je veux le tester. Principalement utilisé en rulang, mais ces idées ne sont apparemment pas réalisables là-bas.
 

Quel est l'ordre des indicateurs et des experts ?

J'ai 2 indicateurs sur un graphique.

Et dans l'ensemble, leur temps d'exécution est parfois beaucoup plus long que le temps entre les ticks.

Quel indicateur est exécuté en premier ?

Si elles ne sont pas exécutées en parallèle, il est peut-être raisonnable de les placer dans des graphiques différents, bien sûr, s'il n'y a pas d'ordre d'exécution dans des graphiques différents.

Quel indicateur ou conseiller expert est exécuté en premier s'ils sont sur le même graphique, et s'ils sont sur des graphiques différents ?

 

x[i]=(Open[i]-Close[i]);

MomBuffer[i]=x[i] ;

Ça ne marche pas.


S'il vous plaît, dites-moi ce qu'il faut faire. Je ne sais pas quoi faire.

 
Feonix >> :

x[i]=(Open[i]-Close[i]);

MomBuffer[i]=x[i] ;

Ça ne marche pas.

S'il vous plaît, dites-moi ce qu'il faut faire. Je n'arrive pas à comprendre.

>> Que faire ? >> Afficher tous les codes!

 
OneDepo >> :

Que faire ? Montrez le code à tous!

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

//| Momentum.mq4 |

//| Droits d'auteur © 2004, MetaQuotes Software Corp.

//| http://www.metaquotes.net/ |

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

#property copyright "Copyright © 2004, MetaQuotes Software Corp.

#lien de propriété "http://www.metaquotes.net/"


#propriété indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 DodgerBlue

//---- paramètres d'entrée

extern int MomPeriod=14 ;

int ret ;

double x[] ;

//---- tampons

double MomBuffer[] ;

double ocfor[] ;

double octen[] ;

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

//| Fonction d'initialisation de l'indicateur personnalisé |

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

int init()

{

string short_name ;

//---- ligne d'indicateurs

SetIndexStyle(0,DRAW_LINE) ;

SetIndexBuffer(0,MomBuffer) ;

//---- nom pour le DataWindow et l'étiquette de la sous-fenêtre de l'indicateur

short_name="Maman("+MomPeriod+")" ;

IndicatorShortName(nom_court) ;

SetIndexLabel(0,short_name) ;

//----

SetIndexDrawBegin(0,MomPeriod) ;

//----

retour(0) ;

}

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

//| Momentum |

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

int start()

{

int i,counted_bars=IndicatorCounted() ;

//----

si(Bars<=MomPeriod) return(0) ;

//----

i=Bars ;

while(i>=0)

{

x[i]=(Open[i]-Close[i]);

MomBuffer[i]=x[i] ;

i-- ;


}

retour(0) ;

}

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



Si vous remplacez Double x[] ; par Double x ;, tout fonctionne, mais le but est d'assigner mombuffer[i]= x[i]

 
Feonix писал(а) >>

//+------------------------------------------------------------------+
//| Momentum.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"


#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue

//---- input parameters

extern int MomPeriod=14;

int ret;
double x[];

//---- buffers
double MomBuffer[];
double ocfor[];
double octen[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+

int init()
{
string short_name;
//---- indicator line
IndicatorBuffers( 2);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0, MomBuffer);
SetIndexBuffer(1, x);

//---- name for DataWindow and indicator subwindow label
short_name="Mom("+ MomPeriod+")";
IndicatorShortName( short_name);
SetIndexLabel(0, short_name);

//----
SetIndexDrawBegin(0, MomPeriod);

//----
return(0);

}

//+------------------------------------------------------------------+
//| Momentum |
//+------------------------------------------------------------------+

int start()
{
int i, counted_bars=IndicatorCounted();

//----
if(Bars<= MomPeriod) return(0);
//----
i=Bars;

while( i>=0)
{
x[ i]=(Open[ i]-Close[ i]);
MomBuffer[ i]= x[ i];
i--;
}

return(0);
}

//+------------------------------------------------------------------+
Vous pouvez le faire
 
Feonix >> :

.

.

int start()

{

int i,counted_bars=IndicatorCounted() ;

//----

si(Bars<=MomPeriod) return(0) ;

//----

i=Bars ;


ArrayResize(x, i+1) ;


while(i>=0)

{

x[i]=(Open[i]-Close[i]);

MomBuffer[i]=x[i] ;

i-- ;

}

retour(0) ;

}



Si vous remplacez Double x[] ; par Double x ;, tout fonctionne, mais le but est d'assigner mombuffer[i]= x[i].

Vous avez déclaré un tableau mais n'avez pas alloué de mémoire pour celui-ci.

Vinin a donné une façon d'allouer la mémoire, vous pouvez utiliser la seconde, à travers la fonction ArrayResize()

Raison: