[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 454

 
smart:


¿Cómo puedo saber qué indicadores están en la plantilla? He instalado una plantilla antigua, pero no se muestran todos los indicadores. He olvidado los nombres de los indicadores incluidos en la plantilla. Gracias.


Abra la carpeta \templates\, busque su plantilla, ábrala en el bloc de notas, busque la etiqueta <windows> y vea qué indicadores están empaquetados con qué parámetros.
 
tol64:

demlin20.06.2011 22:02

Hola a todos.

Tengo una pregunta, no puedo hacer que el programa determine el beneficio de la orden en pips. Que alguien me ayude.

Prueba todos los pedidos en bucle.

For(i = 0; i < OrderHistoryTotal(); i++)

Se selecciona el que se quiere por ciertos criterios usando OrderSelect(). Entonces se pide OrderProfit(). Este es el beneficio neto en dinero. El valor de los puntos es aproximadamente el siguiente:

(OrderProfit()/10)/OrderLots()+(OrderSwap()/10)/OrderLots();

Compruebe por si acaso))

Gracias, lo probaré
 

Escribir y leer la información del comentario de la orden. OrdenComentario().

Al abrir una orden, registro el saldo y el nivel de Stop Loss en el comentario. Cuando se abre el pedido, miro el registro. Todo es preciso.




El saldo es de 10000,00. Stop Loss 1,67740. El número total de caracteres es de 15.
Luego, utilizando las funciones de cadena, selecciono los caracteres necesarios y los escribo en el archivo csv. Pero me enfrenté a un problema de este tipo. Si se activa un stop loss, estos caracteres [sl] se añaden al final del comentario.


Y tengo 19 dígitos, no 15. El asunto es que compruebo el número de dígitos del saldo actual y el número de dígitos del precio antes de hacer un comentario. Esto se asigna a variables, que luego utilizo para determinar cuántos y qué dígitos necesito obtener. Pero esto [sl ] me hace pasar un mal rato. Al fin y al cabo, si el precio tiene 7 dígitos, el archivo contendrá 740, no 1,67740. No sé cómo resolver este problema). Por favor, ayúdame.
 
Lo más fácil es escribir lo correcto en el comentario de una vez. Es decir, poner delimitadores entre los datos. Entonces la longitud de la cadena no importará, sólo sacará la subcadena entre los delimitadores.
 
granit77:
Lo más fácil es escribirlo correctamente en el comentario de una vez. Eso es poner delimitadores entre los datos. Entonces la longitud de la cadena no importará, sólo hay que tirar de la subcadena entre los delimitadores.


Antes me ofrecieron esta sencilla variante:

string comment = OrderComment(); comment = StringSubstr(comment, 0, 15); // recortado a la derecha

Era una variante sencilla, pero también tuve algunas dificultades con ella, pero conseguí resolver el problema. )

¿Por qué, si se escribe todo correctamente a la vez, no se añaden los caracteres [sl]? ¿Puedo tener un pequeño ejemplo con la extracción de subcadenas del comentario de la orden, si no te importa?

 
tol64:


Antes me ofrecieron esta sencilla opción:

La opción es sencilla, pero a mí también me costó, pero me decidí. )

¿Por qué, si se escribe todo correctamente a la vez, no se añaden los caracteres [sl]? ¿Puedo tener un pequeño ejemplo con la extracción de una subcadena del comentario de la orden, si no te importa?

Que se añadan. Quieres recuperar tus datos, y no te importa lo que añada o la longitud de la cadena.

   string _comment="10000.00"+"$"+"1.67740"+"#";//строка комментария. "$","#" - разделители (символы,какие понравятся) 
   int lenstring=StringLen(_comment);           //длина строки _comment
   int delim1,delim2;                           //позиции разделителей в строке _comment
   string balans,stoploss;                      //извлекаемые подстроки
   delim1=StringFind( _comment, "$", 0);        //определяем позиции разделителей в строке _comment
   delim2=StringFind( _comment, "#", 0);        //определяем позиции разделителей в строке _comment 
   balans   =  StringSubstr( _comment,0, delim1);                //извлекли строку баланс
   stoploss =  StringSubstr( _comment,delim1+1, delim2-delim1-1);//извлекли строку стоплосс 
   Comment("|",balans,"|",stoploss,"|");//проверка 
 
Buenos días a todos. Me he encontrado con una situación curiosa en la que dos ordenadores diferentes pueden conectarse a la misma cuenta e incluso operar simultáneamente en ella. ¿Quién puede decirme si es posible controlar un equipo remoto, por ejemplo, cambiar las variables ext o al menos suspender un EA? Agradezco de antemano, porque me enfrenté a una situación extraña cuando no puedo tomar el control de la terminal, que funciona en casa (yo en el trabajo, por ejemplo).
 
