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

 
Run >> :

Pouvez-vous me dire comment dessiner un carré ou un rectangle sans le dessiner comme un fond, et le dessiner comme un cadre ?

Merci.

Dans la liste des propriétés de l'objet, définissez la propriété du rectangle à dessiner comme arrière-plan sur false :

ObjectSet( string name, OBJPROP_BACK, false) ;

Mais l'objet sera dessiné avant le graphique.

 

modifier | supprimer

Je m'excuse, peut-être pour une question déraisonnable...


Je suis un peu lent avec les tampons indicateurs.... Ou, je n'ai pas encore compris l'indicateur lui-même...


Pourriez-vous me conseiller, si possible, comment faire référence à l'indicateur BrainTrend2StopN ?


Je veux vérifier si l'ouverture de la barre actuelle est supérieure/inférieure aux valeurs de l'indicateur.

J'accède à l'indicateur depuis l'EA avec une chaîne :


iCustom(NULL,0, "BrainTrend2StopN",CountBars, 1,0)

ou

iCustom(NULL,0, "BrainTrend2StopN",CountBars, 0,0)

pour le zéro et le premier tampon respectivement....

Mais, le conseiller expert ne réagit pas à cette chaîne...


Merci d'avance.

Dossiers :
 
Morzh09 >> :

iCustom(NULL,0, "BrainTrend2StopN",CountBars,1,0)

ou

iCustom(NULL,0, "BrainTrend2StopN",CountBars,0,0)

pour le zéro et le premier tampon respectivement....

Le conseiller expert ne réagit pas à cette chaîne...

Notez que vous avez 2 paramètres externes dans votre indicateur :

extern int Simbol =119 ;

extern intBars=500 ;

vous devez les écrire tous dans l'iCustom :


iCustom(NULL,0,"BrainTrend2StopN", Simbol, CountBars, 0,0);

iCustom(NULL,0,"BrainTrend2StopN", Simbol, CountBars, 1,0);
 

alsu


Merci beaucoup. J'ai corrigé le code, maintenant je passe les deux paramètres, mais malheureusement, quand j'appelle Alert avec les valeurs du tampon de l'indicateur, je n'obtiens que des zéros.....


Si vous avez l'occasion, pouvez-vous me dire comment faire.

Dossiers :
bt1_1.mq4  10 kb
 

Essayez

Alert("Buy signal",
      "  ",
      DoubleToStr(iCustom(NULL,0,"BrainTrend1StopN", Simbol, CountBars, EnableAlerts, SignalID,1,0),8),
      "   ", 
      DoubleToStr(iCustom(NULL,0,"BrainTrend1StopN", Simbol, CountBars, EnableAlerts, SignalID,0,0),8)
      );
 
S'il vous plaît, aidez-moi, Mr. les programmeurs. Je m'y efforce depuis une semaine, mais rien ne fonctionne, car je n'ai aucune idée de la façon de programmer. Pouvez-vous écrire un indicateur pour le croisement de deux HMA avec des flèches ?
Dossiers :
hma.mq4  4 kb
 

pour une raison quelconque ne comprend pas ce qu'est un changement et ne veut pas mettre des flèches

#property indicator_chart_window
//#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Magenta // 12
#property indicator_color2 Blue // 26
#propriété indicator_color3 MediumBlue
#property indicator_color4 Tomato
#property indicator_width1 2
#property indicator_width2 2
#propriété indicator_width3 1
#propriété indicator_width4 1
//---- paramètres de l'indicateur
extern int FastHMA = 12 ;
extern int SlowHMA = 26 ;
extern inttern ExtmethodFastHMA=0 ; // MODE_SMA
extern int int ExtmethodSlowHMA=0 ; // MODE_SMA
extern int ExtpriceFastHMA=0 ; // PRICE_CLOSE
extern int ExtpriceSlowHMA=0 ; // PRICE_CLOSE
extern int ExtsdvigFastHMA=0 ;
extern int ExtsdvigSlowHMA=0 ;
extern bool EnableAlert=true ;
extern string ExtSoundFileName = "" ;
//---- tampons indicateurs
double PreHMA1[] ;
double PreHMA2[] ;
double CrossUp[] ;
double CrossDown[] ;
statique int bBuy = 0 ;
statique int bSell = 0 ;

//+------------------------------------------------------------------+
int pF, pS ;

//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int init()
{

//Middle
SetIndexStyle( 0, DRAW_LINE ) ;
SetIndexStyle( 1, DRAW_LINE ) ;
// Signaux
SetIndexStyle( 2, DRAW_ARROW, EMPTY ) ;
SetIndexArrow( 2, 233 ) ;
SetIndexStyle( 3, DRAW_ARROW, EMPTY ) ;
SetIndexArrow( 3, 234 ) ;

//---- 5 tampons indicateurs
SetIndexBuffer(0,PreHMA1) ;
SetIndexBuffer(1,PreHMA2) ;
SetIndexBuffer( 2,CrossUp ) ;
SetIndexBuffer( 3,CrossDown ) ;

IndicatorDigits( MarketInfo( Symbol(), MODE_DIGITS ) ) ;

//---- nom pour le DataWindow et l'étiquette de la sous-fenêtre de l'indicateur
IndicatorShortName("HMA2("+FastHMA+", "+SlowHMA+")") ;
SetIndexLabel( 0, "HMA("+FastHMA + "," +SlowHMA +")" + FastHMA ) ;
SetIndexLabel( 1, "HMA(" + FastHMA + "," + SlowHMA+")" + SlowHMA ) ;
SetIndexLabel( 2, "Buy" ) ;
SetIndexLabel( 3, "Sell" ) ;

pF = MathSqrt(FastHMA) ;
pS = MathSqrt(SlowHMA) ;

//---- initialisation faite
retour(0) ;
}


