Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 807

 

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") ;

}

//--------------------------------------------------------------------


 
Kos Mos:

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

 
Maxim Kuznetsov:

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)

 
Maxim Kuznetsov:

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)).

 
Kos Mos:

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...
 
Alexey Viktorov:

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))).



   // получение сигнала _________________________________________________________________________________________________________
   int signal=-1;
   if (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);
        if(stop_buy!=EMPTY_VALUE && super_buy==1) signal=0;
         if(stop_sell!=EMPTY_VALUE && super_buy==EMPTY_VALUE) signal=1;
         }


 
Je n'arrive pas à faire partir les skis, pouvez-vous m'aider ?)
 
Bonjour à tous, qui peut m'aider à combiner deux indicateurs en un seul, j'ai le code source, j'en ai vraiment besoin.
 
Олег:
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 :

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • www.mql5.com
Имеется готовый год с Амиброкера который можно использовать для "перевода" в МТ4 ( с дополнениями) Советник должен работать на всех тайм фреймах (внутри дня, дневной и выше) и обязательно на Ренко Советник должен торговать на корзине инструментов (портфель) У советника должна быть возможность менять параметры в окне (без необходимости открывать...
 
Artyom Trishkin:

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.