Primeiro, o preenchimento de uma matriz com uma enumeração só é possível no âmbito global, pelo que nenhum + funcionará aí, apenas constantes de cordas.
Em segundo lugar, não distribuiu matriz estática, e a matriz dinâmica não pode ser preenchida por enumeração.
A forma mais fácil é escrever uma função que distribui e preenche a matriz dinâmica, pode fazer tudo, adicionar definições com constantes, etc.
Pode também tentar pesquisar todos os pares de moedas existentes em BC/BROKER e analisar as moedas compostas neles existentes.
Depois disso, pode criar um conjunto dinâmico de pares de moedas tendo em conta a adição de quaisquer prefixos.
Tanto quanto me lembro, é uma das opções universais para o MT5.
Primeiro, o preenchimento de uma matriz com uma enumeração só é possível no âmbito global, pelo que nenhum + funcionará aí, apenas constantes de cordas.
Em segundo lugar, não distribuiu matriz estática, e a matriz dinâmica não pode ser preenchida por enumeração.
A forma mais fácil é escrever uma função que irá distribuir e preencher a matriz dinâmica, pode fazer tudo, adicionar definições às constantes, etc.
Em suma, se o entendi correctamente, não se pode criar um conjunto de constantes de cordas estáticas no âmbito global, certo?
É possível ver o código no código fonte. Dois métodos são utilizados para encontrar a divergência:
1. O método bool CSignalMACD::ExtState(int ind) prepara os dados para a pesquisa;
2. O método bool CSignalMACD::CompareMaps(int map,int count,bool minimax,int start) procura um modelo de mercado com os parâmetros especificados.
Se ajudar, aqui estão os comentários aos métodos em russo:
Para o método bool CSignalMACD::ExtState(int ind)
Para o método bool CSignalMACD::CompareMaps(int map,int count,bool minimax,int start)
Também tenho uma pergunta - como especificar a variante de divergência ao criar um Expert Advisor utilizando o sinal MACD? Existem várias variantes do sinal no livro de referência.
strelec: Tenho também uma pergunta, como especificar a variante de divergência ao criar um Expert Advisor utilizando o sinal MACD? Há várias variantes de sinais no manual.
Como todos já notaram, qualquer sinal pode detectar múltiplos padrões de mercado. Para controlar a utilização de padrões , chamar o método PatternsUsage(int value), onde o valor é o mapa de bit da utilização de padrões (número de bit e número de padrão são os mesmos). Bit é 1 - modelo é utilizado, bit é 0 - modelo não é utilizado (por defeito todos os bits são 1). A numeração dos modelos, bem como dos bits, começa em 0.
Assim, se quiser usar apenas divergências, deve usar PatternsUsage(16);. Porquê 16? 16 é binário 10000b (ou seja, o bit 4 é 1, todos os outros bits são 0). E apenas o modelo 4 "divergência entre o oscilador e o preço".
O único "mas", terá de o fazer "manualmente".
Após a conclusão do Wizard, o código fonte será aberto no editor. Encontre um lugar como este no editor:
Como todos já notaram, qualquer sinal pode detectar múltiplos padrões de mercado. Para controlar a utilização de padrões , chamar o método PatternsUsage(int value), onde o valor é um bitmap de utilização de padrões (o número do bit e o número do padrão são os mesmos). Bit é 1 - modelo é utilizado, bit é 0 - modelo não é utilizado (por defeito todos os bits são 1). A numeração dos modelos, bem como os bits começam a partir de 0.
Por isso, se só quiser usar divergência, precisa de usar o PatternsUsage(16);. Porquê 16? 16 é 10000b em binário (ou seja, o bit 4 é 1, os outros bits são 0). E apenas o modelo 4 "divergência entre o oscilador e o preço".
O único "mas", terá de o fazer "manualmente".
Após a conclusão do Wizard, o código fonte será aberto no editor. Encontre um lugar como este no editor:
e acrescentar uma linha
filter0.PatternsUsage(16);
consegue-o:
É tudo por agora. Se tiver alguma dúvida, não hesite em contactar-me.
Obrigado. Já está. E há mais perguntas a fazer de imediato. Nesta variante de divergência, que intervalo de tempo entre os picos vizinhos (troughs) é tido em conta?
strelec: Obrigado. Funcionou. E há mais perguntas a fazer de imediato. Nesta variante de divergência, que intervalo de tempo entre os topos vizinhos (troughs) é tido em conta?
Tenho um perito com o qual tento lidar com os acontecimentos.
stringevent[10]=
{
"CHARTEVENT_KEYDOWN - событие нажатия клавиатуры, когда окно графика находится в фокусе",
"CHARTEVENT_OBJECT_CREATE — событие создания графического объекта",
"CHARTEVENT_OBJECT_CHANGE — событие изменения свойств объекта через диалог свойств",
"CHARTEVENT_OBJECT_DELETE — событие удаления графического объекта",
"CHARTEVENT_CLICK — cобытие щелчка мыши графике",
"CHARTEVENT_OBJECT_CLICK — событие щелчка мыши на графическом объекте, принадлежащего графику",
"CHARTEVENT_OBJECT_DRAG — событие перемещения графического объекта при помощи мыши",
"CHARTEVENT_OBJECT_ENDEDIT — событие окончания редактирования текста в поле ввода графического объекта LabelEdit",
"CHARTEVENT_CHART_CHANGE — событие изменения графика",
"CHARTEVENT_CUSTOM+n — идентификатор пользовательского события, где n находится в диапазоне от 0 до 65535"
};
//+------------------------------------------------------------------+//| ChartEvent function |//+------------------------------------------------------------------+void OnChartEvent(constint id,
constlong &lparam,
constdouble &dparam,
conststring &sparam)
{
Print("id=(",id,") -- ",event[id]," lparam=",lparam," dparam=",dparam," sparam=", sparam);
}
//+------------------------------------------------------------------+
Recebo eventos que não correspondem a acções.
Corresponde exactamente a um clique no gráfico e a um clique de um botão
Um evento controverso id=9(CHARTEVENT_CUSTOM), que é gerado quando, por exemplo, o gráfico é deslocado e há cerca de 10 eventos semelhantes.
Todo o resto não é claro. Ou a descrição não corresponde ao número do evento ou o evento de criação de um objecto é gerado incorrectamente quando se cria um objecto manualmente.
Nem tudo é claro com todo o resto. Ou a descrição não corresponde ao número do evento ou o evento de criação de um objecto é gerado incorrectamente quando se cria o objecto manualmente.
Em suma, por favor, ajudem.
Inicialmente atribui correspondências numéricas às constantes numéricas já atribuídas CHARTEVENT_XXXXXXXXXX...
o problema é este:
event[id]
é necessário:
//--- нажатие мышкой на графическом объектеif(id==CHARTEVENT_OBJECT_CLICK)
{
Print("Нажатие кнопки мышки на объекте с именем '"+sparam+"'");
}
//--- нажатие кнопки на клавиатуреif(id==CHARTEVENT_KEYDOWN)
{
O resto não é claro. Ou a descrição não corresponde ao número do evento, ou o evento da criação do objecto, por exemplo, não é gerado correctamente quando o objecto é criado manualmente.
Infelizmente, a sua pergunta não é clara. O que é que está exactamente a correr mal?
Alguns CD em contas reais atribuem todo o tipo de prefixos como "." ou "FXF" aos nomes dos símbolos.
Como posso utilizar estes prefixos?
Eu fi-lo:
#define DEF_SPEC "FXF
string SymbolsTrade[] = {"AUDCAD "DEF_SPEC ... -não funciona
string SymbolsTrade[] = {"AUDCAD "+DEF_SPEC ... - também não funciona assim
tudo o que recebo é FXF em vez do necessário AUDCADFXF.
Poderia dizer-me como implementar isto?
Primeiro, o preenchimento de uma matriz com enumeração só é possível no âmbito global, pelo que nenhum + funcionará aí, apenas constantes de cordas.
Em segundo lugar, tem uma matriz estática que não é distribuída, enquanto uma matriz dinâmica não pode ser preenchida com uma enumeração.
A forma mais fácil é escrever uma função que distribui e preenche uma matriz dinâmica, pode fazer tudo, adicionar definições a constantes, etc.
Primeiro, o preenchimento de uma matriz com uma enumeração só é possível no âmbito global, pelo que nenhum + funcionará aí, apenas constantes de cordas.
Em segundo lugar, não distribuiu matriz estática, e a matriz dinâmica não pode ser preenchida por enumeração.
A forma mais fácil é escrever uma função que distribui e preenche a matriz dinâmica, pode fazer tudo, adicionar definições com constantes, etc.
Pode também tentar pesquisar todos os pares de moedas existentes em BC/BROKER e analisar as moedas compostas neles existentes.
Depois disso, pode criar um conjunto dinâmico de pares de moedas tendo em conta a adição de quaisquer prefixos.
Tanto quanto me lembro, é uma das opções universais para o MT5.
Primeiro, o preenchimento de uma matriz com uma enumeração só é possível no âmbito global, pelo que nenhum + funcionará aí, apenas constantes de cordas.
Em segundo lugar, não distribuiu matriz estática, e a matriz dinâmica não pode ser preenchida por enumeração.
A forma mais fácil é escrever uma função que irá distribuir e preencher a matriz dinâmica, pode fazer tudo, adicionar definições às constantes, etc.
Em suma, se o entendi correctamente, não se pode criar um conjunto de constantes de cordas estáticas no âmbito global, certo?
É possível ver o código no código fonte. Dois métodos são utilizados para encontrar a divergência:
1. O método bool CSignalMACD::ExtState(int ind) prepara os dados para a pesquisa;
2. O método bool CSignalMACD::CompareMaps(int map,int count,bool minimax,int start) procura um modelo de mercado com os parâmetros especificados.
Se ajudar, aqui estão os comentários aos métodos em russo:
Para o método bool CSignalMACD::ExtState(int ind)
Para o método bool CSignalMACD::CompareMaps(int map,int count,bool minimax,int start)
Tenho também uma pergunta, como especificar a variante de divergência ao criar um Expert Advisor utilizando o sinal MACD? Há várias variantes de sinais no manual.
Como todos já notaram, qualquer sinal pode detectar múltiplos padrões de mercado. Para controlar a utilização de padrões , chamar o método PatternsUsage(int value), onde o valor é o mapa de bit da utilização de padrões (número de bit e número de padrão são os mesmos). Bit é 1 - modelo é utilizado, bit é 0 - modelo não é utilizado (por defeito todos os bits são 1). A numeração dos modelos, bem como dos bits, começa em 0.
Assim, se quiser usar apenas divergências, deve usar PatternsUsage(16);. Porquê 16? 16 é binário 10000b (ou seja, o bit 4 é 1, todos os outros bits são 0). E apenas o modelo 4 "divergência entre o oscilador e o preço".
O único "mas", terá de o fazer "manualmente".
Após a conclusão do Wizard, o código fonte será aberto no editor. Encontre um lugar como este no editor:
e acrescentar uma linha
filter0.PatternsUsage(16);
vai tê-lo:
É tudo por agora. Se tiver alguma dúvida, não hesite em contactar-me.
Como todos já notaram, qualquer sinal pode detectar múltiplos padrões de mercado. Para controlar a utilização de padrões , chamar o método PatternsUsage(int value), onde o valor é um bitmap de utilização de padrões (o número do bit e o número do padrão são os mesmos). Bit é 1 - modelo é utilizado, bit é 0 - modelo não é utilizado (por defeito todos os bits são 1). A numeração dos modelos, bem como os bits começam a partir de 0.
Por isso, se só quiser usar divergência, precisa de usar o PatternsUsage(16);. Porquê 16? 16 é 10000b em binário (ou seja, o bit 4 é 1, os outros bits são 0). E apenas o modelo 4 "divergência entre o oscilador e o preço".
O único "mas", terá de o fazer "manualmente".
Após a conclusão do Wizard, o código fonte será aberto no editor. Encontre um lugar como este no editor:
e acrescentar uma linha
filter0.PatternsUsage(16);
consegue-o:
É tudo por agora. Se tiver alguma dúvida, não hesite em contactar-me.
Obrigado. Funcionou. E há mais perguntas a fazer de imediato. Nesta variante de divergência, que intervalo de tempo entre os topos vizinhos (troughs) é tido em conta?
Tenho um perito com o qual tento lidar com os acontecimentos.
Recebo eventos que não correspondem a acções.
Corresponde exactamente a um clique no gráfico e a um clique de um botão
Um evento controverso id=9(CHARTEVENT_CUSTOM), que é gerado quando, por exemplo, o gráfico é deslocado e há cerca de 10 eventos semelhantes.
O eventoCHARTEVENT_OBJECT_ENDEDIT não foi verificado.
Todo o resto não é claro. Ou a descrição não corresponde ao número do evento ou o evento de criação de um objecto é gerado incorrectamente quando se cria um objecto manualmente.
Em geral, por favor, ajudem.
Tenho um perito com o qual tento lidar com os acontecimentos.
Recebo eventos que não correspondem a acções.
Corresponde exactamente a um clique no gráfico e a um clique de um botão
Um evento controverso id=9(CHARTEVENT_CUSTOM), que é gerado quando, por exemplo, o gráfico é deslocado e há cerca de 10 eventos semelhantes.
O eventoCHARTEVENT_OBJECT_ENDEDIT não foi verificado.
Nem tudo é claro com todo o resto. Ou a descrição não corresponde ao número do evento ou o evento de criação de um objecto é gerado incorrectamente quando se cria o objecto manualmente.
Em suma, por favor, ajudem.
Inicialmente atribui correspondências numéricas às constantes numéricas já atribuídas CHARTEVENT_XXXXXXXXXX...
o problema é este:
é necessário:
O resto não é claro. Ou a descrição não corresponde ao número do evento, ou o evento da criação do objecto, por exemplo, não é gerado correctamente quando o objecto é criado manualmente.
Infelizmente, a sua pergunta não é clara. O que é que está exactamente a correr mal?