//+------------------------------------------------------------------+
double WMA(int x, int p) {
return(iMA(NULL, 0, p, 0, MODE_SMA, PRICE_CLOSE, x+sdvig))
}


//+------------------------------------------------------------------+
//| Moyenne mobile de l'oscillateur |
//+------------------------------------------------------------------+
int start()
{

bool bConditionUp ;
{ bConditionDown ;
double gamme ;
double AvgRange ;

int limite ;
int compteur ;
int counted_bars=IndicatorCounted() ;

//---- dernière barre comptée sera recomptée
si(counted_bars>0) counted_bars-- ;
limit=Bars-counted_bars ;

//---- préparer l'AMH
for(int i=0 ; i<limit ; i++) {
PreHMA1[i] = 2*WMA(i, FastHMA/2) - WMA(i, FastHMA) ;
PreHMA2[i] = 2*WMA(i, SlowHMA/2) - WMA(i, SlowHMA) ;

AvgRange = 0 ;
bConditionUp = 0 ;
bConditionDown = 0 ;
for ( counter = i ; counter <= i + 9 ; counter++ ) {
AvgRange += MathAbs( High[ counter ] - Low[ counter ] ) ;
}
Gamme = AvgRange/10 ;
bConditionUp = (PreHMA1[i+1] >= PreHMA2[i+1] ) &&
(PreHMA1[i+2] <= PreHMA2[i+2] ) &&
(PreHMA1[i] >= PreHMA2[i] ) ; // croise vers le haut
bConditionDown = (PreHMA1[i+1] <= PreHMA2[i+1] ) &&
(PreHMA1[i+2] >= PreHMA2[i+2] ) &&
(PreHMA1[i] <= PreHMA2[i] ) ; // croisement vers le bas
if ( bConditionUp) {///
CrossUp[i+1] = PreHMA2[i+1]-Range * 0.75 ;
CrossDown[i+1] = EMPTY_VALUE ;
bConditionDown = false ;
}

if ( bConditionDown ) {//
CrossDown[i+1] = PreHMA2[i+1]+Range * 0.75 ;
CrossUp[i+1] = EMPTY_VALUE ;
bConditionUp = false ;
}

if (!bConditionUp && !bConditionDown) {
CrossDown[i+1] = EMPTY_VALUE ;
CrossUp[i+1] = EMPTY_VALUE ;
}

if (bConditionUp && !bBuy==1 && i==0 && EnableAlert){
bBuy = 1 ; // activer le drapeau d'achat
bSell = 0 ; // réinitialiser le drapeau pour vendre
Alert (Symbol()," ",Period(), "M Achtung BUY ") ; // beep
if ( ExtSoundFileName != "" ) PlaySound( ExtSoundFileName ) ;
}
if (bConditionDown && !bSell==1 && i==0 && EnableAlert){
bBuy = 0 ; // activer le drapeau d'achat
bSell = 1 ; // réinitialiser le drapeau de vente
Alert (Symbol()," ",Period(), "M Achtung SELL ") ; // Bip
if ( ExtSoundFileName != "" ) PlaySound( ExtSoundFileName ) ;
}
//Comment ("Achat-"+bAchat+"\nVente-"+bVente) ;
} // pour

//rendez ("0 ) ;
}
//pour acheter
// si (bBuy==0 && i < 1 && EnableAlert) {
///Alert (Symbol()," ",Period(), "M Achtung BUY ") ; // beep
// Alerte ("Buy,",bBuy,",i,",EnableAlert) ;
// si ( ExtSoundFileName != "" ) PlaySound( ExtSoundFileName ) ;
// }

// si (bSell==0 && i < 1 && EnableAlert) {
///Alert (Symbol()," ",Period(), "M Achtung SELL ") ;
// Alerte ("Sell-",bSell," ",i," ",EnableAlert) ;
// si ( ExtSoundFileName != "" ) PlaySound( ExtSoundFileName ) ;
// }

Quelqu'un pourrait-il me dire quelle est mon erreur ?

 
kurt >> :


Quelqu'un peut-il me dire quelle est mon erreur ?

Tout d'abord, mettez le code dans une forme lisible, en utilisant des tabulations indiquant le niveau d'imbrication et le bouton SRC

 

Bonjour.


S'il vous plaît, aidez-moi à comprendre la fonction d'information du tutoriel https://book.mql4.com/ru/build/info que je n'ai pas compris depuis une semaine, pourquoi aucun signal de celle-ci n'apparaît ? J'ai pris le conseiller expert exactement à partir du tutoriel, l'information est incluse à l'intérieur.


Dois-je ajouter un indicateur à mon graphique ? Que dois-je utiliser pour le remplir ? L'exemple a un indicateur vide et je veux le remplir avec ce que je veux... Comment faire pour qu'il affiche les signaux de la fonction Inform() ?

 

On dirait qu'une semaine pour nous, les nouveaux, c'est la date limite après laquelle nous nous adressons à vous, pros)))).


En conclusion des messages récents...

Raison: