[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 445

 
FAQ:

Sólo por curiosidad, si el pedido no se realiza, debe haber un error. ¿Y probablemente no puedas leerlo y corregirlo?

/*Colocar una orden con toma y parada cero, y luego corregirla.

¡No estoy tratando de hacer esto, pero los registros están limpios!

"Si se trata de paradas, es unaespecie de seguro de contingencia

 
vall:

esa es la cuestión: ¡los troncos están limpios!

"Si la pregunta es sobre las paradas, esuna opción de seguro en caso de emergencia

Pones una orden sin topes y tomas de posesión y ¡mira si se abrió o no!

El establecimiento de stops y take's en su empresa de corretaje en este tipo de cuenta comercial es posible SOLO a través de la modificación de los valores cero establecidos anteriormente.

 
Roman.:

¡Coloque una orden sin topes y tomas de posesión y observe si se abrió o no!

El establecimiento de stops y take's en su CC en este tipo de cuenta de trading es posible SOLO modificando sus valores cero previamente establecidos.


Gracias, eso ayuda.

resulta que hay que abrir una cuenta con 0 y luego modificar introduciendo stops?

 
vall:

Gracias, eso ayuda.

Entonces, ¿hay que abrir una cuenta desde 0 y luego modificarla introduciendo stops?

Tendría que abrir una orden con valores nulos de estos parámetros, y luego modificarlos modificando la orden abierta.

 
Roman.:

abrir una orden con valores nulos de estos parámetros, y luego modificarlos modificando la orden abierta.


Gracias, ¿los stops se ajustan a la precisión de los símbolos del gráfico, es decir, a 0,00001 o a la precisión de 0,0001?
 

Los registros están limpios, porque nadie va a hacer la detección y gestión de errores por ti.

Спасибо, стопы устанавливаются в точностью до символов графика, т.е. 0,00001 или с точностью до 0,0001?

MarketInfo está en sus manos.

 
Vinin:

Nadie está dispuesto a ocuparse de su pregunta. Aunque podría haber respondido a su pregunta hace mucho tiempo, si quisiera, claro.
Eso es lo que creo... Créeme, a veces la voluntad no es suficiente para responder a tu propia pregunta
 

Buenas tardes... Pregunta sobre las funciones FileIsEnding y FileIsLineEnding. Para entender cómo funcionan las funciones FileIsEnding y FileIsLineEnding, escribí el siguiente script:

//+------------------------------------------------------------------------------------------+
//+------------------------------------------------------------------------------------------+
//|                         script program start function                                    |
//+------------------------------------------------------------------------------------------+
#property show_inputs                                                    //выводим перед запуском скрипта окно свойств
extern int  position=0;                                                  //внешняя переменная: смещение файлового указателя ОТ НАЧАЛА ФАЙЛА (в БАЙТАХ)
//---------------------------------------------------------------------------------------- 1 -
int start()                                                              //функция start
  {                                                                      //начало start
   double Timestart=GetTickCount();                                      //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения эксперта 
   string name="Копия Запись чисел в файл.csv";                          //имя создаваемого файла
   bool h;                                                               //переменная: значение функции FileIsEnding
   bool h_l;                                                             //переменная: значение функции FileIsLineEnding
   int error;                                                            //переменная: ошибка
   int handle=FileOpen(name,FILE_CSV|FILE_WRITE,';');                    //открываем заданный файл n записываем туда данные
   int запись=FileWrite(handle,DoubleToStr(1.3584,4));                   //записываем цены OHLC в файл csv (в преобразованном виде, т.е в виде текста)
   FileClose(handle);                                                    //закрываем файл
//---------------------------------------------------------------------------------------- 2 -
   handle=FileOpen(name,FILE_CSV|FILE_READ,';');                         //открываем заданный файл
   bool pos=FileSeek(handle,position,SEEK_SET);                          //смещаем от начала вправо указатель файла
   double чтение=FileReadNumber(handle);                                 //считываем число из текущей позиции (уже измененной функцией FileSeek) файлового указателя
   int size=FileSize(handle);                                            //вычисляем размер заданного файла
   h=FileIsEnding(handle);                                               //устанавливаем текущее значение переменной h
   h_l=FileIsLineEnding(handle);                                         //устанавливаем текущее значение переменной h_l
   error=GetLastError();                                                 //значение ошибки, производимой функцией FileIsEnding
   if(error!=0)Alert("Текущая ошибка ",error);                           //если код текущей ошибки не равен 0, то получаем номер текущей ошибки
   FileClose(handle);                                                    //закрываем файл
//----------------------------------------------------------------------------------------- 3 -
   Comment("Размер файла ",name," составил ",size," байт",
           "\nФункция FileSeek вернула: ",pos,
           "\nФункция FileReadNumber(handle) вернула: ",чтение,
           "\nФункция FileIsLineEnding(handle) вернула: ",h_l,
           "\nФункция FileIsEnding(handle) вернула: ",h,
           "\nСкрипт выполнялся всего ",GetTickCount()-Timestart," миллисекунд, из них: ",MathFloor((GetTickCount()-Timestart)/1000)," секунд ",((GetTickCount()-Timestart)/1000-MathFloor((GetTickCount()-Timestart)/1000))*1000," миллисекунд");//печать сообщения на экран
//----------------------------------------------------------------------------------------- 4 -
   return(0);                                                             //выход из start
  }                                                                       //конец start
//-------------------------------------- КОНЕЦ START -------------------------------------- 5 -

En el bloque 1-2, abrí y escribí el número 1,3584 (que la función DoubleToStr convierte en texto) en el archivo.

En el bloque 3-4, abrí el archivo y leí el número escrito allí.

El propósito de la variable externa extern int position es tratar de entender cómo funcionan las funciones FileIsEnding y FileIsLineEnding y qué es un puntero de archivo moviendo el puntero de archivo usando la función FileTell.

El libro MQL4.community dice que el puntero de archivo es un análogo del cursor de texto.

PERO, ejecutando el script varias veces y cambiando cada vez la variable externa postiton a 1 (es decir, moviendo así el puntero del archivo 1 byte a la derecha del comienzo del archivo), la función Comment produce una serie de mensajes, por ejemplo

si postiton=7, el mensaje se vería así:


si postiton=8, el mensaje se vería así:


Entiendo que como las constantes de cadena ocupan 8 bytes en la memoria del PC y sólo hay 1 número convertido en el archivo, entonces desplazar el puntero del archivo 8 bytes a la derecha me dará un error 4099 (que significa que se ha llegado al final del archivo). También entiendo que la función FileIsEnding devolvía 1 (true) por la misma razón (fin de archivo alcanzado). Pero no entiendo por qué la función FileIsLineEnding devuelve 0 (falso, lo que significa que el puntero del archivo no ha llegado al final de la línea). Después de todo, basándome en la analogía dada en el libro de MQL (un puntero de archivo es aproximadamente lo mismo que un cursor de texto), razoné que el final del archivo es también el final de la cadena. Pero dado que FileIsEnding y FileIsLineEnding tienen valores diferentes cuando el puntero de archivo llega al final del archivo, estoy perplejo en términos de QUÉ ES UN PUNTO DE ARCHIVO

Pregunta:

1. ¿Qué es un puntero de archivo?

2. ¿Por qué no coinciden el final de una línea y el final de un archivo (cuando un puntero de archivo llega al final de un archivo)?

P.D. Para no saturar el foro, gracias de antemano por la respuesta

 
7777877:

1. ¿Qué es un puntero de archivo?

2. ¿Por qué no coinciden el final de línea y el final de archivo (cuando el puntero del archivo llega al final del archivo)?

P.D. Para no saturar el foro, gracias de antemano por su respuesta

1. El puntero del archivo es en realidad un cursor cuando se escribe

2. ¿Quién te dijo que debían coincidir? Existe el terminador de cadena '\n' y el carácter de fin de archivo 'EOF'; son caracteres diferentes. Son como el carácter de fin de frase (punto) y el carácter de fin de párrafo ("carácter de salto de línea"). Primero hay un punto, que es el final de la línea. Luego viene el final del párrafo.

 

Hola. Hay un problema al escribir un idnikator, básicamente hay dos arrays para los buffers,

Masa1

Masa2

Y los datos de cada elemento de la matriz se cuentan en números pequeños, es decir, los valores son 15, 27, 41, 14, etc.

Si establezco el tipo int de las matrices y si recorro cada elemento puedo ver que los valores de la matriz corresponden a los valores calculados, pero si el tipo es Int entonces las líneas del indicador no se muestran en la ventana.

Si pongo el tipo de array double, el array almacena más valores que no sé de dónde salen, por ejemplo 21456545454, 43654534532, 24325235232 etc. Que no se corresponden en absoluto con los valores calculados.

¿Cuál puede ser el problema?