[J'écrirai n'importe quel expert ou indicateur gratuitement. - page 62
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Pertinent... "Amusez-vous bien!"
/safety-summer-vacation-activated-schoolboys/
Bonjour !
J'ai besoin d'un indicateur basé sur TradeSig, son échelle d'amplitude doit être la même que celle de Williams en %, et sa plage d'amplitude doit être la même que celle de Williams dans l'échelle des niveaux de 0% à -100%.
P.S. C'est nécessaire, car TradeSig "s'éloigne" lorsque les indicateurs sont superposés les uns aux autres.
Je vous remercie d'avance.
Mon respect.
//+------------------------------------------------------------------+
//| Multi.Period.mq4 |
//| Copyright © 2010, Vladimir Hlystov.
//| cmillion@narod.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Vladimir Hlystov"
#lien de propriété "http://cmillion.narod.ru"
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 8
#propriété indicator_color1 Lime
#property indicator_width1 1
#propriété indicateur_color2 Lime
#property indicator_width2 1
#property indicator_color3 Blue
#propriété indicator_width3 1
#property indicator_color4 Blue
#propriété indicator_width4 1
#propriété indicateur_color5 Vert
#propriété indicator_width5 1
#propriété indicateur_color6 Vert
#propriété indicator_width6 1
#property indicator_color7 Red
#propriété indicator_width7 1
#property indicator_color8 Red
#propriété indicator_width8 1
//---- paramètres d'entrée
/*
PERIOD_M1 1 1 minute
PERIOD_M5 5 5 minutes
PERIOD_M15 15 15 minutes
PERIOD_M30 30 30 minutes
PERIOD_H1 60 1 heure
PERIOD_H4 240 4 heures
PERIOD_D1 1440 1 jour
PÉRIODE_W1 10080
PÉRIODE_MN1 43200
*/
extern int timeframe1 = 5 ; //Période. Peut être l'une des périodes du graphique. 0 signifie la période du graphique actuel.
extern int timeframe2 = 15 ; //Période. Peut être l'une des périodes du graphique. 0 signifie la période du graphique actuel
extern int timeframe3 = 30 ; //Période. Peut être l'une des périodes du graphique. 0 signifie la période du graphique actuel
extern int timeframe4 = 60 ; //Période. Peut être l'une des périodes du graphique. 0 signifie la période du graphique actuel
//---- tampons
double Buffer1[] ;
double Buffer2[] ;
double Buffer3[]; ;
double Buffer4[] ; double Buffer5[] ;
double Buffer5[] ;
double Buffer6[] ;
double Buffer7[] ;
double Buffer8[] ;
//+------------------------------------------------------------------+
int init()
{
if (timeframe1<Period()) timeframe1=Period() ;
si (timeframe2<=timeframe1) timeframe2=next_period(timeframe1+1) ;
si (timeframe3<=timeframe2) timeframe3=next_period(timeframe2+1) ;
si (timeframe4<=timeframe3) timeframe4=next_period(timeframe3+1) ;
//---- lignes d'indicateurs
SetIndexStyle(0,DRAW_LINE) ;
SetIndexBuffer(0,Buffer1) ;
SetIndexStyle(1,DRAW_LINE) ;
SetIndexBuffer(1,Buffer2) ;
SetIndexStyle(2,DRAW_LINE) ;
SetIndexBuffer(2,Buffer3) ;
SetIndexStyle(3,DRAW_LINE) ;
SetIndexBuffer(3,Buffer4) ;
SetIndexStyle(4,DRAW_LINE) ;
SetIndexBuffer(4,Buffer5) ;
SetIndexStyle(5,DRAW_LINE) ;
SetIndexBuffer(5,Buffer6) ;
SetIndexStyle(6,DRAW_LINE) ;
SetIndexBuffer(6,Buffer7) ;
SetIndexStyle(7,DRAW_LINE) ;
SetIndexBuffer(7,Buffer8) ;
//----
SetIndexLabel(0, "4TF "+StrPer(timeframe1)+StrPer(timeframe2)+StrPer(timeframe3)+StrPer(timeframe4)) ;
retour(0) ;
}
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted() ;
si(counted_bars>0) counted_bars-- ;
int limit=Bars-counted_bars ;
for(int i=0 ; i<limit ; i++)
{
Buffer1[i] = iMA(NULL,timeframe1,1,0,0,2,iBarShift(NULL,timeframe1,Time[i],false)) ;
Buffer2[i] = iMA(NULL,timeframe1,1,0,0,3,iBarShift(NULL,timeframe1,Time[i],false)) ;
Buffer3[i] = iMA(NULL,timeframe2,1,0,0,2,iBarShift(NULL,timeframe2,Time[i],false)) ;
Buffer4[i] = iMA(NULL,timeframe2,1,0,0,3,iBarShift(NULL,timeframe2,Time[i],false)) ;
Buffer5[i] = iMA(NULL,timeframe3,1,0,0,2,iBarShift(NULL,timeframe3,Time[i],false)) ;
Buffer6[i] = iMA(NULL,timeframe3,1,0,0,3,iBarShift(NULL,timeframe3,Time[i],false)) ;
Buffer7[i] = iMA(NULL,timeframe4,1,0,0,2,iBarShift(NULL,timeframe4,Time[i],false)) ;
Buffer8[i] = iMA(NULL,timeframe4,1,0,0,3,iBarShift(NULL,timeframe4,Time[i],false)) ;
}
retour(0) ;
}
//+------------------------------------------------------------------+
int next_period(int per)
{
si (per > 43200) return(0) ;
if (per > 10080) return(43200) ;
si (per > 1440) return(10080) ;
si (per > 240) return(1440) ;
si (per > 60) return(240) ;
si (per > 30) return(60) ;
if (per > 15) return(30) ;
if (per > 5) return(15) ;
si (per > 1) return(5) ;
if (per == 1) return(1) ;
if (per == 0) return(Period())
}
//+------------------------------------------------------------------+
string StrPer(int per)
{
si (per == 1) return(" M1 ") ;
{ if (per == 5) return(" M5 ") ;
si (per == 15) return(" M15 ") ;
si (per == 30) return(" M30 ") ;
si (per == 60) return(" H1 ") ;
si (per == 240) return(" H4 ") ;
si (per == 1440) return(" D1 ") ;
si (per == 10080) return(" W1 ") ;
si (per == 43200) return(" MN1 ") ;
return("erreur de période") ;
}
//+------------------------------------------------------------------+
Bonjour chers commerçants. J'ai un très bon indicateur de canal qui montre très bien la tendance sur l'historique des cotations, mais sur le compte réel, il est à découvert. Si vous ne savez pas comment l'utiliser, vous pouvez demander : parmi les paires suivantes, laquelle est la plus appropriée ? Je vous en serai très reconnaissant.
S'il était écrit de telle manière qu'il dessine la chaîne sur des citations réelles de la même manière qu'il est testé sur l'historique des citations, ce serait fantastique. 100% graal.
qu'entendez-vous par "vraies citations" - des citations qui n'existent pas encore ou qui sont sur le point d'apparaître ?
L'indicateur construit un canal basé sur les cotations disponibles en ce moment.
Lorsque de nouvelles citations arrivent, le canal change - se rétrécit, s'étend - parce que la situation change.
ou est-ce que ce n'est pas clair ?
S'il était écrit de manière à ce qu'il dessine une chaîne sur de vraies citations comme il est testé sur l'histoire des citations, ce serait fantastique. 100% graal.
Ne l'écrivez pas de cette façon. Vous devez juste comprendre que votre EA doit fonctionner à la vitesse du TF le plus ancien.
Le conseiller expert doit recevoir les données temporelles de la barre qui a déjà été enregistrée sur l'intervalle de temps le plus ancien.
Ainsi, votre conseiller expert n'aura pas de problèmes de dépassement de signal.
Bonjour ! dans l'indicateur les signaux apparaissent sur la barre au moment du rayon ZZ, sur celui de travail tout est correct.
Décidé de regarder l'ancien TF (travail M30, H1) en ajoutant le paramètre TF ... kludah est sorti (les signaux ne sont pas sur ces barres, et le faisceau d'affichage incorrect)
Où est-ce que je me suis trompé ?...donnez-nous des conseils s'il vous plaît. Merci d'avance !
//+------------------------------------------------------------------+
//| Dinapoli ZZ (ZigZag).mq4 |
//| réécrit par CrazyChart |
//| |
//+------------------------------------------------------------------+
#property copyright "réécrit par CrazyChart"
#propriété lien ""
#property indicator_chart_window
#property indicator_buffers 5
#property indicator_color1 Red
#property indicator_color2 Yellow
#propriété indicator_color3 Aqua
#property indicator_color4 Green
#property indicator_color5 Orchidée
//---- paramètres d'entrée
externe interne grange=1000 ;
extern Length=6 ;
extern inttern TF = 0 ;
//---- tampons
double ExtMapBuffer1[] ;
double ExtMapBuffer2[] ;
double ExtMapBuffer3[] ;
double ExtMapBuffer4[] ;
double ExtMapBuffer5[] ;
//double ExtMapBuffer2[] ;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int init()
{
//---- indicateurs
SetIndexEmptyValue(0,0.0) ;
SetIndexStyle(0,DRAW_SECTION) ;
SetIndexBuffer(0,ExtMapBuffer1) ;
SetIndexStyle(1,DRAW_ARROW) ;
SetIndexArrow(1,159) ;
SetIndexBuffer(1,ExtMapBuffer2) ;
SetIndexStyle(2,DRAW_ARROW) ;
SetIndexArrow(2,159) ;
SetIndexBuffer(2,ExtMapBuffer3) ;
SetIndexStyle(3,DRAW_ARROW) ;
SetIndexArrow(3,186) ;
SetIndexBuffer(3,ExtMapBuffer4) ;
SetIndexStyle(4,DRAW_ARROW) ;
SetIndexArrow(4,187) ;
SetIndexBuffer(4,ExtMapBuffer5) ;
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| Fonction de désinitialisation de l'indicateur de dépôt |
//+------------------------------------------------------------------+
int deinit()
{
retour(0) ;
}
//+------------------------------------------------------------------+
//| Fonction d'itération de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted() ;
int shift,Swing,Swing_n,i,uzl,zu,zd,mv ;
double LL,HH,BH,BL,NH,NL,shf ;
double Uzel [10000] [3] ;
texte de la chaîne ;
// boucle de la première barre à la barre actuelle (avec shift=0).
Swing_n=0;Swing=0;uzl=0;
BH=iHigh(NULL, TF, barn);BL=iLow(NULL, TF, barn);zu=barn;zd=barn ;
for (shift=barn;shift>=0;shift--) {
ExtMapBuffer2[shift]=EMPTY_VALUE ;
ExtMapBuffer3[shift]=EMPTY_VALUE ;
ExtMapBuffer4[shift]=EMPTY_VALUE ;
ExtMapBuffer5[shift]=EMPTY_VALUE ;
shf=0,2 ;
LL=10000000;HH=-100000000;
for (i=shift+Length;i>=shift+1;i--) {
si (iLow(NULL, TF,i)< LL) {LL=iLow(NULL, TF,i);}
si (iHigh(NULL, TF,i)>HH) {HH=iHigh(NULL, TF,i);}
}
si (iLow(NULL, TF,shift)<LL && iHigh(NULL, TF,shift)>HH){
Swing=2 ;
if (Swing_n==1) {zu=shift+1;}
if (Swing_n==-1) {zd=shift+1;}
} else {
si (iLow(NULL, TF,shift)<LL) {Swing=-1;}
si (iHigh(NULL,TF,shift)>HH) {Swing=1;}
}
if (Swing!=Swing_n && Swing_n!=0) {
if (Swing==2) {
Swing=Swing_n;BH = iHigh(NULL, TF,shift);BL = iLow(NULL, TF,shift) ;
}
uzl=uzl+1 ;
//point bas
if (Swing==1) {
Uzel [uzl][1]=zd ;
Uzel[uzl][2]=BL ;
ExtMapBuffer2[shift]=BL ;
Print("ExtMapBuffer2[shift] ", ExtMapBuffer2[shift] ;
ExtMapBuffer5[shift+3]=BL ;
}
/point culminant
si (Swing==-1) {
Uzel[uzl][1]=zu ;
Uzel[uzl][2]=BH ;
ExtMapBuffer3[shift]=BH ;
ExtMapBuffer4[shift+1]=BH+shf ;
Print("ExtMapBuffer3[shift] ", ExtMapBuffer3[shift] ;
}
BH = iHigh(NULL, TF,shift) ;
BL = iLow(NULL, TF,shift) ;
}
if (Swing==1) {
si (iHigh(NULL,TF,shift)>=BH) {BH=iHigh(NULL,TF,shift);zu=shift;}}
si (swing==-1) {
si (iLow(NULL, TF,shift)<=BL) {BL=iLow(NULL, TF,shift) ; zd=shift;}}
Swing_n=Swing ;
}
for (i=1;i<=uzl;i++) {
mv=StrToInteger(DoubleToStr(Uzel[i][1],0)) ;
ExtMapBuffer1[mv]=Uzel[i][2];
// Print("parametre MV ", ExtMapBuffer1[mv] ;
}
retour(0) ;
}
//+------------------------------------------------------------------+
Je demande de l'aide pour rédiger un indicateur.
J'ai besoin d'écrire un indicateur ou un script (ce qui fonctionnera et comment c'est mieux) qui montrerait le renversement possible du prix basé sur l'historique.
Les termes de référence sont dans le fichier joint.
Je vous remercie d'avance.
Sincèrement, Kirill.
Si vous avez des questions, veuillez écrire à onepips@bk.ru.