Un membre expert de ce forum aurait-il la possibilité d'ajouter une alerte sonore au 1er tick des croisements de cet indicateur ?.... mais seulement au premier tick car je n'ai pas envie de devenir chèvre.
Thank you.
![]() |
|
![]() |
|
Dimanche 27 Mai 2012
Trader-Forex.fr en RSS
Un membre expert de ce forum aurait-il la possibilité d'ajouter une alerte sonore au 1er tick des croisements de cet indicateur ?.... mais seulement au premier tick car je n'ai pas envie de devenir chèvre.
Thank you.
Après de maintes relances en MP j'ai finalement cédé
J'exagère..la demande a été courtoise et surtout pas insistante
Bref, la fonction à coder était assez rapide donc j'ai fait la gestion des alertes sur cross +DI et -DI après cloture de bougie en cours.
deux types d'alertes : une visuelle (+heure+son de MT4) ou uniquement une alerte sonore à paramétrer dans les propriétés de l'indic.
J'espère que c'est ce que tu voulais.
PS : cet indic est mal codé, il recalcule toutes les bars à chaque tick..mais bon tant que ça fonctionne ...
Merci fredox, je testerais ta modification dès demain et t'en ferais part sans faute.![]()
FredoX, j'ai testé l'indicateur ADXDMI sur lequel tu m'as gentiment ajouté l'alerte et en fait, ce que je recherchais était une alerte dès le 1er tick du croisement en cours +DI et -DI, tout comme le fait d'ailleurs cet indicateur ci dessous et qui est basé sur l'ADX.
L'avantage de l'indicateur ADXDMI est que ce dernier fait beaucoup moins de croisements que l'ADX.
Bon... alors toujours pas d'expert sur mon ADXDMI !?... vous avez tort, c'est un outil fort utile![]()
Un expert pourrait-il me dire ce qui ne va pas dans cet indicateur que j'ai essayé de créer à base du DMI ?
J'ai 4 erreurs qui correspondent au iDMI que j'ai surligné en gras ci-dessous à moins que je ne me sois trompée sur toute la ligne... mais bon, c'est mon premier essai après tout.... alors merci de votre aide éventuelle.
#property copyright "Copyright © 2009, MORGANE."
#property link "http://www.metaquotes.net"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
//---- input parameters
extern int DMIbars=14;
extern int Smooth=10;
extern int CountBars=1000;
extern bool UseSound = True;
extern string SoundFile = "alert.wav";
//---- buffers
double val1[];
double val2[];
double b4plusdi,nowplusdi,b4minusdi,nowminusdi;
bool SoundBuy = False;
bool SoundSell = False;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- indicator line
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,108);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,108);
SetIndexBuffer(0,val1);
SetIndexBuffer(1,val2);
//----
return(0);
}
//+------------------------------------------------------------------+
//|AltrTrend_Signal_v2_2 |
//+------------------------------------------------------------------+
int start()
{
if (CountBars>=Bars) CountBars=Bars;
SetIndexDrawBegin(0,Bars-CountBars);
SetIndexDrawBegin(1,Bars-CountBars);
int i,shift,limit,CountedBars = IndicatorCounted();
if (CountedBars < 1)
{
for (i=0; i<=CountBars; i++) {val1[i] = 0.0; val2[i] = 0.0;}
}
if(CountedBars > 0) CountedBars--;
limit = Bars - CountedBars;
for (shift = limit; shift>=0; shift--)
{
b4plusdi=iDMI(NULL,0,DMIbars,PRICE_CLOSE,MODE_PLUSDI,shift+1);
nowplusdi=iDMI(NULL,0,DMIbars,PRICE_CLOSE,MODE_PLUSDI,shift);
b4minusdi=iDMI(NULL,0,DMIbars,PRICE_CLOSE,MODE_MINUSDI,shift+1);
nowminusdi=iDMI(NULL,0,DMIbars,PRICE_CLOSE,MODE_MINUSDI,shift);
if (b4plusdi<b4minusdi && nowplusdi>nowminusdi)
{
val1[shift]=Low[shift]-5*Point;
}
if (b4plusdi>b4minusdi && nowplusdi<nowminusdi)
{
val2[shift]=High[shift]+5*Point;
}
}
if (val1[0] != EMPTY_VALUE && val1[0] != 0 && SoundBuy)
{
SoundBuy = False;
if (UseSound) PlaySound (SoundFile);
}
if (!SoundBuy && (val1[0] == EMPTY_VALUE || val1[0] == 0)) SoundBuy = True;
if (val2[0] != EMPTY_VALUE && val2[0] != 0 && SoundSell)
{
SoundSell = False;
if (UseSound) PlaySound (SoundFile);
}
if (!SoundSell && (val2[0] == EMPTY_VALUE || val2[0] == 0)) SoundSell = True;
return(0);
}
//+--
Salut morgane,
Essaye comme ça :
b4plusdi=icustom(NULL,0,"DMI",DMIbars,PRICE_CLOSE, MODE_PLUSDI,shift+1);
Un6oitil
Proverbe japonais : " Qui s'assied au fond d'un puits pour regarder le ciel ne voit pas grand-chose " (une action qui ignore les conditions du marché recherche l'échec et l'embuscade)
Merci un6oitil, j'ai suivi ton conseil et en effet, je n'ai plus d'erreur mais malheureusement, l'indicateur ne fonctionne pas.
La fenêtre "Custom indicator - DMI Crossing" s'ouvre bien et s'intègre apparemment au graphique mais pas de signaux visuels des croisements et d'ailleurs il est présent sur ma plateforme mais pas dans la file programme/expert/indicateur de mon disque [C:]
Je crois qu'il y a un proverbe qui dit "A chacun son métier et les vaches seront bien gardées"![]()
Morgane je viens de tester ton indicateur.
J'ai bien les signaux visuel (petit points rouge et vert)
Pour le son je ne sais pas encore j'attend pour voir.
Voici un screen: