[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 266

 
hoz:

En el parámetro de la propia función vemos:

fi_Ticket = 0

Por lo general, estas funciones se llaman después de que se hayan seleccionado los pedidos, lo que significa que tendrán un ticket. ¿Por qué entonces asignar el valor por defecto a cero?

Si llamamos a la función sin este parámetro, no se ejecutará ni un solo if, y la función comenzará con la cadena

RefreshRates();

El siguiente paso es aún más interesante:

if (fs_Symbol != bs_Symbol || fi_Ticket < 0)
{
   if (fi_Ticket > 0)
   {
      bs_Symbol = OrderSymbol();
   }
   else
   {
     bs_Symbol = fs_Symbol;
                  }
                  if (bs_Symbol == Symbol())
                  {
                      bi_SymDigits = Digits;
                      bd_SymPoint = Point;
                  }

La variable fs_Symbol se compara inmediatamente con bs_Symbol.

Elbs_Symbol de arriba no ha sido inicializado, donde se llama a lafunciónfGet_MarketInfo()misma. ¿Y para qué sirve este bs_Symbol? Si la biblioteca compila sin errores,

Si la biblioteca compila sin errores, entonces la variable bs_Symbol debe ser declarada en algún lugar a nivel global. Allí (o en alguna otra función) se debe buscar su inicialización...

También en la condición:
if (fs_Symbol != bs_Symbol || fi_Ticket < 0)

Sifi_Ticket < 0, lo siguiente que hay que hacer...

if (fi_Ticket > 0)
{
   bs_Symbol = OrderSymbol();
}

y esto ya contradice la condición. Al principio del código debe cumplirse la condiciónfi_Ticket < 0, y luego dentro de esta condición el ticket > 0. ¿Dónde está la lógica?

Nota: la condiciónfi_Ticket < 0 O fs_Symbol != bs_Symbol debe mantenerse para que el código funcione, lo que significa que si hay más if (fi_Ticket > 0) al final del código, sólo está implícita esa condición de entrada alternativa.
 

Hola a todos, ¿podéis ayudarme? No consigo encontrarle el sentido a esto))

 
kera8383:

Hola a todos, ¿podéis ayudarme? No consigo encontrarle el sentido a esto))

Comience con las preguntas frecuentes.
 
tara:

Probablemente esté utilizando valores de StopLoss y TakeProfit inaceptablemente pequeños, pero eso es sólo una suposición. No hay suficiente información.


No, mis paradas son grandes, tengo los valores de abajo.

         SL=Ask + StopLoss*Point;     // значение StopLoss = 375
         TP=Ask - TakeProfit*Point;   // значение TakeProfit = 550
 
paladin80:

No normalizar los topes dentro de OrderSend. Hazlo antes de RefreshRates y luego sustitúyelo. Imprima estos valores para asegurarse de que son correctos. Por cierto, aprenda a abrir una posición sin un stop, ya que hay empresas de corretaje que no aceptan órdenes con stops. Después de fijar uno, modificar los topes - pasará.

Deslizamiento muy pequeño = 2. El ejemplo da 3 y eso es en la cotización de 4 dígitos. Si se configura un EA de este tipo en una cotización de 5 dígitos, el deslizamiento será de 0,2 puntos. Seguro que habrá errores.

Gracias por los sabios consejos, los he tenido en cuenta. He corregido el error. La razón es simple: la empresa de corretaje Alpari y el tipo de cuenta demoECN. Tengo que abrir una orden y luego modificarla.
 
alegre momento del día para todos... Señores, por favor, ayuda, hay un problema .... estoy probando mi robot forex en alpari, funciona en otra empresa de corretaje, he estado trabajando con el robot forex durante tres semanas y los resultados son diferentes. Hice un poco de investigación (por supuesto que me puse nervioso too..... piii) y me di cuenta de que los índices del indicador RSI, que se utiliza en los cálculos son ligeramente diferentes de los que muestran el mismo indicador en Alpari. Problema..... la diferencia está en "micras :)" pero oooh es suficiente para cambiar el EA. Chicos, por favor, aconsejen cómo arreglar este tipo de cosas, ¡muchas gracias!
 
laveosa:
alegre momento del día a todos ... señores ayuda por favor, este es el problema .... Estoy probando mi Asesor Experto en Forex en Alpari pero estoy usando otra compañía de corretaje, lo he estado usando por 3 semanas en demo y los resultados son diferentes. Hice un poco de investigación (por supuesto me puse nervioso too..... piii) y me di cuenta de que los índices del indicador RSI, que se utiliza en los cálculos son ligeramente diferentes de los que muestran el mismo indicador en Alpari. Problema..... la diferencia está en "micras :)" pero oooh es suficiente para cambiar el EA. Chicos, por favor, aconsejen cómo arreglar este tipo de cosas, ¡muchas gracias!


Las cotizaciones de los distintos CC son diferentes. Demo - de verdad - también. Los índices son los mismos.

Es necesario probar y comprobar los parámetros de la expo y del indicador en el historial de la empresa de corretaje con la que se va a jugar...

Y la expo tiene que ser ajustada de verdad(manejo de errores y todo lo demás...).

 
StringSetChar no funciona en el código. Hay que sustituir ":" por "." .

                        string    Object_Date_Secnd = TimeToStr(Object_Time,TIME_SECONDS);

                        for(int s1=0; s1<StringLen(Object_Date_Secnd); s1++) {
                           if(StringGetChar(Object_Date_Secnd,s1)==':' ) {
                              StringSetChar(Object_Date_Secnd,s1, '.');
                           }
                        }


- ¿Por qué no funciona la sustitución?

Gracias.

 
Entonces, si la ST fue diferente en Alpari, ¿no es garantía de que dará los mismos resultados en otra empresa de corretaje? ¿Y cómo podemos ajustarlo en otra empresa de corretaje si su historial no es tan completo como en Alpari, por ejemplo? Más cerca del cuerpo, ¿es posible ajustar los índices en otra empresa de corretaje para que sean idénticos a los de Alpari, por ejemplo?
 
laveosa:
Entonces, si la ST fue diferente en Alpari, ¿no es garantía de que dará los mismos resultados en otra empresa de corretaje? ¿Y cómo podemos ajustarlo en otra empresa de corretaje si su historial no es tan completo como en Alpari, por ejemplo? Más cerca del cuerpo, ¿podemos ajustar el indicador en otra empresa de corretaje para que traiga los mismos resultados que en Alpari por ejemplo?

Puedes - eso es... Sería útil hacer ese ajuste. Mira las historias de MetaQuotes.