Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 248

 
Oh, você é uma heroína, Junko, silenciosamente consertando o código e... É como se fosse isso que aconteceu. Você vai me dizer que foi isso que aconteceu, e eu não? Sim?
 
Roger:
Por que você está lendo a partir de um arquivo? Você tem o arquivo completo na variável ReadCBOE, você pode usá-lo,

Não há problema com isso, mas nem todas as cordas cabem na variável! MT tem suas próprias restrições quanto ao comprimento da corda, enquanto o arquivo é escrito com as informações do site, e o arquivo termina </body></html> enquanto a corda - quebra a 65k caracteres (ou mais). Em qualquer caso, o tamanho final do arquivo é de 69KB.

 
Integer:

Leia o artigo. Basicamente, não há como ler uma determinada linha de um arquivo, você tem que ler todas as linhas até uma determinada linha... Há uma função no artigo para a leitura de um arquivo de texto linha por linha.

Uau, obrigado, eu mesmo não o encontrei, deveria ter procurado pela tag HTML.
 
Zhunko:

É assim que funciona. Verifiquei.


De qualquer forma, há um erro, e aqui está
if (FileWriteString(hFile, sTextWrite, 10000) < 0)
escreve TUDO a cadeiano arquivo, independentemente dos 3 parâmetros da função, que é responsável pelo tamanho da cadeia.
 
Integer:
Você é uma heroína, Junko, consertando silenciosamente o código e... como se isso fosse o que aconteceu. Você vai me dizer que foi assim, e eu só estou brincando com você? Sim?

Fixo o quê? Verificação de NULL? Tudo bem. O que está errado? Se eu encontrar um erro, eu o conserto.

Você não conserta isso. Eu vi isso. Mesmo quando você o apontou, não o corrigiu. Você gosta de cometer erros e não corrigi-los? Então você se gaba disso?

=============

Estou desculpado. Eu quase nunca escrevo em MQL4. Eu já escrevi tudo o que preciso. Eu não trabalho com descritores e erros. Elas foram escritas há muito tempo, encapsuladas e esquecidas.

Em C++, os descritores são normalmente comparados ao NULL.

mzk_3om6u:

De qualquer forma, há um erro, e aqui está
if (FileWriteString(hFile, sTextWrite, 10000) < 0)
escrevendo TODAS as cordas no arquivo, independentemente de 3 parâmetros de função que são responsáveis pelo tamanho das cordas.
Não é. Funciona. É que este código não sobrescreve o arquivo. Você está olhando para um arquivo que já está escrito. Não parece funcionar. Na verdade, foi escrito onde deveria estar, mas a continuação da linha ainda é a antiga.

Escreva algo mais, ou apague o arquivo, ou coloque nele uma bandeira apenas para escrever.

 
Zhunko:

Fixo o quê? Verificação de NULL? Tudo bem. O que está errado? Se eu encontrar um erro, eu o conserto.

Você não conserta isso. Eu vi isso. Mesmo quando você o apontou, não o corrigiu. Você gosta de cometer erros e não corrigi-los? Então você se gaba disso?

=============

Estou desculpado. Eu quase nunca escrevo em MQL4. Escrevi tudo o que preciso. Eu não trabalho com descritores e erros. Elas foram escritas há muito tempo, encapsuladas e esquecidas.

Em C++, os descritores são normalmente comparados ao NULL.

Não é. Funciona. É que este código não sobrescreve o arquivo. Você está olhando para um arquivo que já está escrito. Não parece funcionar. Na verdade, foi escrito onde deveria estar, mas a continuação da linha ainda é a antiga.

Escrever algo mais, ou apagar um arquivo ou colocar uma bandeira apenas para escrever.


Sim, está funcionando...Obrigado.
 
Olá! O MetaTrader para Windows Phone ou Windows RT está saindo, e quando está programado para sair?
 
Bom tempo. Por favor, ajude-me a resolver o erro.
extern int OpenHH = 14; // Время открытия ордеров (часы).
extern int OpenMM = 25; // Время открытия ордеров (минуты).

extern int CloseHH = 23; // Время закрытие/удаление ордеров (часы).
extern int CloseMM = 45; // Время закрытие/удаление ордеров (минуты).


Esta parte do código funciona e não há reclamações sobre ela. As encomendas na sexta-feira, 23:45 fecham normalmente. A função DeleteOrders() funciona bem.

if (DayOfWeek() == 0 || DayOfWeek() == 6 ) return(0); // В выходные не работаем.
if (!IsTradeAllowed()) return(0); // Пропустить тик, если терминал занят.
if (Close_All_Orders) // Разрешение на закрытие ордеров.
if (DayOfWeek() >= 5 && // Если пятница и закрытие ордеров разрешено, то
TimeHour(TimeCurrent()) >= CloseHH && // в назначенный час
TimeMinute(TimeCurrent()) >= CloseMM ) // в назначенные минуты -
{ DeleteOrders(); return(0); } // все ордера закрываются.


O código de abertura de ordens é feito por analogia. O código não funciona de forma alguma na forma especificada.
Entretanto, se removermos ou comentarmos a fila com minutos, tudo funciona bem e os pedidos abrem às 14:00 horas. A função OpenOrders() funciona bem.
Qual pode ser o problema nesta (ou em outra) linha de código: TimeMinute(TimeCurrent()) >= OpenMM ?

if (Trade) // Разрешение на торговлю.
if (TimeHour(TimeCurrent()) >= OpenHH && // В назначенный час,
TimeMinute(TimeCurrent()) >= OpenMM ) // в назначенные минуты -
{ OpenOrders(); return(0); } // открыть ордера.


PS: Basicamente, existem vários EAs na Internet que abrem e fecham pedidos por tempo. Mas, por uma razão ou outra, elas podem não ser satisfatórias. Eu gostaria de lidar com o erro acima...

Obrigado...

 
Crosswert:
Boa tarde. Ajude-me com este erro.


Tudo parece estar correto, deve funcionar. Tentei seu código no meu - funciona com minutos. Mas somente das 14:25 às 14:59, das 15:25 às 15:59 etc.

int start()
  {
  int OpenHH=14,OpenMM=25;
  bool Trade=true;
//----
if (Trade) // Разрешение на торговлю.
 if (TimeHour(TimeCurrent()) >= OpenHH && // В назначенный час
 TimeMinute(TimeCurrent()) >= OpenMM ) // в назначенные минуты - 
 { OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); } // открыть ордера.   
//----
   return(0);
  }
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}


 

Talvez seja melhor assim.

if ((Hour() == OpenHH && Minute() >= OpenMM) || (Hour() > OpenHH))
Razão: