¿Cómo codificar? - página 74

 

¿Quieres decir:

if ( ( CloseSell1_1 CloseSell2_2 ) || ( CloseSell3_1 > CloseSell3_2 ) ) Order = SIGNAL_CLOSESELL;

[/PHP]or do you mean:

[PHP]if ( ( CloseSell1_1 CloseSell2_2 || CloseSell3_1 > CloseSell3_2 ) ) Order = SIGNAL_CLOSESELL;

 

Gracias.

Ahora que lo miro, era obvio. Eso hizo el truco. La prueba inicial no es tan buena. Es hora de ajustar.

 
Big Be:
Necesito saber cómo cambiar el Stop para la MITAD de mi orden abierta. Lo que entiendo es que esto significa abrir dos órdenes, por ejemplo de 0,2 lotes y 0,2 lotes.

Mi EA basa el número de lotes en un cálculo de Money Management.

Después de que se cambie el stop de una de las órdenes (basado en que se haya alcanzado un nivel de precio) entonces dejaría que mi código de salida cerrara ambas órdenes, a menos que se alcancen sus stops (ahora diferentes).

La otra orden mantiene su stop original o posiblemente lo mueve hasta el punto de equilibrio.

Si la cantidad inicial de lotes (de la función MM) es impar, en lugar de redondear hacia abajo para un número impar de lotes o décimos lotes, me gustaría dividirlos de forma desigual entre las dos órdenes.

Creo que esto implica Números Mágicos, y un par de líneas de código aquí y allá. Tal vez haya un EA con todo esto que pueda copiar.

Gracias por cualquier ayuda.

Big Be

Hola; me preguntaste explícitamente sobre esto en otro sitio, pero ha habido algunas respuestas, y no sé qué partes de tus problemas pueden quedar. Habrá que hacer una ronda en la que vuelvas a preguntar....

 

Hola Ralph,

ralph.ronnquist:
Hola; me preguntaste explícitamente sobre esto en otro lugar, pero ha habido algunas respuestas, y no sé qué partes de tus problemas pueden quedar. Habrá que hacer una ronda en la que vuelvas a preguntar....

Bueno, ninguna de las respuestas respondía realmente a ninguna de mis preguntas - algunas eran sobre mis respuestas a las preguntas de otros.

Así que todas las partes permanecen. (Ver el post anterior para la cita de la cuestión que publiqué en este hilo).

Gracias,

Big Be

 

Problema con la configuración de la Orden de Límite

Hola chicos y chicas,

Estoy tratando de configurar el código en mi EA para entrar en un comercio en un nivel de precio específico (una orden de límite). Este es el código para la orden de límite:

ticket=OrderSend(Symbol(),OP_BUYLIMIT,lots,Ask+10*Point,3,BuyStopLoss,0, "xx Buy",16384,0,Red);

lotes & BuyStopLoss son valores calculados predeterminados, y funcionan con una función de mercado regular "OP_BUY" cuando lo cambio a eso. Ask+10*Point es sólo un valor arbitrario que se me ocurrió por encima del precio actual, en realidad normalmente uso BuyEntry que también está predeterminado.

El error que obtengo cuando intento ejecutar el código en el Probador de Estrategias es:

"2008.02.24 16:00:08 2004.06.17 15 xxEA EURUSD,M15: OrderSend error 130" (que es un error relacionado con el stoploss)

¿Alguna idea de lo que está causando este error? Creo que debe haber un problema con la forma en que estoy configurando la orden limitada, o no puede ejecutar órdenes limitadas en el probador de estrategias (?) porque parece funcionar bien con una orden de mercado. Gracias por cualquier ayuda.

 

¿Creador de Asesores Expertos?

Lonestar:
Soy relativamente nuevo en Metatrader, aunque no en el comercio, y he creado algunos EAs utilizando Expert Adviser Builder. La mayoría funciona bien, pero tengo problemas cuando utilizo salidas múltiples. Lógicas de cierre (compra) y de cierre (venta) con la función OR. Las múltiples con AND funcionan bien, pero no reconoce las que creo con OR. Abajo está el código de salida.

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

//| Señal de inicio (salida de venta)

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

if (CloseSell1_1 CloseSell2_2 || CloseSell3_1 > CloseSell3_2) Order = SIGNAL_CLOSESELL;

La parte en negrita es la señal que está ignorando. Alguna idea. Esto es lo único que me impide hacer backtesting correctamente. Si alguien puede ayudar y hace backtesting bien, puede tenerlo. Sólo filtrando manualmente las operaciones que deben ser cerradas, parece prometedor.

Gracias.

¿Qué es el Expert Advisor Builder?

 
nondisclosure007:
¿Qué es el Expert Advisor Builder?

Algo como Gordago o esto

 

Variación del tamaño del lote.

Hola,

¿Puedo obtener el código para variar el tamaño del lote para un EA?

Por ejemplo, para la primera orden de venta 0,2, la segunda orden de venta 0,1.

Saludos,