granit77:
Que se añadan. Usted quiere recuperar sus datos, y no le importa lo que se agrega o la longitud de la cadena.


)) Gracias. Un gran ejemplo. Lo tienes todo en una palabra. Este es exactamente el tipo de ejemplo que a veces falta.
 
snail09:

Sí, definitivamente está hirviendo. Todo el mundo está respondiendo a su... preguntas. ¿Quizás estás tan desinformado?

Si alguien me dijera cómo trazar el cruce de la línea de tendencia por el precio (una línea recta), ¿me bastaría con una pista? Gracias inmediatamente, ya que no espero una respuesta en un futuro próximo. Tú, Star, eres un flooder, que los moderadores me perdonen...


No soy un mago, es mi primera vez aquí. 8))))
 
peshihod:

Te falta práctica. No puede ejecutar su programa, no funciona. Un círculo vicioso: no hay opción viable-> no hay habilidad-> no hay opción viable.

Hay que pensarlo.... :-/


Para continuar con el tema.

Para aprender, hay que practicar.

Haga lo siguiente en el terminal de operaciones:
1. Debe abrirse una cuenta de demostración.
Introduzca los datos de la cuenta en el terminal de operaciones: Archivo->Inicio de sesión->...
2.Utilice un gráfico abierto o abra uno nuevo:Archivo->Nuevo_gráfico->...
3.Establezca el máximo en: Servicio->Configuración->Charts->Max Bar_History->250000
4.Establezca el marco temporal de un minuto : Charts->Period->M1_One_minute
5.Realice la actualización: Charts->Update
6.Abra el Probador de Estrategias: View->Strategy Tester
Todas las demás ventanas se cierran (minimizan), dejan una ventana con un gráfico y una ventana con el probador.
------------------
A continuación, en la configuración del Probador de Estrategias:
7. Símbolo: Seleccione el símbolo que tiene un gráfico abierto.
8.Modelo:Por precios de apertura(.....)
<<<Este modelo a utilizar hasta OrderSend().>>>
9.Usar fecha: Marque la casilla.
Fecha: _Desde:<Ayer (excepto sábados y domingos)>, _hasta:Hoy
10.Visualización: desmarcar si está marcada.
11.Periodo: M1
12.Optimización: eliminar la marca si está presente.
---------------------
Abra además el MetaEditor:
13.En el menú del terminal comercial:Servicio->Editor_MetaQuotes_Language
14.Escriba un programa, por ejemplo:
//=====================

int i;
int const=5;
int Celoe, Ostatok;
bool flag_Odin_Raz=true;




int start()
{

if(flag_Odin_Raz==true)
{
//-------------
i=0;
while(i<22)
   {
   Celoe=i/const;
   Ostatok=MathMod(i,const);
   Print("При i=", i, " Celoe=", Celoe, " Ostatok=", Ostatok);
   i=i+1;
   }
//-------------
flag_Odin_Raz=false;
}
return(0);
}

//=============================

15.En el MetaEditor, menú: Archivo->Guardar_como: dar un nombre de archivo, guardar la extensión .mq4, la carpeta debe ser 'expertos'.
16.En el MetaEditor en el menú: Archivo->Compilar
---------------------------------------
Luego en el probador en la configuración:
17.Asesor: busque y seleccione el nombre del archivo del programa.
18.Haga clic en el botón "Inicio" con el ratón.
19. En el tester->log
Vemos el resultado del programa mediante los mensajes Print()
-----------------------------------------
Para facilitar la visualización:
20. Haga clic con el botón derecho del ratón en cualquier línea del registro->Abrir
Esto abrirá la carpeta de registros con el archivo *.log, que puede abrir con cualquier editor de texto, Notepad, Word, etc.

PS
Si el archivo es demasiado grande y ningún editor de texto es capaz de abrirlo, entonces debe eliminar este archivo utilizando los medios de Windows y reiniciar el programa pulsando el botón "Inicio" desde el terminal de comercio. Carpeta del probador: "...\carpeta_de_instalación\\\Nde\Nlos\Nregistros", que no debe confundirse con otra: "...\Ncarpeta\Nde\Ninstalación\Nde\Nlos\Nregistros"

PPS
Para aprender a programar, se necesita un compilador de lenguaje de programación, que transforme la escritura textual de las acciones necesarias en un "programa" (legible para el ser humano), en un lenguaje de comandos de máquina - comprensible para un ordenador. Sin la práctica, es imposible aprender. Mql4 no crea programas separados, *.mq4 se convierte en *.ex4, que se ejecuta desde un shell del programa.
*.ex4 no puede ser ejecutado directamente, el algoritmo descrito anteriormente pasa por alto este punto.