Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 807

 

¡Buenos días a todos! Estoy sentado aquí haciendo girar el indicador. Creo que lo he hecho todo bien. Pero la cosa es... Abre operaciones en cada vela


Código del Asesor Experto

// получение сигнала _________________________________________________________________________________________________________

int señal=-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;

}


código indicador


return(0);

}

//+------------------------------------------------------------------+

int inicio()

{

cadena NombreFigur;

int barras_contadas=IndicadorContado();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit=Barras contadas;

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


if(MA0>MA1 && MA1>MA2 && MA2>MA3) up=true;

Si no, up=false;

if(MA0<MA1 && MA1<MA2 && MA2<MA3) down=true;

si no, down=false;

//---

NombreFigur=";

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="Envolvente alcista";

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

}

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="Estrella de la mañana";

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)

{

NombreFigur="Martillo";

if(up) {Redibujar(i,colorBulls,NameFigur); Redibujar(i+1,colorBulls,NameFigur);}

if(down) {Redibujar(i,colorOsos,NombreFigura); Redibujar(i+1,colorOsos,NombreFigura);}

}

///// osos ///// osos ///// osos ///// osos ///// osos ///// osos ///// osos

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)

{

NombreFigur="Tirador";

Redraw(i,colorBears,NameFigur); Redraw(i+1,colorBears,NameFigur);

}

}

if(NombreFigur!="")

{

double DELTA=(MathMax(Alto[i],Alto[i+1])-MathMin(Bajo[i],Bajo[i+1]))/2;

if(Color==colorOso) {BufferDN[i]=MathMax(Alto[i],Alto[i+1]);P=BufferDN[i]+DELTA;}

si no {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];}

return(0);

}

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

void Redraw(int,color col,string name)

{

Color=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(nombre,OBJPROP_COLOR,col);

ObjectSet(nombre,OBJPROP_STYLE,STYLE_SOLID);

ObjectSet(nombre,OBJPROP_BACK,false);

ObjectSet(nombre,OBJPROP_RAY,false);

ObjectSet(nombre,OBJPROP_WIDTH,2);

name=CadenaConcatenada(nombre," o");

ObjectCreate(name,OBJ_TREND,0,Time[i],Open[i],Time[i];

ObjectSet(nombre,OBJPROP_COLOR,col);

ObjectSet(nombre,OBJPROP_STYLE,STYLE_SOLID);

ObjectSet(nombre,OBJPROP_BACK,false);

ObjectSet(nombre,OBJPROP_RAY,false);

ObjectSet(nombre,OBJPROP_WIDTH,2);

name=CadenaConcatenada(nombre," c");

ObjectCreate(name,OBJ_TREND,0,Time[i],Close[i],Time[i]+Period()*60,Close[i]);

ObjectSet(nombre,OBJPROP_COLOR,col);

ObjectSet(nombre,OBJPROP_STYLE,STYLE_SOLID);

ObjectSet(nombre,OBJPROP_BACK,false);

ObjectSet(nombre,OBJPROP_RAY,false);

ObjectSet(nombre,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:

¡Buenos días a todos! Estoy sentado aquí haciendo girar el indicador. Creo que lo he hecho todo bien. Pero la cosa es... Abrí un trato en cada vela.



La "hoja" es realmente impresionante :-) Introduce el código con más cuidado y no copies cosas obviamente innecesarias

sobre el tema - imprima usted mismo los valores de stop_buy y stop_sell. Porque la condición se activa explícitamente :

  if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {

tal vez stop_buy y stop_sell se inicializan con 0 en lugar de EMPTY_VALUE

 
Maxim Kuznetsov:

La "hoja" es por supuesto bastante buena :-) inserta el código con más cuidado y no copies nada obviamente innecesario

Sobre el tema - imprímase stop_buy y stop_sell. Porque es evidente que se desencadena una condición :

  if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {

quizás stop_buy y stop_sell se inicializan con 0 y no con EMPTY_VALUE

Lo siento )) - para una página entera por el amor de Dios)


Lo probaré ahora)

 
Maxim Kuznetsov:

La "hoja" es por supuesto bastante buena :-) inserta el código con más cuidado y no copies nada obviamente innecesario

Sobre el tema - imprima usted mismo los valores de stop_buy y stop_sell. Porque claramente la condición se desencadena :

  if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {

tal vez stop_buy y stop_sell se inicializan con 0 en lugar de EMPTY_VALUE

sigue sin funcionar. Por cierto, me he dado cuenta de que la orden de venta se abre correctamente, pero en la orden de compra se vuelve loca y abre mil millones))

 
Kos Mos:

Sigue sin funcionar de la misma manera. Por cierto, me he dado cuenta de que las operaciones en venta se abren correctamente, pero en compra se vuelve loco y abre mil millones))

Bueno, al menos se puede habilitar la búsqueda... Insertar código...

Qué problema... Ni siquiera tienes que activar la búsqueda, el propio motor del foro pone la sartén por el mango...
 
Alexey Viktorov:

¿Puede al menos habilitar la búsqueda? Insertar código...

Qué pena... Ni siquiera hay que hacer una búsqueda, el propio motor del foro pone la sartén por el mango...

Me disculpo profusamente, no tengo mucha experiencia en comportarme en el foro)))



   // получение сигнала _________________________________________________________________________________________________________
   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;
         }


 
No consigo que los esquís vayan, ¿podéis ayudarme, por favor?)
 
Hola a todos, quien me puede ayudar a combinar dos indicadores en uno, tengo el código fuente, realmente lo necesito
 
Олег:
Hola a todos, quien me puede ayudar a fusionar dos indicadores en uno, tengo el código fuente, realmente lo necesito

O me enseñas lo que no puedes hacer al fusionar, o te pones en contacto conmigo si no lo has hecho tú o no quieres hacerlo:

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

Puedes mostrarme lo que no puedes hacer al fusionar, o puedes ponerte en contacto conmigo si no lo has hecho o no quieres hacerlo:

Estoy tratando de averiguar exactamente lo que no puedo hacer, entiendo que es probable que nadie me diga nada de forma gratuita - el capitalismo, por el amor de Dios)). No tengo nada en contra, sólo necesito entender por qué las operaciones se abren en cada vela en la dirección de compra.