SIDDESH

 
Linuxser:
Algo como Gordago o este

Gracias. Me gusta Gordago para las pruebas de estrategia (sin tener que escribir un código). Tengo que jugar w / las plantillas que utiliza para mis propósitos EA. Me encuentro haciendo algunas ediciones en lo que crea para satisfacer mis propios estilos de codificación. Pero en general, estoy impresionado.

¿Pensé que Gordago era un producto comercial? No veo cuánto cuesta en ninguna parte.

 

ERR_COMMON_ERROR #2 al abrir una operación

Hola a todos,

Después de la maravillosa ayuda del otro día con los problemas de NewBar que estaba teniendo, he aprendido mucho y he progresado enormemente con mi EA de aprendizaje que estoy programando. (Principalmente como un ejercicio de aprendizaje y un sistema muy básico que quiero probar (sin duda no será rentable, pero es un buen ejercicio de aprendizaje!)

He escrito un script, cada nueva barra, cierra todas las operaciones anteriores en el par actual, luego toma el valor ATR de 20 períodos y entra en una parada de compra y una parada de venta para entrar en el mercado cuando se mueve la mitad del camino hacia el valor ATR desde la apertura del mercado. El Take Profit se establece entonces en el valor ATR (mi cálculo es que si se ha movido la mitad del camino, entonces podría ser probable que desde el movimiento promedio del día, continuará alcanzando el Take Profit. Probablemente esté totalmente equivocado aquí, pero quiero programarlo de todos modos para probar los valores - en la cuenta demo en lugar del Probador de Estrategias)

Lo he programado todo y al final he averiguado cómo eliminar los dígitos extra después del decimal usando NormalizeDouble, pero ahora cuando el EA intenta abrir un stop de compra al inicio de la barra tengo ERR_COMMON_ERROR o Error #2.

Esto es REALMENTE inútil. He comprobado los valores que está definiendo para Open, Take Profit y Stop Loss y todos ellos parecen razonables y no puedo averiguar qué más podría ser. Esta ha sido mi frustración durante toda la noche, ya que no hay más información de GetLastError que esta. Por favor, ayuda.

ATR_Value = iATR(NULL,0,ATR_Period,0); //Get current ATR Value from chart

if (ATR_Value < (ATR_Minimum*Point)) //Check current ATR_Value to ensure it is no less than the ATR_Minimum set

{

Print("Too little range for trading. ATR_Minimum ",(ATR_Minimum*Point)," ATR_Value ",ATR_Value);

return(0);

}

double buyopen,nbuyopen,buysl,nbuysl,buytp,nbuytp,sellopen,nsellopen,sellsl,nsellsl,selltp,nselltp;

buyopen=((iOpen(NULL,0,0))+(ATR_Value*Open_Multiplier)+Open_Offset);

nbuyopen=NormalizeDouble(buyopen,Digits);

buysl=((iOpen(NULL,0,0))+(ATR_Value*SL_Multiplier)+SL_Offset);

nbuysl=NormalizeDouble(buysl,Digits);

buytp=((iOpen(NULL,0,0))+(ATR_Value*TP_Multiplier)+TP_Offset);

nbuytp=NormalizeDouble(buytp,Digits);

sellopen=((iOpen(NULL,0,0))-(ATR_Value*Open_Multiplier)-Open_Offset);

nsellopen=NormalizeDouble(sellopen,Digits);

sellsl=((iOpen(NULL,0,0))-(ATR_Value*SL_Multiplier)-SL_Offset);

nsellsl=NormalizeDouble(sellsl,Digits);

selltp=((iOpen(NULL,0,0))-(ATR_Value*TP_Multiplier)-TP_Offset);

nselltp=NormalizeDouble(sellsl,Digits);

Print("Open:",nbuyopen," TP:",nbuytp," SL:",nbuysl);

int ticketbuy;

ticketbuy=OrderSend(Symbol(),OP_BUYSTOP,Lots,nbuyopen,Max_Slippage,nbuysl,nbuytp,"Buy Order",12345,(Bar_Period-Bar_Offset),Green);

if(ticketbuy<0)

{

Print("Buy Order failed with error #",GetLastError());

return(0);

}

int ticketsell;

ticketsell=OrderSend(Symbol(),OP_SELLSTOP,Lots,nsellopen,Max_Slippage,nsellsl,nselltp,"Buy Order",54321,(Bar_Period-Bar_Offset),Red);

if(ticketsell<0)

{

Print("Buy Order failed with error #",GetLastError());

return(0);

}

Muchas gracias por cualquier ayuda, también he adjuntado el mt4 si a alguien no le importa echar un vistazo. También contiene partes de las secuencias de comandos de otras personas que, lo siento no havn acreditado, pero todos han sido publicados en torno a este sitio. (Por supuesto, el crédito si alguna vez la liberación de EA, estoy publicando esto sólo para tratar de resolver este problema, ya que ha sido mi frustración tardes).

Howard

Archivos adjuntos:
atr.mq4  6 kb
Razón de la queja: