Ayuda Codificando líneas verticales con EA
Ayuda Codificando líneas verticales con EA

 

Publi

Resultados 1 al 7 de 7

Tema: Ayuda Codificando líneas verticales con EA

  1. #1
    Hola,

    Tomé un código del indicador de alguien para dibujar líneas verticales. He usado el código en un EA y quiero ejecutar el EA únicamente para trazar las líneas durante un período de seis meses para poder mirar el gráfico después con fines de backtesting manual.

    El problema es que cuando se traza una nueva línea (en la apertura del mercado), la línea anterior se elimina, lo que no es bueno para el backtesting. Intenté comentar la primera línea:

    ObjectDelete(MMl DoubleToStr(i,0));

    Pero eso no tuvo éxito. Agradecería cualquier ayuda por favor. Pegaré la función a continuación, así como el lugar donde la llamo desde la función start(). Gracias.

    int LíneaVertical(cadena s,int i,int st,int Col)
    {
    ObjectDelete(MMl DoubleToStr(i,0));
    val1=Bajo[Más bajo(NULL,0,MODE_LOW,BarsPerWindow(),0)];
    val2=Alto[Más alto(NULL,0,MODE_HIGH,BarsPerWindow(),0)];
    ObjectCreate(MMl DoubleToStr(i,0),OBJ_TREND,0,Tiempo[i],0,Tiempo[i],900);
    Conjunto de objetos(MMl DoubleToStr(i,0),OBJPROP_COLOR,Col);
    Conjunto de objetos(MMl DoubleToStr(i,0),OBJPROP_WIDTH,2);
    ObjectSet(MMl DoubleToStr(i,0),OBJPROP_STYLE,st);
    Conjunto de objetos(MMl DoubleToStr(i,0),OBJPROP_RAY,0);
    ObjetoDelete(MMt DoubleToStr(i,0));
    ObjectCreate(MMt DoubleToStr(i,0),OBJ_TEXT,0,Time[i],val2 Point*3);
    ObjectSetText(MMt DoubleToStr(i,0),s,10,Arial,Col);
    ObjectSet(MMt DoubleToStr(i,0), OBJPROP_ANGLE, 90);/Gira el texto 90 grados
    ObjetosRedraw();
    retorno(0);
    }
    //========================================
    int inicio()
    {
    h=HoraHora(Hora[0]);
    m=TiempoMinuto(Tiempo[0]);

    if ((h==7) (m==0)) {VerticalLine(LO,0,STYLE_SOLID,Aqua);}
    if ((h==13) (m==30)) {VerticalLine(NYO,0,STYLE_SOLID,Orange);}

    retorno(0);
    }
    //==================

    Gracias gente

  2.                         
    Publicidad
  3. #2

    Cita Iniciado por ;
    Gracias chicos, lo aprecio. Adjuntaré todo y verás que no hay mucho más que el código que pegué. Sospecho que ni siquiera usa dos líneas, sino que solo se abre una para ambas, ya que pierde la línea anterior tan pronto como aparece la nueva. Lo intentaré y espero poder solucionarlo. Gracias de nuevo.
    Amigo, tómate un tiempo en el cuadro de búsqueda, ya que estoy seguro de que encontrarás algo más que adecuado más rápido de lo que cualquiera de nosotros tardaría en volver a trabajar el código. Me sorprendería que no encontraras algo mucho mejor que funcione perfectamente. y sí, tienes razón en que ni siquiera hace las dos líneas. cada vez simplemente traza la línea '0' una y otra vez. Quien haya hecho esto obviamente está dando sus primeros pasos en la codificación y está tratando de encontrar un poco su camino.

  4. #3
    1 Archivos adjuntos Gracias chicos, se lo agradezco. Adjuntaré todo y verás que no hay mucho más que el código que pegué. Sospecho que ni siquiera usa dos líneas, sino que solo se abre una para ambas, ya que pierde la línea anterior tan pronto como aparece la nueva. Lo intentaré y espero poder solucionarlo. Gracias de nuevo.
    https://www.forosforex.com/attachmen...2151766414.ex4

  5. #4

    Cita Iniciado por ;
    no, si miras nuevamente verás que la línea avanza todo el tiempo cuando se activa una nueva zona horaria. solo rastrea 2 zonas horarias y las envía cada 24 horas, se elimine el objeto o no (de hecho, la eliminación es redundante).
    Sí, estás en lo cierto. No miré tan de cerca LOL Pero vi el reduny en la eliminación, lo que provocó mi publicación prematura. ¡Gracias por señalarlo!

  6. #5
    Lo más probable es que el código que elimina la línea no esté en nada de lo que publicaste. Busque algo como: if (ObjectFind(Line) gt; -1) { ObjectDelete(Line); } Pero es difícil decirlo a partir del código que nos mostraste.

  7. #6

    Cita Iniciado por ;
    Lo más probable es que el código que elimina la línea no esté en nada de lo que publicaste. Busque algo como: if (ObjectFind(Line) gt; -1) { ObjectDelete(Line); } Pero es difícil decirlo a partir del código que nos mostraste.
    no, si miras nuevamente verás que la línea avanza todo el tiempo cuando se activa una nueva zona horaria. solo rastrea 2 zonas horarias y las envía cada 24 horas, se elimine el objeto o no (de hecho, la eliminación es redundante). editar: Creo que las 2 pruebas if podrían simplemente incluirse en un bucle while que solo busca barras en el pasado hasta alcanzar una cantidad máxima ”encontrada” o el final del historial, trazando tiempos recién encontrados que coinciden. Demasiado ocupado para preocuparse lo suficiente como para hacerlo y probarlo, pero es un trabajo pequeño y fácil para alguien que está lo suficientemente aburrido.

  8. #7
    Hola Nubcake, gracias. Encontré algo y descubrí que alguien más había publicado fragmentos de código para hacerlo como yo lo quiero... funcionando muy bien ahora. Gracias por tu molestia. Buen comercio para ti

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Uso de cookies
Utilizamos cookies propias y de terceros para elaborar información estadística y mostrarle publicidad personalizada a través del análisis de su navegación. Si continúa navegando acepta su uso. Más información y política de cookies.
     

