[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 445

 
FAQ:

Estou apenas curioso - se o pedido não está sendo feito, deve haver um erro? E você provavelmente não consegue lê-lo e corrigi-lo?

/*Faça um pedido com zero take e pare, e depois o corrija.

Eu não estou tentando fazer isso, mas os troncos estão limpos!

"Se isto é uma questão de paradas, é apenas umaespécie de seguro de contingência

 
vall:

Aí é que está - os troncos estão limpos!

"Se a questão é sobre paradas, é apenas uma opção de seguro em caso de emergência

Você faz um pedido sem paradas e assume o controle e observa se ele abriu ou não!

O estabelecimento de paradas e tomadas em sua corretora neste tipo de conta comercial é possível SOMENTE através da modificação dos valores zero estabelecidos anteriormente.

 
Roman.:

Faça um pedido sem paradas e aquisições e veja se ele abriu ou não!

A configuração de paradas e tomadas em seu CD neste tipo de conta comercial é possível SOMENTE modificando seus valores zero previamente estabelecidos.


Obrigado, isso ajuda.

Acontece que você precisa abrir uma conta com 0 e depois modificar, introduzindo paradas?

 
vall:

Obrigado, isso ajuda.

Então você tem que abrir uma conta a partir de 0 e depois modificá-la, entrando em paradas?

Eu teria que abrir uma ordem com valores zero destes parâmetros, e depois modificá-los modificando a ordem aberta.

 
Roman.:

abrir uma ordem com valores zero destes parâmetros, depois modificá-los modificando a ordem aberta.


Obrigado, as paradas estão ajustadas para a precisão dos símbolos gráficos, ou seja, 0,00001 ou para a precisão de 0,0001?
 

Os registros estão limpos, porque ninguém fará a detecção de erros e o tratamento de erros para você.

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

MarketInfo está em suas mãos.

 
Vinin:

Ninguém está disposto a lidar com sua pergunta. Embora você pudesse ter respondido à sua pergunta há muito tempo, se você quisesse, é claro.
Isso é o que eu acredito... Acredite em mim, às vezes a vontade por si só não é suficiente para responder sua própria pergunta
 

Boa tarde... Pergunta sobre as funções FileIsEnding e FileIsLineEnding. A fim de entender como FileIsEnding e FileIsLineEnding funcionam, escrevi o seguinte roteiro:

//+------------------------------------------------------------------------------------------+
//+------------------------------------------------------------------------------------------+
//|                         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 -

No bloco 1-2, eu abri e escrevi o número 1.3584 (que a função DoubleToStr converte em texto) para o arquivo.

No bloco 3-4, eu abri o arquivo e li o número escrito ali.

A variável externa int posição externa deve mover o ponteiro de arquivo usando a função FileTell para tentar entender como as funções FileIsEnding e FileIsLineEnding funcionam e o que é o ponteiro de arquivo.

O livro MQL4.community diz que o ponteiro do arquivo é um análogo do cursor do texto.

MAS, executando o script várias vezes e mudando cada vez que a variável externa postiton para 1 (ou seja, movendo assim o ponteiro do arquivo 1 byte para a direita do início do arquivo), a função Comentar produz uma série de mensagens, por exemplo

se postiton=7, a mensagem seria parecida com esta:


se postiton=8, a mensagem seria parecida com esta:


Entendo que, uma vez que as constantes de string ocupam 8 bytes na memória do PC e há apenas 1 número convertido no arquivo, então deslocar o ponteiro do arquivo 8 bytes para a direita me dará um erro 4099 (o que significa que o final do arquivo foi alcançado). Também entendo que a função FileIsEnding retornou 1 (verdadeiro) pelo mesmo motivo (fim do arquivo alcançado). Mas eu não entendo porque a função FileIsLineEnding retornou 0 (falso, o que significa que o ponteiro do arquivo não chegou ao fim da linha). Afinal, com base na analogia dada no livro MQL (um ponteiro de arquivo é aproximadamente o mesmo que um cursor de texto), raciocinei que o fim do arquivo é também o fim da cadeia de caracteres. Mas considerando que FileIsEnding e FileIsLineEnding têm valores diferentes quando o ponteiro do arquivo chega ao final do arquivo, estou perplexo quanto ao que é um ponteiro de arquivo

Pergunta:

1. O que é um ponteiro de arquivo?

2. Por que o final de uma linha e o final de um arquivo não coincidem (quando um ponteiro de arquivo atinge o final de um arquivo)?

P.S. A fim de não desorganizar o fórum, obrigado antecipadamente pela resposta

 
7777877:

1. O que é um ponteiro de arquivo?

2. Por que o final da linha e o final do arquivo não coincidem (quando o ponteiro do arquivo chega ao final do arquivo)?

P.S. Para não desorganizar o fórum, obrigado antecipadamente por sua resposta

1. o ponteiro do arquivo é na verdade um cursor quando você digita

2 Quem lhe disse que deveriam coincidir? Há o terminador de cordas '\n' e o caractere final do arquivo 'EOF'; estes são caracteres diferentes. Eles são como o caráter de fim de frase (parada completa) e o caráter de fim de parágrafo ("caráter de quebra de linha"). Primeiro há uma parada completa, que é o fim da linha. Depois vem o final do parágrafo.

 

Olá. Há um problema com a escrita de um idnikator, basicamente existem duas matrizes para amortecedores,

Massa1

Massa2

E os dados para cada elemento da matriz são contados em pequenos números, ou seja, os valores são 15, 27, 41, 14, etc.

Se eu definir Int tipo de arrays e se eu correr através de cada elemento, posso ver que os valores do array correspondem aos valores calculados, mas se o tipo for Int então as linhas indicadoras não são exibidas na janela.

Se eu definir o tipo de array duplo, o array armazena mais valores que eu não sei de onde eles vêm, por exemplo 21456545454, 43654534532, 24325235232 etc. Que não correspondem de forma alguma aos valores calculados.

Qual poderia ser o problema?