Friday 10 November 2017

Ordermodify Error 1 Mt4 Forex


si (OrderType () OPBUY ampamp la subasta gt TakeProfitLong1) si (OrderType () OPBUY ampamp la subasta gt TakeProfitLong1 ampamp OrderTakeProfit () TakeProfitLong1) Hola, me escribió un EA basado en el indicador QQE y SAR parabólico, tengo el problema de que me dieron las ordenes se modifica de error 1, realmente no puedo entender por qué. Imprimí todo el valor necesario en la revista, pero esto no ayuda. El EA parece rastrear la pérdida de stop correctamente con SAR cuando se cumplen las condiciones (aquí miro a los resultados). nótese bien Yo uso en el EA La entrada de señal (QQE), no está sincronizado con la dirección de la tendencia de Parabolics. Mi deseo es colocar un primer StopLoss adjunto a la orden de entrada, entonces si si el parabólico es trendind en la misma dirección de la última orden y si el sar parabólico es más corto que el stoploss A continuación modifique orden stoploss con parabólico. Si Parabólica inversa antes de mi señal de salida, me gustaría que el stoploss permanece constante. Podría usted mirar esto. Gracias por ayudar doble RsiMaCurrent, TrLevelSlowCurrent, RsiMaPrevious, TrLevelSlowPrevious, StopParabolic RsiMaCurrentiCustom (NULL, 0, quotQQEquot, SF, 0,1) TrLevelSlowCurrentiCustom (NULL, 0, quotQQEquot, SF, 1,1) RsiMaPreviousiCustom (NULL, 0, quotQQEquot, SF , 0,2) TrLevelSlowPreviousiCustom (NULL, 0, quotQQEquot, SF, 1,2) StopParabolic iCustom (NULL, 0, quotParabolic Subquot, StepPararabolic, MaxParabolic, 0,0) para (cnt0cntlttotalcnt) OrderSelect (cnt, SELECTBYPOS, MODETRADES) si (OrderType () OPBUY) // se abre la posición larga // se debe cerrar si ((RsiMaCurrent lt TrLevelSlowCurrent) ampamp (RsiMaPrevious gt TrLevelSlowPrevious)) Imprimir (quotCLOSE señal actual 1. quot, RsiMaCurrent, señal quot 2. quot, TrLevelSlowCurrent, quot Anterior señal 1. quot, RsiMaPrevious, quot señal 2. quot, TrLevelSlowPrevious) OrderClose (OrderTicket (), OrderLots (0) // exit // Parada Parabólica, Si Precio gt StopParabolic, La señal podría ser más erecta que una señal parabólica, // Ya se ha establecido StopLoss lt StopParabolic entonces modificar orden, el StopLoss nunca puede ir en la dirección equivocada si ((Bid gt StopParabolic) ampamp (OrderStopLoss () lt StopParabolic)) OrderModify (OrderTicket (), OrderOpenPrice (), StopParabolic, OrderTakeProfit (), 0, verde) Imprimir (quot ( LONG) modificar STOP para Valeur parabólico quot, StopParabolic, quot quot de la subasta, la subasta) de retorno (0) else // ir a la posición corta // caso de que se cierra si ((RsiMaCurrent TrLevelSlowCurrent GT) ampamp (RsiMaPrevious lt TrLevelSlowPrevious)) Imprimir ( quotCLOSE señal actual 1. quot, RsiMaCurrent, señal quot 2. quot, TrLevelSlowCurrent, quot Anterior señal 1. quot, RsiMaPrevious, quot señal 2. quot, TrLevelSlowPrevious) OrderClose (OrderTicket (), () OrderLots, Ask, 3, Violeta) // Se cierra posición de retorno (0) // // salida parabólico mismo que parte larga si ((Pregunta lt StopParabolic) ampamp (OrderStopLoss () gt StopParabolic)) OrderModify (OrderTicket (), OrderOpenPrice (), StopParabolic, OrderTakeProfit (), 0, Green) Imprimir (quot (SHORT) MODIFY STOP a Valeur Parabolic quot, StopParabolic, quot Preguntar, Ask) return (0) solo necesita cambiar al menos un dato de orden. Pero debe ser un valor aceptable. Mejor apuesta es OrderSelect () ticket u desea modificar. Entonces u puede utilizar ya en valores de orden que no quieren cambiar: por ejemplo, OrderModify (ticket, OrderOpenPrice (), aNewSLprice, OrderTakeProfit (), OrderExpiration ()) estos thots debajo de ayuda también stoploss debe ser la distancia mínima de precio actual. MarketInfo (symbolName, MODESTOPLEVEL) proporciona una distancia mínima del precio actual. Btw, BarrowBoy decir en otro lugar y se trata de corredores que utilizan sub-pip precios. Mi corredor es uno de ellos. Si utilizo la llamada de MarketInfo () para GBPUSD i imprimir para registrar esto: MarketInfo GBPUSD, H1: MODESPREAD30 vea 30 que es realmente 3 y cero es décimos pip así que esto significa que debe quottimes 10quot valores puestos en llamadas de ops de comercio. Por ejemplo, 1.12345 imprime como 1.1234 a menos que use DoubleToStr (un doble identificador, dígitos) - o incluso simplemente poner en el valor de dígito de 8, el ancho máximo. Mi corredor da dígitos como 5 y punto como 0.00001 para nonJPY y 3.0.001 para pares de JPY. Ideas. Tal vez ayuda :) u tal vez usar la declaración Print () y ver lo que u envío en llamadas ops de comercio, puede averiguar mejor por qué el sistema no como llamadas de op de comercio A veces mi pérdida de parada se actualiza, a veces no. 50 pips de distancia del precio actual debe ser más que suficiente. U decir que sus valores son correctos. Así, el sistema de 4 seguro no es feliz - así. Parece que los valores pueden parecer correctos para u, pero no para el sistema. Sugerir u mostrar código, esta charla hablar inglés no es código - no es preciso, el código es preciso y es truefalse y sin importar wat u o i u otros dicen, el código es sólo cosa real que habla. Este no problema que debe consumir mucho tiempo - por favor muestre código - todo el código. Así que finalmente podemos decir que está bien. No sabemos o - aquí es, u debe hacer este tipo de cosas para detener la emisión. U decir que sus valores son correctos. Así, el sistema de 4 seguro no es feliz - así. Parece que los valores pueden parecer correctos para u, pero no para el sistema. Sugerir u mostrar código, esta charla hablar inglés no es código - no es preciso, el código es preciso y es truefalse y sin importar wat u o i u otros dicen, el código es sólo cosa real que habla. Este no problema que debe consumir mucho tiempo - por favor muestre código - todo el código. Así que finalmente podemos decir que está bien. No sabemos o - aquí es, u debe hacer este tipo de cosas para detener la emisión. Si alguien sigue buscando en este post tengo el mismo código de error 0 al ejecutar mi EA en GBPUSD en un corredor ECN. Aquí está mi código para que tal vez usted puede encontrar lo que está mal con él: for (i1 iltOrdersTotal () i) // Ciclo de búsqueda en los pedidos si (OrderSelect (i-1, SELECTBYPOS) true) // Si el siguiente está disponible int TipoOrderType () // Tipo de pedido if (OrderSymbol () SymbTipogt1) continue // El orden no es quotoursquot SLOrderStopLoss () // SL del orden seleccionado // ---------------- -------------------------------------------------- ---- 3 - while (true) // Ciclo de modificación // doble TSTrailStop // Valor inicial doble TSNormalizeDouble (TrailStopStopMultd, Dígitos) // Prefiero usar valores Normalize int MinDistMarketInfo (Symb, MODESTOPLEVEL) // Min. Distancia si (TS lt MinDist) // Si es menos que permitido TSMinDist // Nuevo valor de TS // ---------------------------- --------------------------------------- 4 - bool Modifyfalse // No se puede modificar (Tipo) // Por el tipo de orden caso 0. // Orden Comprar si (NormalizeDouble (SL, Dígitos) lt NormalizeDouble (Bid-TSPoint, Dígitos)) // Si es inferior a lo que queremos SLBid-TSPoint // entonces modifique It cadena Textquot Comprar quot // Text for Buy Modifytrue // Para ser modificado break // Salir switch case 1. // Orden Sell if (NormalizeDouble (SL, Dígitos) gt NormalizeDouble (AskTSPoint, Dígitos) // Si es mayor que Quiere decir NormalizeDouble (SL, Dígitos) 0) // o igual a cero SLAskTSPoint // luego lo modifica Textquot Vende quot // Texto para Vender Modifytrue // Para ser modificado // Final del cambio if (Modifyfalse) // Si es No modificado break // Salir mientras // ----------------------------------------- -------------------------- 5 - TP OrderTakeProfit () // TP del orden seleccionado doble Precio OrderOpenPrice () // Precio del Orden seleccionado int TicketOrderTicket () // Boleto de la orden seleccionada Alert (quotModification toquot, Text, quotquot, Ticket, quot - En espera de respuesta..quot) bool AnsOrderModify (Ticket, Precio, SL, TP, 0) // Modificar I Creo que esta línea es donde está el problema: double TSNormalizeDouble (TrailStopStopMultd, Dígitos) // He cambiado el código original que encontré en el foro con valores Normalize El valor de StopMultd es 10 porque uso un corredor ECN. Mi valor de TrailStop es por ejemplo 15 pips, pero para traducirlo a un broker de 5 dígitos tengo que multiplicarlo por 10 y luego usar dígitos para cubrirlo a un broker de 5 dígitos. Cualquier sugerencia hereI estoy recibiendo error 1 un buen porcentaje del tiempo al modificar la pérdida de parada en los pedidos existentes. Al mirar el openprice, el stoploss actual y el stoploss propuesto parece ok. Por ejemplo, en un comercio corto EURUSDm (después de comprobar los conditones son válidos) uso ASK 0.0025 para el nuevo stoploss por lo que la distancia del precio de la oferta sería suficiente en la mayoría de los casos. Mi pregunta son 1. Mi pantalla de EA dice que está bien, pero falla - podría ser debido a la redondeo de la 5 ª decomal lugar. En otras palabras, es el quinto lugar decimal significativo cuando se establece el stoploss. Requiriendo normalizar doble todo el tiempo Si así es MT4 debe ser cambiado para hacer esto automáticamente 2. He comprobado la propagación con Error 1 y su ok en cerca de 185, pero los niveles de parada y congelación son los dos 05. Supongamos que esto es 0.00005, pero ¿cómo Yo uso estas cifras. Sé que pueden evitar una modificación de comercio, pero ¿cómo puedo determinar si el comercio será aceptado o rechazado - ¿cómo exactamente se utilizan estos niveles ¿Ha observado qué error 1 significa quotOrderModify intenta reemplazar los valores ya establecidos con los mismos valores . Uno o más valores deben ser cambiados, entonces el intento de modificación puede repetirse. SxTed código da una buena lista de cosas para comprobar para evitar Error1. No podemos decir cuál es incorrecto con su código porque no podemos verlo.

No comments:

Post a Comment