voidOnStart()
{
string text="Hello man";
string keystr="ABCDEFG";
uchar src[],dst[],key[];
//--- подготовка ключа шифрованияStringToCharArray(keystr,key);
//--- подготовка исходного массива src[]StringToCharArray(text,src);
//--- вывод исходных данныхPrintFormat("Initial data: size=%d, string='%s'",ArraySize(src),CharArrayToString(src));
//--- шифрование массива src[] методом DES с 56-битным ключом key[]int res=CryptEncode(CRYPT_AES256,src,key,dst);
//--- проверка результата шифрованияif(res>0)
{
//--- вывод шифрованных данныхPrintFormat("Encoded data: size=%d %s",res,ArrayToHex(dst));
//--- расшифровка данных массива dst[] методом DES с 56-битным ключом key[]
res=CryptDecode(CRYPT_AES256,dst,key,src);
//--- проверка результатаif(res>0)
{
//--- вывод дешифрованных данныхPrintFormat("Decoded data: size=%d, string='%s'",ArraySize(src),CharArrayToString(src));
}
elsePrint("Ошибка в CryptDecode. Код ошибки=",GetLastError());
}
elsePrint("Ошибка в CryptEncode. Код ошибки=",GetLastError());
}
//+------------------------------------------------------------------+string ArrayToHex(uchar &arr[],int count=-1)
{
string res="";
//--- проверка размераif(count<0 || count>ArraySize(arr))
count=ArraySize(arr);
//--- преобразование в шестнадцатиричную строкуfor(int i=0; i<count; i++)
res+=StringFormat("%.2X",arr[i]);
//---return(res);
}
Estou tentando executar o exemplo criptográfico do manual, masusoCRYPT_AES256 em vez do métodoCRYPT_DES. O resultado é o erro 4029 após o métodoCryptEncode
Estou tentando executar o exemplo criptográfico do manual, masusoCRYPT_AES256 em vez do métodoCRYPT_DES. Como resultado, erro 4029 após o métodoCryptEncode
Descobrimos isso. Ele precisa de uma chave mais cuidadosa).
Sou burro e não consigo descobrir sozinho, por favor, informe qual poderia ser o problema ou pelo menos me aponte na direção certa.
Diferentes indicadores estão começando a mostrar um pedaço diferente de história de forma síncrona. Isso acontece às vezes, não todos os dias.
Pensei que a razão é que os indicadores não processam corretamente o histórico carregado dinamicamente. Eu tentei tudo que diz respeito à atualização correta do indicador sobre o histórico de atualização, não sei o que mais deve ser feito para evitar isto.
Corretor Alpari. MT5 constrói 2363 a partir de 13.03.2020.
As capturas de tela mostram primeiro a versão "falhada".
Em seguida, a versão correta após atualização manual.
//+------------------------------------------------------------------+bool IsReadyForCalculate(constint rates_total,constint prev_calculated,constdatetime &time[])
{
//--- подключение терминала и синхронизация данныхif(TerminalInfoInteger(TERMINAL_CONNECTED))
if(!SymbolIsSynchronized(_Symbol) ||
!SeriesInfoInteger(_Symbol,_Period,SERIES_SYNCHRONIZED)) return(false);
//--- некорректное значение prev_calculatedif(prev_calculated<0) return(false);
//---if(prev_calculated==0) prev_time = time[rates_total-1];
//--- произошли изменения в данных, но prev_calculated не сброшен в 0//--- или изменение времени не соответствует одному баруif( (rates_total!=prev_calculated+1 &&
rates_total!=prev_calculated &&
prev_calculated!=0) ||
(time[rates_total-1]>prev_time &&
time[rates_total-2]!=prev_time))
{
loc_prev_calculated = 0; // чтобы индикатор не висел "голым" до следующей котировки, вычисляю индикатор из того, что естьreturn(true);
}
//--- корректный сценарийif( (rates_total==prev_calculated || rates_total==prev_calculated+1 || prev_calculated==0) &&
(time[rates_total-1]==prev_time || time[rates_total-2]==prev_time))
{
loc_prev_calculated = prev_calculated;
return(true);
}
//--- return(false); // верну false, пока не знаю, какие варианты ещё могут быть
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,constint prev_calculated,constdatetime &time[],constdouble &open[],constdouble &high[],constdouble &low[],constdouble &close[],constlong &tick_volume[],constlong &volume[],constint &spread[])
{
if(!IsReadyForCalculate(rates_total,prev_calculated,time)) return(0);
//---// вызов функции зигзага//--- return value of prev_calculated for next call
prev_time = time[rates_total-1];
return(rates_total);
}
//+------------------------------------------------------------------+
Eu tenho esta pergunta na MQL5. Como posso forçar a função OnChartEvent() a começar? Existe alguma maneira padrão de fazer isso?
Para este fim, uso a função ChartNavigate() e a executo a partir de OnChartEvent(). Mas funciona instável - quando muitos carrapatos entram, muitas vezes o OnChartEvent() não reinicia após chamar ChartNavigate() por alguma razão. Não consigo entender como está conectado - ChartNavigate() e taxa de chegada de carrapatos, mas isso acontece apesar disso.
В языке MQL5 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL5: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
Bom dia a todos! Estou dominando a dupla função OnTester() e TesterStatistics( ). Escrevi um código simples para meu testador no MT4, que abre um pedido por dia às 10:00, às 16:00, às 20:00 e à 01:00. Ao final dos testes, a função TesterStatistics( ) retorna o menor valor de balanço (ou seja, o drawdown relativo).
PROBLEMA
TesterStatistics( ) retorna o menor valor de saldo para TODAS as ordens abertas
PERGUNTA
Que construção de linguagem pode ser usada para fazer com que os TesterStatistics() devolvam o menor valor de saldo somente para um pedido aberto em algum momento em particular, por exemplo às 16:00 horas. Neste caso, todas as ordens especificadas no código devem ser testadas simultaneamente. Isso significa que o TesterStatistics deve rastrear a dinâmica de equilíbrio para apenas um pedido aberto às 16:00 e, ao final do teste, exibir o valor mínimo de equilíbrio apenas para o pedido aberto às 16:00.
Eu ficaria muito grato se você pudesse inserir a construção lingüística necessária em meu código. Isso me permitirá compreender rapidamente o algoritmo de solução do meu problema. Aqui está meu código.
Bom dia a todos! Tenho dominado a dupla OnTester() e TesterStatistics( ). Escrevi um código simples para meu testador no MT4, que abre um pedido às 10:00, às 16:00, às 20:00 e à 01:00 todos os dias. No final dos testes, a função TesterStatistics retorna o menor valor de balanço (ou seja, o drawdown relativo).
PROBLEMA
TesterStatistics( ) retorna o menor valor de saldo para TODOS os pedidos em aberto
PERGUNTA
Que construção de linguagem pode ser usada para fazer com que os TesterStatistics() devolvam o menor valor de saldo somente para um pedido aberto em algum momento em particular, por exemplo às 16:00 horas. Neste caso, todas as ordens especificadas no código devem ser testadas simultaneamente. Isto é, TesterStatistics( ) deve rastrear a dinâmica do balanço de apenas um pedido aberto às 16:00 e, ao final do teste, retornar o valor mínimo do balanço para o pedido aberto às 16:00 apenas.
Eu ficaria muito grato se você pudesse inserir a linguagem necessária em meu código. Isto me permitirá compreender muito rapidamente o algoritmo para resolver meu problema. Aqui está meu código.
Obrigado por seu feedback. Graças a você percebi que a especificaçãoTesterStatistics( ); funciona junto com a declaração da variável global H ... foi um erro meu. Eu o consertei.
Глобальные переменные создаются путем размещения их объявлений вне описания какой-либо функции. Глобальные переменные определяются на том же уровне, что и функции, т. е. не локальны ни в каком блоке. Область видимости глобальных переменных - вся программа, глобальные переменные доступны из всех функций, определенных в программе...
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
MT4
O que é este item e o que ele faz, não consigo encontrar uma descrição em nenhum lugar?
Como eu o desabilito por padrão?
Estou tentando executar o exemplo criptográfico do manual, masuso CRYPT_AES256 em vez do métodoCRYPT_DES. O resultado é o erro 4029 após o métodoCryptEncode
Estou tentando executar o exemplo criptográfico do manual, masuso CRYPT_AES256 em vez do métodoCRYPT_DES. Como resultado, erro 4029 após o métodoCryptEncode
Descobrimos isso. Ele precisa de uma chave mais cuidadosa).
Olá!
Sou burro e não consigo descobrir sozinho, por favor, informe qual poderia ser o problema ou pelo menos me aponte na direção certa.
Diferentes indicadores estão começando a mostrar um pedaço diferente de história de forma síncrona. Isso acontece às vezes, não todos os dias.
Pensei que a razão é que os indicadores não processam corretamente o histórico carregado dinamicamente. Eu tentei tudo que diz respeito à atualização correta do indicador sobre o histórico de atualização, não sei o que mais deve ser feito para evitar isto.
Corretor Alpari. MT5 constrói 2363 a partir de 13.03.2020.
As capturas de tela mostram primeiro a versão "falhada".
Em seguida, a versão correta após atualização manual.
Olá.
Eu tenho esta pergunta na MQL5. Como posso forçar a função OnChartEvent() a começar? Existe alguma maneira padrão de fazer isso?
Para este fim, uso a função ChartNavigate() e a executo a partir de OnChartEvent(). Mas funciona instável - quando muitos carrapatos entram, muitas vezes o OnChartEvent() não reinicia após chamar ChartNavigate() por alguma razão. Não consigo entender como está conectado - ChartNavigate() e taxa de chegada de carrapatos, mas isso acontece apesar disso.
Olá!
Sou burro e não consigo descobrir sozinho, por favor, informe qual poderia ser o problema ou pelo menos me aponte na direção certa.
Talvez eu tenha acrescentado isto recentemente para nada...
RemovidoSubstituiu-o por...
return(false);Vou ficar de olho nisso.
Fale-me sobre os indicadores padrão que vêm com o MT5, como eles funcionam? Eles falham como eu fiz nas capturas de tela acima?
Bom dia a todos!
Estou dominando a dupla função OnTester() e TesterStatistics( ). Escrevi um código simples para meu testador no MT4, que abre um pedido por dia às 10:00, às 16:00, às 20:00 e à 01:00. Ao final dos testes, a função TesterStatistics( ) retorna o menor valor de balanço (ou seja, o drawdown relativo).
PROBLEMA
TesterStatistics( ) retorna o menor valor de saldo para TODAS as ordens abertas
PERGUNTA
Que construção de linguagem pode ser usada para fazer com que os TesterStatistics() devolvam o menor valor de saldo somente para um pedido aberto em algum momento em particular, por exemplo às 16:00 horas. Neste caso, todas as ordens especificadas no código devem ser testadas simultaneamente. Isso significa que o TesterStatistics deve rastrear a dinâmica de equilíbrio para apenas um pedido aberto às 16:00 e, ao final do teste, exibir o valor mínimo de equilíbrio apenas para o pedido aberto às 16:00.
Eu ficaria muito grato se você pudesse inserir a construção lingüística necessária em meu código. Isso me permitirá compreender rapidamente o algoritmo de solução do meu problema.
Aqui está meu código.
Bom dia a todos!
Tenho dominado a dupla OnTester() e TesterStatistics( ). Escrevi um código simples para meu testador no MT4, que abre um pedido às 10:00, às 16:00, às 20:00 e à 01:00 todos os dias. No final dos testes, a função TesterStatistics retorna o menor valor de balanço (ou seja, o drawdown relativo).
PROBLEMA
TesterStatistics( ) retorna o menor valor de saldo para TODOS os pedidos em aberto
PERGUNTA
Que construção de linguagem pode ser usada para fazer com que os TesterStatistics() devolvam o menor valor de saldo somente para um pedido aberto em algum momento em particular, por exemplo às 16:00 horas. Neste caso, todas as ordens especificadas no código devem ser testadas simultaneamente. Isto é, TesterStatistics( ) deve rastrear a dinâmica do balanço de apenas um pedido aberto às 16:00 e, ao final do teste, retornar o valor mínimo do balanço para o pedido aberto às 16:00 apenas.
Eu ficaria muito grato se você pudesse inserir a linguagem necessária em meu código. Isto me permitirá compreender muito rapidamente o algoritmo para resolver meu problema.
Aqui está meu código.
O que é isso?
É isto o que é?
Obrigado por seu feedback. Graças a você percebi que a especificaçãoTesterStatistics( ); funciona junto com a declaração da variável global H ... foi um erro meu. Eu o consertei.