Necesito una mano codificando un EA de cross de MA - Página 2
Necesito una mano codificando un EA de cross de MA

 

Publi

Página 2 de 352 PrimerPrimer 12
Resultados 11 al 15 de 15

Tema: Necesito una mano codificando un EA de cross de MA

  1. #11
    Lo que ve la EA es un conjunto de números. ¿Cómo se traduce un patrón visual a un conjunto de números?

  2.                         
    Publicidad
  3. #12

    Cita Iniciado por ;
    1) Casi nunca tienen el mismo valor. Para detectar una cruz, busque la barra anterior para tener el valor rápido por encima del valor lento, y la barra actual el valor rápido por debajo del valor lento (para entradas cortas). 2) Hay ejemplos existentes por ahí. Usalos, usalos a ellos.
    Hola RR gracias por la información. Mi idea original era encontrar el momento exacto en que PRICE cruza un SMA. Estoy usando el 1SMA como proxy porque no sé cómo definir el precio actual en una barra. Si no te importa responderme. ¿Por qué vemos (visualmente) la cruz en la pantalla pero el EA no la ve? ¿Hay un rango de precios que pueda definir que emule más o menos lo que veo en tiempo real? Gracias

  4. #13
    1) Casi nunca tienen el mismo valor. Para detectar una cruz, busque la barra anterior para tener el valor rápido por encima del valor lento, y la barra actual el valor rápido por debajo del valor lento (para entradas cortas). 2) Hay ejemplos existentes por ahí. Usalos, usalos a ellos.

  5. #14
    Estoy intentando algo aún más simple pero todavía no tengo éxito. El objetivo es hacer que el EA compre cuando el 1SMA y el 15SMA tienen el mismo valor (cruz) pero todavía no lo está haciendo. Cualquier ayuda sería realmente apreciada./Declaración doble _Moving_Avarage; doble _Moving_Avarage_2; bool _Compare; bool _buy; int start () {//Level 1 _Moving_Avarage = iMA (Symbol (), 0,15,0,0,0,0); _Moving_Avarage_2 = iMA (Symbol (), 0,1,0,0,0,0); _Compare = 0 == 0;/Nivel 2 si (_Compare! __ isExist (0)) _ buy = OrderSend (Symbol (), 0,0.1, MarketInfo (Symbol (), MODE_ASK), 100,200,0 ,, __ STRATEGY_MAGIC 0) gt; = 0; retorno (0); }/Servicios bool __selectOrderByMagic (int __magic) {for (int __i = 0; __ ilt; OrdersTotal (); __ i ) {if (OrderSelect (__ i, SELECT_BY_PY.PP. ;} return (false);} bool __isExist (int __magic) {return (__ selectOrderByMagic (__ magic));}

  6. #15
    Estoy tratando de aprender a codificar asesores expertos para comenzar con algo simple.

    La idea es que el EA abra una posición larga cuando el precio cruce un MA desde abajo.

    Entonces, cuando el precio vuelva a bajar y cruce el MA desde arriba, la posición larga se cerrará y se abrirá un corto.

    La idea parece simple y el código de abajo parece correcto, pero no pasa nada.

    ¿Podría alguien señalarme dónde está mi error?




    Lotes dobles externos = 0.01;
    extern int Slippage = 7;
    cadena externa comment = MA_Template;
    extern int MagicNumber = 0;
    ///////////////////////////////////////
    int ThisBarTrade = 0;
    posición int = 0;

    int init () {
    CalcPosition ();
    }

    int start () {
    doble MA;


    bool cerrado = falso;
    if (ThisBarTrade! = Bars) {
    MA = iMA (NULL, 0,5,0,0,0,0);

    //Condición de compra
    if (MA gt; = Posición de la oferta lt; = 0) {
    CalcPosition ();
    si (Posición lt; 0) {
    if (CloseSingleSell () == false) return (0);/fracaso pero puede intentarlo de nuevo
    }
    if (OpenSingleBuy () == false) return (0);/falta de compra pero puede intentarlo de nuevo
    ThisBarTrade = Bars;
    }
    //Condición de venta
    if (MA lt; = Ask Position gt; = 0) {
    CalcPosition ();
    si (Posición gt; 0) {
    if (CloseSingleBuy () == false) return (0);/fracaso pero puede intentarlo de nuevo
    }
    if (OpenSingleSell () == false) return (0);/no vender pero puede intentarlo de nuevo
    ThisBarTrade = Bars;
    }
    }
    }
    // ----------------------------------------------- -------------------

    void CalcPosition () {
    Posición = 0;
    para (int i = 0; i lt; OrdersTotal (); i ) {
    OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
    if (OrderSymbol () == Symbol ()) {
    if (OrderType () == OP_BUY) Posición = 1;
    if (OrderType () == OP_SELL) Posición - = 1;
    }
    }
    }

    bool CloseSingleBuy () {
    bool cerrado;
    para (int i = 0; i lt; OrdersTotal (); i ) {
    OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
    if (Symbol () == OrderSymbol () MagicNumber == OrderMagicNumber ()) {
    if (OrderType () == OP_BUY) {
    while (! IsTradeAllowed ()) Sleep (MathRand ()10);
    RefreshRates ();
    closed = OrderClose (OrderTicket (), OrderLots (), Bid, Slippage, White);
    Imprimir (Intentando cerrar la orden de compra # i Bid);
    si (cerrado == -1) {
    falso retorno);
    } else {
    retorno (verdadero);
    }
    }
    }
    }
    falso retorno);
    }

    bool CloseSingleSell () {
    bool cerrado;
    para (int i = 0; i lt; OrdersTotal (); i ) {
    OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
    if (Symbol () == OrderSymbol () MagicNumber == OrderMagicNumber ()) {
    if (OrderType () == OP_SELL) {
    while (! IsTradeAllowed ()) Sleep (MathRand ()10);
    RefreshRates ();
    closed = OrderClose (OrderTicket (), OrderLots (), Ask, Slippage, White);
    Imprimir (Intentando cerrar la orden de venta # i Ask);
    si (cerrado == -1) {
    falso retorno);
    } else {
    retorno (verdadero);
    }
    }
    }
    }
    falso retorno);
    }

    bool OpenSingleBuy () {
    if (Position! = 0) return (false);
    boleto int = -1;
    while (! IsTradeAllowed ()) Sleep (MathRand ()10);
    RefreshRates ();
    ticket = OrderSend (Symbol (), OP_BUY, Lots, Ask, Slippage, 0.0, 0.0, comment buy, MagicNumber, 0, Lime);
    if (ticket lt; 0) {
    Imprimir (Error al abrir OpenSingleBuy, error #, GetLastError ());
    falso retorno);
    } else {
    Imprimir (orden colocada con éxito con OpenSingleBuy);
    retorno (verdadero);
    }
    falso retorno);
    }

    bool OpenSingleSell () {
    if (Position! = 0) return (false);
    boleto int = -1;
    while (! IsTradeAllowed ()) Sleep (MathRand ()10);
    RefreshRates ();
    ticket = OrderSend (Symbol (), OP_SELL, Lots, Bid, Slippage, 0.0, 0.0, comment sell, MagicNumber, 0, Lime);
    if (ticket lt; 0) {
    Imprimir (Error en OpenSingleSell, error #, GetLastError ());
    falso retorno);
    } else {
    Imprimir (orden colocada con éxito con OpenSingleSell);
    retorno (verdadero);
    }
    falso retorno);
    }

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.