Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 807
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
Bonjour à tous ! Je suis assis ici à faire tourner l'indicateur. Je pense que j'ai tout fait correctement. Mais le truc c'est que... Ouvre des transactions sur chaque bougie
Code du conseiller expert
// получение сигнала _________________________________________________________________________________________________________
int signal=-1 ;
si (time_bar!=Time[0]) {
time_bar=Time[0] ;
double stop_buy=iCustom(Symb,0, "cm-FiguresCandle",AlertON,colorBulls,colorBears,DrawCandle,0,1)
double stop_sell=iCustom(Symb,0, "cm-FiguresCandle",AlertON,colorBulls,colorBears,DrawCandle,1,1) ;
if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {
double super_buy=iCustom(Symb,0, "xSuperTrend Tape MTF NRP",",",SuperTrend_Period,SuperTrend_Multiplier,SuperTrend_TimeFrame,SuperTrend_AutoTF,0,1) ;
si(stop_buy!=EMPTY_VALUE && super_buy==1) signal=0 ;
si(stop_sell!=EMPTY_VALUE && super_buy==EMPTY_VALUE) signal=1 ;
}
code indicateur
retour(0) ;
}
//+------------------------------------------------------------------+
int start()
{
string NameFigur ;
int counted_bars=IndicatorCounted() ;
si(counted_bars<0) return(-1) ;
si(counted_bars>0) counted_bars-- ;
int limit=Bars-counted_bars ;
if(counted_bars==0) limit-=1+2;
for(int i=1 ; i<limit ; i++)
{
bool up=false,down=false ;
double MA0 = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i) ;
double MA1 = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i) ;
double MA2 = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i+1) ;
double MA3 = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i+2) ;
si(MA0>MA1 && MA1>MA2 && MA2>MA3) up=vrai ;
sinon up=false ;
si(MA0<MA1 && MA1<MA2 && MA2<MA3) down=true ;
sinon down=false ;
//---
NameFigur=" ;
if(Close[i]>Close[i+1] && Close[i]>Open[i+1])
{
if(down && Open[i+1]>Close[i+1] && Open[i]>Close[i+1] && Close[i]<Open[i+1] && Close[i]>Open[i])
{
NameFigur="BullHarami" ;
Redraw(i,colorBulls,NameFigur) ; Redraw(i+1,colorBulls,NameFigur) ;
}
if(Open[i+1]>Close[i+1] && Open[i]>Close[i+1] && Open[i]<Open[i+1] && Close[i]>Open[i+1])
{
NameFigur="BullCross" ;
Redraw(i,colorBulls,NameFigur) ; Redraw(i+1,colorBulls,NameFigur) ;
}
if(Close[i+1]<Open[i+1] && Open[i]<Close[i+1] && Close[i]>Open[i+1])
{
NameFigur="Bullish Engulfing" ;
if(Close[i+1]<Open[i+1] && Close[i]>Open[i] && Open[i]<Close[i+1] && Close[i]>Close[i+1]+((Open[i+1]-Close[i+1])/2))
{
NameFigur="BullPierce" ;
}
Redraw(i,colorBulls,NameFigur) ; Redraw(i+1,colorBulls,NameFigur) ;
}
si(Close[i+2]<Open[i+2] && Open[i+1]<Close[i+2] && Close[i+1]<Close[i+2] && Open[i]>Close[i+1] && Open[i]>Open[i+1] && Close[i]>=Close[i+2])
{
NameFigur="Morning Star" ;
Redraw(i,colorBulls,NameFigur) ; Redraw(i+1,colorBulls,NameFigur) ; Redraw(i+2,colorBulls,NameFigur) ;
}
}
if(Open[i]-Low[i]>MathMax(High[i]-Close[i],Close[i]-Open[i])*3 && Close[i]-Low[i]>MathMax(High[i]-Close[i],Close[i]-Open[i])*3)
{
NameFigur="Hammer" ;
if(up) {Redraw(i,colorBulls,NameFigur) ; Redraw(i+1,colorBulls,NameFigur);}
if(down) {Redraw(i,colorBears,NameFigur) ; Redraw(i+1,colorBears,NameFigur);}
}
///// bears ///// bears ///// bears ///// bears ///// bears ///// bears ///// bears ///// bears ///// bears
if(Close[i]<Close[i+1] && Close[i]<Open[i+1])
{
if(up& Open[i+1]<Close[i+1] && Open[i]<Close[i+1] && Close[i]>Open[i+1] && Close[i]<Open[i])
{
NameFigur="BearHarami" ;
Redraw(i,colorBears,NameFigur) ; Redraw(i+1,colorBears,NameFigur) ;
}
if(Open[i+1]<Close[i+1] && Open[i]<Close[i+1] && Open[i]>Open[i+1] && Close[i]<Open[i+1])
{
NameFigur="BearCross" ;
Redraw(i,colorBears,NameFigur) ; Redraw(i+1,colorBears,NameFigur) ;
}
if(Close[i+1]>Open[i+1] && Close[i]<Open[i] && Open[i]>Close[i+1] && Close[i]<Open[i+1])
{
NameFigur="BearEngulf" ;
if(Close[i+1]>Open[i+1] && Open[i]>Close[i+1] && Close[i]<Close[i+1]-((Close[i+1]-Open[i+1])/2))
{
NameFigur="DarkCloud" ;
}
Redraw(i,colorBears,NameFigur) ; Redraw(i+1,colorBears,NameFigur) ;
}
if(Close[i+2]>Open[i+2] && Open[i+1]>Close[i+2] && Close[i+1]>Close[i+2] && Open[i]<Close[i+1] && Open[i]<Open[i+1] && Close[i]<Close[i+2])
{
NameFigur="EveningStar" ;
Redraw(i,colorBears,NameFigur) ; Redraw(i+1,colorBears,NameFigur) ; Redraw(i+2,colorBears,NameFigur) ;
}
if(up && High[i]-Open[i]>MathMax(Close[i]-Low[i],Open[i]-Close[i])*3 && High[i]-Close[i]>MathMax(Close[i]-Low[i],Open[i]-Close[i])*3)
{
NameFigur="Shooter" ;
Redraw(i,colorBears,NameFigur) ; Redraw(i+1,colorBears,NameFigur) ;
}
}
if(NameFigur!="")
{
double DELTA=(MathMax(High[i],High[i+1])-MathMin(Low[i],Low[i+1]))/2 ;
if(Color==colorBears) {BufferDN[i]=MathMax(High[i],High[i+1]);P=BufferDN[i]+DELTA;}
else {BufferUP[i]=MathMin(Low[i],Low[i+1]);P=BufferUP[i]-DELTA;}
DrawTEXT(StringConcatenate(NameFigur," ",TimeToStr(Time[i],TIME_DATE|TIME_MINUTES)),NameFigur,Color,Time[i+1],P) ;
}
}
if(Timei!=Time[0] && AlertON && i==0 && NameFigur!="") {Alert(Symbol()+" FiguresCandle ="+NameFigur);Timei=Time[0];}
retour(0) ;
}
//-------------------------------------------------------------------
void Redraw(int i,color col,string name)
{
Couleur=col ;
if(!DrawCandle) return ;
name=StringConcatenate(name,",TimeToStr(Time[i],TIME_DATE|TIME_SECONDS)) ;
ObjectCreate(name,OBJ_TREND,0,Time[i],High[i],Time[i],Low[i]) ;
ObjectSet(name,OBJPROP_COLOR,col) ;
ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID) ;
ObjectSet(name,OBJPROP_BACK,false) ;
ObjectSet(name,OBJPROP_RAY,false) ;
ObjectSet(name,OBJPROP_WIDTH,2) ;
name=StringConcatenate(name," o") ;
ObjectCreate(name,OBJ_TREND,0,Time[i],Open[i],Time[i] ;
ObjectSet(name,OBJPROP_COLOR,col) ;
ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID) ;
ObjectSet(name,OBJPROP_BACK,false) ;
ObjectSet(name,OBJPROP_RAY,false) ;
ObjectSet(name,OBJPROP_WIDTH,2) ;
name=StringConcatenate(name," c") ;
ObjectCreate(name,OBJ_TREND,0,Time[i],Close[i],Time[i]+Period()*60,Close[i]) ;
ObjectSet(name,OBJPROP_COLOR,col) ;
ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID) ;
ObjectSet(name,OBJPROP_BACK,false) ;
ObjectSet(name,OBJPROP_RAY,false) ;
ObjectSet(name,OBJPROP_WIDTH,2) ;
}
//-------------------------------------------------------------------
void DrawTEXT(string NT,string Name,color col,datetime t1,double p1)
{
ObjectDelete(NT) ;
ObjectCreate(NT,OBJ_TEXT,0,t1,p1,0,0,0) ;
ObjectSet(NT,OBJPROP_COLOR,col) ;
ObjectSetText(NT,Name,10, "Arial") ;
}
//--------------------------------------------------------------------
Bonjour à tous ! Je suis assis ici à faire tourner l'indicateur. Je pense que j'ai tout bien fait. Mais le truc c'est que... J'ai ouvert un marché sur chaque bougie.
La "feuille" est vraiment impressionnante :-) Insérez le code plus soigneusement et ne copiez pas les choses manifestement inutiles.
sur le sujet - imprimez vous-même les valeurs de stop_buy et stop_sell. Parce que la condition est explicitement déclenchée :
if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {
peut-être que stop_buy et stop_sell sont initialisés avec 0 au lieu de EMPTY_VALUE
La "feuille" est bien sûr très bonne :-) insérez le code plus attentivement et ne copiez rien d'inutile.
A ce sujet - imprimez vous-même stop_buy et stop_sell. Parce que clairement une condition est déclenchée :
if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {
peut-être que stop_buy et stop_sell sont initialisés avec 0 et non avec EMPTY_VALUE
Désolé pour ça )) - pour une page entière pour l'amour de Dieu)
Je vais l'essayer maintenant)
La "feuille" est bien sûr très bonne :-) insérez le code plus attentivement et ne copiez rien d'inutile.
A ce sujet - imprimez vous-même les valeurs de stop_buy et stop_sell. Parce que clairement la condition est déclenchée :
if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {
peut-être que stop_buy et stop_sell sont initialisés avec 0 au lieu de EMPTY_VALUE
cela ne fonctionne toujours pas. Au fait, j'ai remarqué que l'ordre de vente s'ouvre correctement, mais que l'ordre d'achat devient fou et ouvre un milliard)).
Cela ne fonctionne toujours pas de la même manière. J'ai remarqué, au passage, que les transactions en vente s'ouvrent correctement, mais en achat, il s'affole et ouvre un milliard)).
Au moins, la recherche peut être activée ? Insérer le code...
Quel problème... Vous n'avez même pas besoin d'activer la recherche, le moteur du forum met le filet lui-même...Pouvez-vous au moins activer la recherche ? Insérer le code...
Quel dommage... Vous n'avez même pas besoin d'activer la recherche, le moteur du forum met lui-même le filet...Je m'excuse abondamment, je n'ai pas beaucoup d'expérience pour me comporter correctement sur le forum))).
Bonjour à tous, qui peut m'aider à fusionner deux indicateurs en un seul, j'ai le code source, j'en ai vraiment besoin
Soit vous me montrez ce que vous ne pouvez pas faire lors de la fusion, soit vous me contactez si vous ne l'avez pas fait vous-même ou si vous ne voulez pas le faire :
Soit vous me montrez ce que vous ne pouvez pas faire lors d'une fusion, soit vous venez ici si vous ne l'avez pas fait vous-même, ou si vous ne voulez pas le faire :
J'essaie de savoir exactement ce que je ne peux pas faire, je comprends que personne n'est susceptible de me dire quoi que ce soit gratuitement - le capitalisme, bordel de merde)). Je n'ai rien contre, j'ai juste besoin de comprendre pourquoi les trades s'ouvrent sur chaque bougie dans le sens de l'achat.