Aviso legal: Ni forosforex.com ni ninguna persona involucrada en forosforex.com aceptarán ninguna responsabilidad por cualquier pérdida o daño en el trading como resultado de la confianza en la información contenida en este sitio web, incluidos datos, cotizaciones, gráficos y señales de compra/venta. Por favor, infórmese plenamente de los riesgos y costes asociados a las operaciones en los mercados financieros, una de las formas de inversión que más riesgos entrañan.
forosforex.com le quiere recordar que los datos contenidos en este sitio web no son necesariamente en tiempo real ni exactos. forosforex.com no asume responsabilidad alguna por las pérdidas en que usted podría incurrir como resultado de la utilización de estos datos. Este acuerdo se rige por su versión en inglés, que prevalecerá siempre que haya alguna discrepancia entre la versión en inglés y la versión en español. Los CFD son un producto difícil de entender, varios organismos reguladores consideran que no es adecuado para inversores minoristas debido a su complejidad y riesgo.
Advertencia de riesgo: Los CFDs son un producto difícil de entender, y puede no ser adecuado para inversores minoristas debido a su complejidad y riesgo. Existe la posibilidad de sufrir una pérdida igual o superior a la inversión. Por lo tanto, no debe invertir o arriesgar dinero que no pueda permitirse perder. Debe asegurarse de que comprende todos los riesgos. Antes de abrir una cuenta en un broker por favor sea consciente e infórmese de los riesgos asociados con el trading. El contenido de este sitio web no debe interpretarse como asesoramiento personal. ForosForex recomienda que busque el consejo de un asesor financiero independiente.