Hello takitano
le fait que tu sois informatitien de formation et utilisateur de la plateforme metatrader, arriverais tu a programmer le sar atdmf ?
voici la prog sous prorealtime
if barindex < 1 then
facteur = 0.02
tmpSAR = low
extreme = high
tendance = 1
else
if tendance[ 1 ] = 1 then
extreme = max( extreme[ 1 ], high )
if tmpSAR[1] > low then
tendance = -1
facteur = 0.02
tmpSAR = extreme
extreme = low
else
if extreme > extreme[1] and facteur <0.2 then
facteur = min( 0.2, facteur + 0.02 )
endif
tmpSAR = tmpSAR[1]+facteur*(extreme-tmpSAR[1])
tmp = min(low,low[1])
tmpSAR = min(tmpSAR,tmp)
endif
else
extreme = min( extreme[ 1 ], low )
if tmpSAR[1] <high then
tendance = 1
facteur = 0.02
tmpSAR = extreme
extreme = high
else
if extreme < extreme[1] and facteur <0.2 then
facteur = min( 0.2, facteur + 0.02 )
endif
tmpSAR = tmpSAR[1]+facteur*(extreme-tmpSAR[1])
tmp = max(high,high[1])
tmpSAR = max(tmpSAR,tmp)
endif
endif
endif
return tmpSAR[1]
Affichage des résultats 1 à 8 sur 8
-
19/01/2008, 17h54 #1Membre Performance
- Date d'inscription
- June 2007
- Messages
- 171
- Pouvoir de réputation
- 10
Metatrader: programmer le sar atdmf
Dernière modification par gvgh ; 19/01/2008 à 17h57.
-
22/01/2008, 14h20 #2Membre lvl 50
- Date d'inscription
- January 2008
- Messages
- 74
- Pouvoir de réputation
- 9
//+------------------------------------------------------------------+
//| The Simple Moving Average.mq4 |
//| Takitano |
//| Forex Trading Software: Forex Trading Platform MetaTrader 4 |
//+------------------------------------------------------------------+
#property copyright "Takitano"
#property link "http://www.metaquotes.net"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 Yellow
//---- input parameters
double Buffer_extreme[];
double Buffer_SAR[];
int Buffer_tendance[];
extern double facteur = 0.02;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,Buffer_SAR);
SetIndexDrawBegin(1,0);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,Buffer_extreme);
SetIndexDrawBegin(2,0);
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(int i=0; i<limit; i++)
{
if(i==0)
{
facteur = 0.02;
Buffer_SAR[0] = Low[0];
Buffer_extreme[0] = High[0];
Buffer_tendance[0] = 1;
}
{
if(Buffer_tendance[i+1]==1)
{
Buffer_extreme[i] = MathMax(Buffer_extreme[i+1],High[i]);
if(Buffer_SAR[i+1]>Low[i])
{
Buffer_tendance[i]=-1;
facteur = 0.02;
Buffer_SAR[i] = Buffer_extreme[i];
Buffer_extreme[i] = Low[i];
}
else
{
if(Buffer_extreme[i] > Buffer_extreme[i+1] && facteur<0.2)
{
facteur = MathMin( 0.2, facteur + 0.02 );
}//endif
Buffer_SAR[i] = Buffer_SAR[i+1]+facteur*(Buffer_extreme[i]-Buffer_SAR[i+1]);
Buffer_SAR[i] = MathMin(Buffer_SAR[i],MathMin(Low[i],Low[i+1]));
}//endif
}
else
{
Buffer_extreme[i] = MathMin( Buffer_extreme[i+ 1 ], Low[i] );
if (Buffer_SAR[i+1] <High[i])
{
Buffer_tendance[i] = 1;
facteur = 0.02;
Buffer_SAR[i] = Buffer_extreme[i];
Buffer_extreme[i] = High[i] ;
}
else
{
if (Buffer_extreme[i] < Buffer_extreme[i+1] && facteur <0.2)
{
facteur = MathMin( 0.2, facteur + 0.02 );
}//endif
Buffer_SAR[i] = Buffer_SAR[i+1]+facteur*(Buffer_extreme[i]-Buffer_SAR[i+1]);
Buffer_SAR[i] = MathMax(Buffer_SAR[i],MathMax(High[i],High[i+1]));
}
}
}
}
//----
return(0);
}
//+------------------------------------------------------------------+Dernière modification par takitano ; 22/01/2008 à 21h38.
-
22/01/2008, 17h56 #3Membre Performance
- Date d'inscription
- June 2007
- Messages
- 171
- Pouvoir de réputation
- 10
je vais essayer de le rentrer dans la plateforme, en tous les cas merci de d'etre deja penché sur la prog
-
22/01/2008, 21h39 #4Membre lvl 50
- Date d'inscription
- January 2008
- Messages
- 74
- Pouvoir de réputation
- 9
Bonsoir,
J'ai un peu la flemme de debuger et de me pencher sur cet indicateur ... Cependant, il y a deux courbe, mais je ne sais pas si ca à cette tête là ...
Takitano ...
-
23/01/2008, 06h41 #5Membre Performance
- Date d'inscription
- June 2007
- Messages
- 171
- Pouvoir de réputation
- 10
j'essayerai d'expliquer un peu ce weekend le fonctionnement de ce sar ca t' aidera tres certaiement a une meilleure comprehension de son fonctionnement donc de sa programmation...je mettrai aussi quelques exemples graphiques
A+ et merci encore de t'y etre penché
-
04/02/2008, 06h03 #6Membre Performance
- Date d'inscription
- June 2007
- Messages
- 171
- Pouvoir de réputation
- 10
pas eu le temps de revenir ces temps ci pour decrire le fonctionnement du sar, j'essaye ca le weekend prochain
-
10/02/2008, 09h20 #7Membre Performance
- Date d'inscription
- June 2007
- Messages
- 171
- Pouvoir de réputation
- 10
bonjour takitano je viens de regarder un peu le fonctionnement du sar sous PRT pour expliquer comment il fonctionne pour t'aider dans la prog.
alors pour l'initialisation le 1er point sar est = au low (de la 1ere barre de l'historique), barindex<1 c'est en fait le 1er barchart puis le sar est caculé avec les formules apres :
if barindex < 1 then
facteur = 0.02
tmpSAR = low
extreme = high
tendance = 1
else
donc celles ci:
else
if tendance[ 1 ] = 1 then
extreme = max( extreme[ 1 ], high )
if tmpSAR[1] > low then
tendance = -1
facteur = 0.02
tmpSAR = extreme
extreme = low
else
if extreme > extreme[1] and facteur <0.2 then
facteur = min( 0.2, facteur + 0.02 )
endif
tmpSAR = tmpSAR[1]+facteur*(extreme-tmpSAR[1])
tmp = min(low,low[1])
tmpSAR = min(tmpSAR,tmp)
endif
else
extreme = min( extreme[ 1 ], low )
if tmpSAR[1] <high then
tendance = 1
facteur = 0.02
tmpSAR = extreme
extreme = high
else
if extreme < extreme[1] and facteur <0.2 then
facteur = min( 0.2, facteur + 0.02 )
endif
tmpSAR = tmpSAR[1]+facteur*(extreme-tmpSAR[1])
tmp = max(high,high[1])
tmpSAR = max(tmpSAR,tmp)
endif
endif
endif
et enfin on retourne la valeur precedente du sar:
return tmpSAR[1]
voila voila
j'espere que ca t'aidera
bon bien tiens moi au courant
-
05/07/2008, 17h47 #8Membre Performance
- Date d'inscription
- June 2007
- Messages
- 171
- Pouvoir de réputation
- 10
ya til un programateur dans la salle
je remonte vite fait la file, nombreux programmateurs MT4 sur le site mais personne n'a repondu a ce post, une partie de la reponse a ete fournie par takitano sur cette presente file et je l'en remercie par contre on est pas arrivé au bout du pb cad finalisation de cet indicateur, une derniere explication de ma part sur cette file...
indicateur "jedih_03_02"
...pour en expliquer le fonctionnement et donc le raisonnement pour la programmation sur MT4
Discussions similaires
-
Metatrader 4
Par greg1700 dans le forum Utilisation des Plateformes de TradingRéponses: 26Dernier message: 13/02/2011, 08h45 -
Formation Institut de la Bourse ATDMF 24/11/2007
Par Edellion dans le forum Annonces Trading, Finance, Forex...Réponses: 3Dernier message: 08/01/2011, 11h09 -
METATRADER : Temps réel.
Par takitano dans le forum Utilisation des Plateformes de TradingRéponses: 3Dernier message: 22/03/2009, 09h36 -
[MetaTrader] Fonctionnement des lots
Par JoKoS dans le forum Utilisation des Plateformes de TradingRéponses: 13Dernier message: 03/11/2008, 15h44 -
Points Pivots Metatrader
Par dinemma dans le forum Utilisation des Plateformes de TradingRéponses: 8Dernier message: 22/05/2008, 19h48
![]() |
|
Mercredi 20 Mars 2013
Trader-Forex.fr en RSS
LinkBack URL
About LinkBacks
Répondre avec citation
