MMA_Breakout_strategy_volume I (sin MM ni MF) - codificado por WhooDoo22 - página 3

 
Por qué no arreglas el código que es objeto de este hilo antes de pasar a otra versión... aprenderías mucho si lo hicieras.
 
Simon,


Otro punto.......

RE: Es importante para mí enfatizar que mi método de codificación fue el más rápido que pude parchear todo para confirmar mis pensamientos de la capacidad de negociación y el valor del Volumen I/II. No tengo suficiente tiempo en mi vida para codificar todo "correctamente" la primera vez. Normalmente empiezo los proyectos por fases. Por ejemplo: Fase 1. Cubrir todas las bases funcionales, Fase 2. Limpiar el código, 3. Añadir belleza a la parte visual externa del EA. Actualmente todavía estoy trabajando en la Fase 1. Simplemente hay mucho más en este EA que una típica orden de envío, orden de cierre EA. Mucho tiempo y pensamiento se ha puesto a la prueba. La prueba se pasará a la evolución del volumen I. Estoy seguro de su reconocimiento a su singularidad.

Dicho esto, estoy considerando una opción diferente para "poner en marcha" la primera función OrderSend(). Todavía no estoy seguro de la dirección que voy a tomar. En última instancia, voy a sustituir completamente la condición "if(OrdersHistoryTotal()==0){" por una condición fiable. Usted hizo un punto importante para dar este pensamiento. Te agradezco tu estímulo.

Gracias.

 
RaptorUK:

¿Qué es variable y cómo puede ser un número de ticket cuando se hace esto?

Tengo 4 operaciones en vivo en este momento, sus números de ticket no son secuenciales....

El signo de igualdad, debería hacer que el varilble valga algo, pero ¿qué es? Creo que sé lo que quieres decir, ¿cómo es posible, ++ es una buena pregunta
 
WhooDoo22:
Simón,


Otro punto...

RE: Es importante para mí enfatizar que mi método de codificación fue el más rápido que pude parchear todo para confirmar mis pensamientos sobre la capacidad y el valor comercial del Volumen I/II. No tengo suficiente tiempo en mi vida para codificar todo "correctamente" la primera vez.

Usted debe, por lo menos, hacer que funcione correctamente. . . este código está muy, muy lejos de eso. He dicho debe. . . . eso es incorrecto, usted tiene una opción, puede seguir escribiendo su código y tener GBs de errores cuando se ejecuta el ST y tener el código que no funcionará en vivo o Demo . . si lo desea.
 

Simon,

debes, por lo menos,..

RE: Yo no me preocupo por el tiempo que tardaré en alcanzar un objetivo, simplemente sigo arando hasta que el proyecto está completo. Mi elección sería no tener GBs de errores :) Prefiero escuchar las críticas constructivas de mis compañeros de codificación y responder y corresponder a las soluciones de los problemas de codificación presentados. Estas soluciones podrían producir potencialmente menos errores para el Volumen I/II.

Gracias.

 
WhooDoo22:

Simón,

Al menos debes...

RE: Yo no me preocupo por el tiempo que tardaré en alcanzar un objetivo, simplemente sigo arando hasta que el proyecto esté completo. Mi elección sería no tener GBs de errores :) Prefiero escuchar las críticas constructivas de mis compañeros de codificación y responder y corresponder a las soluciones de los problemas de codificación presentados. Estas soluciones podrían producir potencialmente menos errores para el Volumen I/II.

Gracias.



Lo que RaptorUK dio allí, fue y sigue siendo una crítica constructiva y soluciones recíprocas a sus códigos
 

Simon, voy a utilizar una variable booleana para resolver este problema. Esta condición booleana es una solución común que resolverá este problema hasta que llegue a la fase 2. Entonces podré dar a la señal de envío de primera orden una condición única que refleje mi estilo de codificación. Gracias por su aportación.

 
WhooDoo22:

Simon, voy a utilizar una variable booleana para resolver este problema. Esta condición booleana es una solución común que resolverá este problema hasta que llegue a la fase 2. Entonces podré dar a la señal de envío de primera orden una condición única que refleje mi estilo de codificación. Gracias por su aportación.

No, no lo hará... tu codificación muestra que no entiendes, si no entiendes no puedes arreglarlo.
 

Simon, creo que lo entiendo, ¿qué es lo que crees que no entiendo?

Hasta ahora hemos discutido dos cosas importantes:

1. arreglar los bloques de código sl de emergencia.

2. eliminar la condicion actual, "if (OrdersHistoryTotal()==0{" y sustituir la condicion por otra diferente (mi solucion actual es sustituir la condicion actual por una condicion booleana para comenzar los pedidos.)

//example

if(x==false){OrderSend()...; x=true;}

/* now, x is true and the code block will not execute again. Of course, I would add code to save variables and if connection 
   is lost from the terminal server, all variables are saved. Simple.
   I understand the code is incorrect, but I wrote this for you to understand its concept, not a completely typed up code. */

Esta idea de guardar las variables es una solución común para la desconexión del servidor y fue sugerida por ubzen. Le doy crédito a él por esta idea.

Gracias.

 
WhooDoo22:

Simon, creo que lo entiendo, ¿qué es lo que crees que no entiendo?

La primera línea de su función start() es esta. . .

   OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);

. . . ¿qué número de billete está seleccionando? Bueno, el ticket ha sido declarado sin una variable inicial por lo que será 0, por lo que inmediatamente está tratando de seleccionar el ticket 0, esto generará un error, si se comprueba el valor de retorno de este OrderSend() se vería que, probablemente sería el error 4108 ERR_INVALID_TICKET . . si entendieras como usar OrderSend() correctamente ¿por qué harías esto?


Si entendieras OrderHistoryTotal() no lo habrías usado de la forma en que lo hiciste y no habrías dicho que es . . " buscar el historial comercial de la variable de ticket único,"

Si entendieras cómo funcionan las llaves { } no habrías añadido llaves innecesarias . . no añaden nada, no hacen su código más ordenado o más fácil de leer.

if(OrderType()==OP_BUY)                                                                     
      {
         {
         OrderModify(ticket,0,OrderOpenPrice()-5000*Point,0,0,Blue
         }
      }

puede ser sustituido por . . .

if(OrderType()==OP_BUY)  
   OrderModify(ticket,0,OrderOpenPrice()-5000*Point,0,0,Blue);

El uso de la variable i como número de ticket demuestra que no entiende cómo funcionan los números de ticket fuera del Probador de Estrategias, es decir, en una cuenta Demo o Real . . .


No compruebas si tus funciones comerciales han funcionado o han fallado, en tu código esto es crítico porque utilizas lo siguiente. . .

ticket = OrderSend(Symbol(),OP_BUY,0.05,Ask,30,0,0,"",0,0,Blue);

. . si el OrderSend() fallaticket = -1 entonces más adelante en su código cuando intente usar esta variable para seleccionar y ordenar por el número de ticket -1 obviamente fallará . . .