Por favor, convierta este KK002 EA de nuevo a MQL
Por favor, convierta este KK002 EA de nuevo a MQL

 

Publi

Resultados 1 al 2 de 2

Tema: Por favor, convierta este KK002 EA de nuevo a MQL

  1. #1
    hola, tengo un ActFX convertido (desde un archivo Mql), la conversión se realizó sin errores, pero el código ACtFx no está abriendo ningún pedido y no tengo el archivo MQL... ¿alguien puede ayudar a convertir de nuevo este código Actfx convertido? al código MQL..

    Aquí está EA que se convirtió con éxito, pero no hubo transacciones en absoluto.

    Proporcione el archivo MQL a continuación.
    Aquí está el código para EA KK002:


    utiliza 'LibMQL4.actlib';
    const NombreEstrategia = 'TSD v12.3.mq4';
    const copyright_1 = 'Copyright © 2009,
    http://www.forex-tsd.com';
    const enlace_2 = '
    http://www.forex-tsd.com';
    var MagicNumber: Variante = 10001;
    var Lotes: Real = 1.0;
    var TakeProfit: Variante = 100;
    var TrailingStop: Variante = 60;
    var Deslizamiento: Variante = 5;
    var UseTimeLimit: Booleano = verdadero;
    var UseAutomaticMM: Booleano = verdadero;
    var Riesgo: Real = 1,5;
    var _: String = '¿Permite múltiples operaciones por barra?';
    var OneTradePerBar: Booleano = falso;
    var __: String = 'Configuración para el cierre de posiciones del viernes';
    var CloseOnFriday: Booleano = falso;
    var FridayCloseHour: Variante = 21;
    var FridayCloseMinute: Variante = 59;
    var MinutoInicio1: Real = 0;
    var FinMinuto1: Real = 0;
    var MinutoInicio2: Real = 0;
    var EndMinute2: Real = 0;
    var MinutoInicio3: Real = 0;
    var FinMinuto3: Real = 0;
    var MinutoInicio4: Real = 0;
    var EndMinute4: Real = 0;
    var MinutoInicio5: Real = 0;
    var EndMinute5: Real = 0;
    var MinutoInicio6: Real = 0;
    var EndMinute6: Real = 0;
    var MinutoInicio7: Real = 0;
    var EndMinute7: Real = 0;
    var Precio Abierto: Real = 0;
    var PrecioNuevo: Real = 0;
    var nuevabarra: Real = 0;

    función OnNewCandle : Variante;
    var pipMultiplicador: Real;
    var i: Entero;
    var símbolo encontrado: booleano;
    var dentro del límite de tiempo: booleano;
    var TradesThisSymbol: Variante;
    var OsMAAnterior: Real;
    var OsMAPrevious2: Real;
    var Fuerza: Real;
    var ForcePos: booleano;
    var ForceNeg: booleano;
    var OsMADirección: Real;
    var tp: Real;
    var ts: Real;
    var sl: Real;
    var ticket: Variante;
    comenzar
    si ((Dígitos = 3) o (Dígitos = 5)) entonces
    pipMultiplicador := 10

    más pipMultiplier := 1;
    si (CloseOnFriday) y (TimeDayOfWeek (TimeCurrent ()) = 5) entonces
    comenzar
    if (TimeHour (TimeCurrent ()) gt; FridayCloseHour) o ((TimeHour (TimeCurrent ()) = FridayCloseHour) and (TimeMinute (TimeCurrent ()) gt;= FridayCloseMinute)) entonces
    comenzar
    para i := PedidosTotal () - 1
    hasta 0 empezar
    OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
    if (SímboloPedido () lt;gt; Símbolo ()) entonces
    continuar;

    if (NúmeroMágicoPedido () lt;gt; NúmeroMágico) entonces
    continuar;

    si (TipoPedido () = OP_BUYSTOP) entonces
    comenzar
    OrderDelete (OrderTicket (), CLR_NONE);
    continuar;

    fin;

    si (TipoPedido() = OP_SELLSTOP) entonces
    comenzar
    OrderDelete (OrderTicket (), CLR_NONE);
    continuar;

    fin;

    si (TipoPedido () = OP_BUY) entonces
    comenzar
    OrderClose (OrderTicket (), OrderLots (), Ask, 0, CLR_NONE);
    continuar;

    fin;

    si (TipoPedido () = OP_SELL) entonces
    comenzar
    OrderClose (OrderTicket (), OrderLots (), Bid, 0, CLR_NONE);
    continuar;

    fin;

    fin;
    Resultado := (0);
    Salida;
    fin;

    fin;

    símbolo encontrado := (falso);
    si (checkSymbol ('USDCHF')) entonces
    comenzar
    establecerMinutos (0, 1, 8, 9, 16, 17, 24, 25, 32, 33, 40, 41, 48, 49);
    símbolo encontrado := verdadero;

    fin;

    si (checkSymbol ('GBPUSD')) entonces
    comenzar
    establecerMinutos (2, 3, 10, 11, 18, 19, 26, 27, 34, 35, 42, 43, 50, 51);
    símbolo encontrado := verdadero;

    fin;

    si (símbolo de verificación ('USDJPY')) entonces
    comenzar
    establecerMinutos (4, 5, 12, 13, 20, 21, 28, 29, 36, 37, 44, 45, 52, 53);
    símbolo encontrado := verdadero;

    fin;

    si (símbolo de verificación ('EURUSD')) entonces
    comenzar
    establecerMinutos (6, 7, 14, 15, 22, 23, 30, 31, 38, 39, 46, 47, 54, 59);
    símbolo encontrado := verdadero;

    fin;

    si (no símbolo encontrado) entonces
    comenzar
    Resultado := (0);
    Salida;
    fin;

    si UseTimeLimit entonces
    withinTimeLimit := (((Minute () gt;= StartMinute1) and (Minute () lt;= EndMinute1)) or ((Minute () gt;= StartMinute2) and (Minute () lt;= EndMinute2)) o (( Minuto () gt;= Minuto de inicio3) y (Minuto () lt;= Minuto de finalización3)) o ((Minuto () gt;= Minuto de inicio4) y (Minuto () lt;= Minuto de finalización4)) o ((Minuto () gt;= StartMinute5) y (Minute () lt;= EndMinute5)) o ((Minute () gt;= StartMinute6) y (Minute () lt;= EndMinute6)) o ((Minute () gt;= StartMinute7) y (Minuto ( ) lt;= MinutoFinal7)))

    más dentro deTimeLimit := true;
    si (no dentro del límite de tiempo) entonces
    comenzar
    Resultado := (0);
    Salida;
    fin;

    CambiaEsteSímbolo := (0);
    comenzar
    para i := PedidosTotal () - 1
    hasta 0 empezar
    OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
    if (NúmeroMágicoPedido () lt;gt; NúmeroMágico) entonces
    continuar;

    if (SímboloPedido () lt;gt; Símbolo ()) entonces
    continuar;

    Inc (TradesThisSymbol);

    fin;

    fin;
    OsMAPrevious := (iOsMA (NULL, PERIOD_W1, 12, 26, 9, PRICE_CLOSE, 1));
    OsMAPrevious2 := (iOsMA (NULL, PERIOD_W1, 12, 26, 9, PRICE_CLOSE, 2));
    Forzar := (iForce (NULL, PERIOD_D1, 2, MODE_EMA, PRICE_CLOSE, 1));
    ForcePos := (Forzar gt; 0);
    ForceNeg := (Forzar lt; 0);
    si OsMAAnterior gt; OsMAPrevious2 luego
    DirecciónOsMA := (1);

    si OsMAAnterior lt; OsMAPrevious2 luego
    DirecciónOsMA := - 1;

    si (OsMAPrevious = OsMAPrevious2) entonces
    DirecciónOsMA := 0;

    if (not IsTesting ()) o ((IsTesting ()) y (IsVisualMode ())) entonces
    Comentario ('TSD para MT4 ver beta 0.3 - NO USAR CON DINERO REAL TODAVÍA', '', '', 'Weekly OsMAPrevious = ', OsMAPrevious, '', 'Weekly OsMAPrevious2 = ', OsMAPrevious2, '', 'Weekly OsMADirection = ', OsMADirection, '', '', 'Fuerza diaria = ', Fuerza, '', 'Es fuerza diaria alcista = ', ForcePos, '', 'Es fuerza diaria bajista = ', ForceNeg, '', '' , 'Total de pedidos = ', OrdersTotal (), '', 'Comercia este símbolo (', Símbolo (), ') = ', TradesThisSymbol, '', '', 'La hora de la nueva barra es ', MQLTimeToStr (nueva barra), '', '', 'Máxima diaria[1] = ', Máxima (1), '', 'Máxima diaria[2] = ', Máxima (2), '', 'Mínima diaria[1] = ', Mínima (1), '', 'Mínimo diario[2] = ', Mínimo (2), '', '', 'Precio de venta actual 16 pips = ', (Ask (16 * Point * pipMultiplier)), ' ', 'Precio de oferta actual - 16 pips = ', Oferta - (16 * Punto * pipMultiplier));

    tp := (NormalizeDouble ((TakeProfit * Point * pipMultiplier), Digits));
    ts := (NormalizeDouble ((TrailingStop * Point * pipMultiplier), Digits));
    if (nueva barra lt; gt; iTime (NULL, 0, 0)) entonces
    comenzar
    nuevabarra := iTime (NULL, 0, 0);
    if (TradesThisSymbol lt; 1) y (canOpenTrade (Period ())) entonces
    comenzar
    Frecuencias de actualización ();
    si (OsMADirection = 1) y (ForceNeg) entonces
    comenzar
    sl := (Bajo (1) - 1.0 * Punto * pipMultiplier);
    PriceOpen := Alto (1) 1.0 * Punto * pipMultiplier;
    si precio abierto gt; (Preguntar 16.0 * Punto * pipMultiplier) luego
    comenzar
    OrderSend (Símbolo (), OP_BUYSTOP, (PriceOpen - sl), PriceOpen, Slippage, sl, PriceOpen tp, 'Orden de entrada de compra colocada en ' TimeCurrent (), MagicNumber, 0, Green);
    Resultado := (0);
    Salida;
    fin

    más empezar
    NewPrice := Ask 16.0 * Point * pipMultiplier;
    OrderSend (Símbolo (), OP_BUYSTOP, (NewPrice - sl), NewPrice, Slippage, sl, NewPrice tp, 'Orden de entrada de compra colocada en ' TimeCurrent (), MagicNumber, 0, Green);
    Resultado := (0);
    Salida;
    fin;

    fin;

    si (OsMADirection = - 1) y (ForcePos) entonces
    comenzar
    sl := Alto (1) 1.0 * Punto * pipMultiplier;
    PriceOpen := Bajo (1) - 1.0 * Punto * pipMultiplier;
    si PrecioAbrir lt; (Oferta - 16.0 * Punto * pipMultiplier) luego
    comenzar
    OrderSend (Símbolo (), OP_SELLSTOP, (sl - PriceOpen), PriceOpen, Slippage, sl, PriceOpen - tp, 'Vender orden de entrada colocada en ' TimeCurrent (), MagicNumber, 0, Green);
    Resultado := (0);
    Salida;
    fin

    más empezar
    NuevoPrecio := Oferta - 16 * Punto * pipMultiplier;
    ticket := (OrderSend (Symbol (), OP_SELLSTOP, (sl - NewPrice), NewPrice, Slippage, sl, NewPrice - tp, 'Vender pedido de entrada colocado en ' TimeCurrent (), MagicNumber, 0, Green));
    Resultado := (0);
    Salida;
    fin;

    fin;

    fin;

    si intercambia este símbolo gt; 0 entonces
    comenzar
    comenzar
    para i := PedidosTotal () - 1
    hasta 0 empezar
    OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
    if (SímboloPedido () lt;gt; Símbolo ()) entonces
    continuar;

    if (NúmeroMágicoPedido () lt;gt; NúmeroMágico) entonces
    continuar;

    Frecuencias de actualización ();
    si (TipoPedido () = OP_BUYSTOP) entonces
    comenzar
    si (OsMADirection = - 1) entonces
    comenzar
    OrderDelete (OrderTicket ());
    Resultado := (0);
    Salida;
    fin;

    si ((Alto (1) lt; Alto (2))) entonces
    if (High (1) gt; (Ask 16.0 * Point * pipMultiplier)) entonces
    comenzar
    OrderModify (OrderTicket (), (Alto (1) 1.0 * Punto * pipMultiplier), Bajo (1) - 1.0 * Punto * pipMultiplier, OrderTakeProfit (), 0, Cian);
    Resultado := (0);
    Salida;
    fin

    más empezar
    OrderModify (OrderTicket (), (Ask 16.0 * Point * pipMultiplier), Low (1) - 1.0 * Point * pipMultiplier, OrderTakeProfit (), 0, Cyan);
    Resultado := (0);
    Salida;
    fin;

    fin;

    si (TipoPedido() = OP_SELLSTOP) entonces
    comenzar
    si (OsMADirection = 1) entonces
    comenzar
    OrderDelete (OrderTicket ());
    Resultado := (0);
    Salida;
    fin;

    si ((Bajo (1) gt; Bajo (2))) entonces
    if (Low (1) lt; (Bid - 16.0 * Point * pipMultiplier)) entonces
    comenzar
    OrderModify (OrderTicket (), (Bajo (1) - 1.0 * Punto * pipMultiplier), Alto (1) 1.0 * Punto * pipMultiplier, OrderTakeProfit (), 0, Cian);
    Resultado := (0);
    Salida;
    fin

    más empezar
    OrderModify (OrderTicket (), (Bid - 16.0 * Point * pipMultiplier), High (1) 1.0 * Point * pipMultiplier, OrderTakeProfit (), 0, Cyan);
    Resultado := (0);
    Salida;
    fin;

    fin;

    fin;

    fin;

    fin;

    fin;

    si intercambia este símbolo gt; 0 entonces
    comenzar
    comenzar
    para i := PedidosTotal () - 1
    hasta 0 empezar
    si (OrderSelect (i, SELECT_BY_POS, MODE_TRADES) = falso) entonces
    romper;

    if (SímboloPedido () lt;gt; Símbolo ()) entonces
    continuar;

    if (NúmeroMágicoPedido () lt;gt; NúmeroMágico) entonces
    continuar;

    Frecuencias de actualización ();
    si (TipoPedido () = OP_BUY) entonces
    comenzar
    si Pregunta - OrderOpenPrice () gt; (t) entonces
    comenzar
    si OrderStopLoss () lt; (Preguntar - ts) entonces
    comenzar
    OrderModify (OrderTicket (), OrderOpenPrice (), (Ask - ts), Ask tp, 0, Cyan);
    Resultado := (0);
    Salida;
    fin;

    fin;

    fin;

    si (TipoPedido () = OP_SELL) entonces
    comenzar
    si OrderOpenPrice () - Oferta gt; (t) entonces
    comenzar
    si OrderStopLoss () gt; (Oferta ts) entonces
    comenzar
    OrderModify (OrderTicket (), OrderOpenPrice (), (Bid ts), Bid - tp, 0, Cyan);
    Resultado := (0);
    Salida;
    fin;

    fin;

    fin;

    fin;

    fin;

    fin;

    Resultado := (0);
    Salida;
    fin;

    función getLots (rango: Real) : Real;
    var paso: Real;
    var minLote: Real;
    var maxLot: Real;
    var lotes: Real;
    comenzar
    Frecuencias de actualización ();
    paso := (MarketInfo (Símbolo (), MODE_LOTSTEP));
    minLot := (MarketInfo (Símbolo (), MODE_MINLOT));
    maxLot := (MarketInfo (Símbolo (), MODE_MAXLOT));
    muchos := (Muchos);
    si UseAutomaticMM entonces
    si Riesgo gt; 0 entonces
    lotes := AccountFreeMargin () * (Riesgo100.0)(rango * MarketInfo (Símbolo (), MODE_TICKVALUE)Punto);

    Resultado := (MathMax (MathMin (lots, maxLot), minLot));
    Salida;
    fin;

    función canOpenTrade (timeFrame : Variant) : Boolean;
    var periodCount: Variante;
    var tiempo de inicio: entero;
    var hora de finalización: entero;
    var i: Entero;
    comenzar
    cuentaperiodo := (0);
    startTime := (iTime (Símbolo (), timeFrame, iBarShift (Símbolo (), timeFrame, iTime (NULL, 0, 0))));
    hora de finalización: = (hora de inicio marco de tiempo * 60 - 1);
    si (no OneTradePerBar) entonces
    para i := OrdersHistoryTotal () - 1
    hasta 0 empezar
    si (OrderSelect (i, SELECT_BY_POS, MODE_HISTORY) = falso) entonces
    romper;

    if (NúmeroMágicoPedido () lt;gt; NúmeroMágico) entonces
    continuar;

    if (SímboloPedido () lt;gt; Símbolo ()) entonces
    continuar;

    if (OrderOpenTime () lt; startTime) o (OrderOpenTime () gt; endTime) entonces
    continuar;

    Inc (recuento de periodos);

    fin;

    Resultado := (periodCount = 0);
    Salida;
    fin;

    función checkSymbol (compareToWhat : String) : Boolean;
    comenzar
    Resultado := (StringFind (Símbolo (), compareToWhat) gt; - 1);
    Salida;
    fin;

    procedimiento setMinutes (sminuto1 : Variante; eminuto1 : Variante; sminuto2 : Variante; eminuto2 : Variante; sminuto3 : Variante; eminuto3 : Variante; sminuto4 : Variante; eminuto4 : Variante; sminuto5 : Variante; eminuto5 : Variante; sminuto6 : Variante; eminuto6 : Variante ; sminute7 : Variante; eminute7 : Variante);
    var Resultado: Variante;
    comenzar
    MinutoInicio1 := sminuto1;
    EndMinute1 := eminuto1;
    MinutoInicio2 := sminuto2;
    EndMinute2 := eminuto2;
    MinutoInicio3 := sminuto3;
    EndMinute3 := eminuto3;
    MinutoInicio4 := sminuto4;
    EndMinute4 := eminuto4;
    MinutoInicio5 := sminuto5;
    EndMinute5 := eminuto5;
    MinutoInicio6 := sminuto6;
    EndMinute6 := eminute6;
    MinutoInicio7 := sminuto7;
    EndMinute7 := eminute7;

    fin;

    procedimiento OnCreate;
    comenzar
    Configuración.AddAccount(@Cuenta, 'Cuenta', '30');
    Settings.AddCandleHistory(@Historial, 'Historial de velas', 'EURUSD', CI_15_Minutes, 100);
    History.OnNewCandleEvent := @OnNewCandle;
    Configuración.AddInteger(@MagicNumber, 'MagicNumber', MagicNumber);
    Settings.AddFloat(@Lots, 'Lots', Lots);
    Configuración.AddInteger(@TakeProfit, 'TakeProfit', TakeProfit);
    Configuración.AddInteger(@TrailingStop, 'TrailingStop', TrailingStop);
    Configuración.AddInteger(@Slippage, 'Deslizamiento', Deslizamiento);
    Configuración.AddCheckbox(@UseTimeLimit, 'UseTimeLimit', UseTimeLimit);
    Configuración.AddCheckbox(@UseAutomaticMM, 'UseAutomaticMM', UseAutomaticMM);
    Configuración.AddFloat(@Risk, 'Riesgo', Riesgo);
    Configuración.AddString(@_, '_', _);
    Configuración.AddCheckbox(@OneTradePerBar, 'OneTradePerBar', OneTradePerBar);
    Configuración.AddString(@__, '__', __);
    Settings.AddCheckbox(@CloseOnFriday, 'CloseOnFriday', CloseOnFriday);
    Settings.AddInteger(@FridayCloseHour, 'FridayCloseHour', FridayCloseHour);
    Settings.AddInteger(@FridayCloseMinute, 'FridayCloseMinute', FridayCloseMinute);

    fin;

  2.                         
    Publicidad
  3. #2
    1 Adjunto(s) Su publicación está en el foro equivocado... De todos modos, tal vez este sea el archivo que está buscando. No sé nada al respecto, pero un minuto en google me trae a este archivo:
    https://www.forosforex.com/attachmen...391947640393.3

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.