Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Como resolver a falta de infra-estrutura de dados de tipo misto
Olá, pessoal,
Tenho muitas mensagens particulares me pedindo ajuda com algumas peças de código.
Aqui você pode postar suas perguntas relacionadas à MQL4, e eu farei o meu melhor para respondê-las.Olá,
Eu gostaria de usar seu convite para colocar o seguinte problema.
Qual seria a melhor solução para armazenar e ordenar uma lista de símbolos com base em suas mudanças de preço, já que não se pode usar uma infra-estrutura de dados de tipo misto como: EURUSD->1,29, USDGBP->0,22 ?
Não há enumeração e não há estruturas de dados de tipo misto que possam conter uma string e um valor duplo relacionado em mql4. As soluções que eu posso pensar é usar um arquivo, mas isso exigiria uma atividade quase constante de leitura e escrita em disco. Ou usar três arrays; 1 para a lista de símbolos, 1 para o armazenamento e rastreamento dos valores dos locais de índice e 1 para os valores reais.
Parece que é preciso codificar um problema muito básico (simples). A única coisa que eu gostaria é comparar todos os pares de euros uns com os outros para ter uma força relativa. Como você resolveria isto, que infra-estrutura de dados você recomendaria?
Obrigado por quaisquer respostas ou instruções a este novato!
Bibberpool
Busca de força relativa e indicadores de correlação
Olá,
Qual seria a melhor solução para armazenar e ordenar uma lista de símbolos com base em suas mudanças de preço, já que não se pode usar uma infra-estrutura de dados de tipo misto como: EURUSD->1,29, USDGBP->0,22 ?
...
Parece que se tem que codificar um problema muito básico (simples). A única coisa que eu gostaria é comparar todos os pares de euros uns com os outros para ter uma força relativa. Como você resolveria isto, que infra-estrutura de dados você recomendaria?
Obrigado por qualquer resposta ou orientação a este novato! BibberpoolOi Bibberpool,
Pesquise neste site do TSD Forex para obter indicadores de Força Relativa e Indicadores de Correlação...
Estes tipos de indicadores são projetados para analisar diferentes pares e preços e seus pontos fortes relativos.
Você pode encontrar bons exemplos para o que você quer fazer.
Espero que isto ajude,
Robert
Obrigado por sua resposta
Olá Bibberpool,
Pesquise neste site do TSD Forex para obter indicadores de Força Relativa e Indicadores de Correlação...
Estes tipos de indicadores são projetados para analisar diferentes pares e preços e seus pontos fortes relativos.
Você pode encontrar bons exemplos para o que você quer fazer.
Espero que isto ajude,
RobertOlá, obrigado por sua resposta e certamente vou pesquisar os fios sugeridos. No entanto, há muito código em volta.
Enquanto isso, fiz um pequeno protótipo em C. Apenas fiz um tipo de inserção básica, já que os dados consistem apenas de pequenos conjuntos e atualizei essa rotina para atualizar uma matriz de caracteres de acordo.
Vou (copiar/colar) transportá-lo para meu primeiro programa mql4 no final desta semana. Aqui está o código talvez seja útil para outros ou alguém quer comentar sobre ele para criar algo melhor.
#include
int main(void) {
int max = 5;
int array[5] = { 3, 5, 2, 1, 4 };
char *symbl[5] = { "EURUSD", "EURGBP", "EURJPY", "EURCHF", "EURCAD" };
int idx = 0;
int swp = 0;
int tmp = 0;
char *tmpsymb = NULL;
printf("--- before\n");
for(idx = 0; idx <= max - 1; idx++) {
printf("%d - %s\n", array, symbl);
}
for(idx = 1 ; idx <= max - 1; idx++) {
swp = idx;
while(swp > 0 && array[swp] < array[swp - 1]) {
tmp = array[swp];
tmpsymb = symbl[swp];
array[swp] = array[swp - 1];
symbl[swp] = symbl[swp - 1];
array[swp - 1] = tmp;
symbl[swp - 1] = tmpsymb;
swp--;
}
}
printf("--- after\n");
for(idx = 0; idx <= max - 1; idx++) {
printf("%d - %s\n", array, symbl);
}
return 0;
}
o programa deve ser impresso:
--- antes de
3 - EURUSD
5 - EURGBP
2 - EURJPY
1 - EURCHF
4 - EURCAD
--- depois de
1 - EURCHF
2 - EURJPY
3 - EURUSD
4 - EURCAD
5 - EURGBP
À procura de índios do autor Kravchuk
Olá Comunidade,
Procuro indies do autor Kravchuk, que projeta indies para venda. Eu estava disposto a comprar, mas não podemos recompilar na forma de pagamento (não no valor!?). Alguém tem seus índios ft.dejavu, ft .rainbow,barstatline,diver, linerenko? Agradecia sua ajuda. Obrigado.
Olá Comunidade, estou procurando indies do autor Kravchuk, que projeta indies para venda. Eu estava disposto a compraru mas não podemos recompilar na forma de pagamento (não no valor!?). Alguém tem seus indies ft.dejavu, ft .rainbow,barstatline,diver,linerenko? Agradecia sua ajuda. Obrigado.
Olá bershk,
Se seu pedido ainda não estiver obsoleto, podemos ajudar aqui - trabalhamos com alguns destes indicadores.
Observe que você deve comprar licença do autor e nós não fornecemos nenhum material descompilado ou obtido ilegalmente.
Se você estiver interessado em comprar - aqui estão os preços atuais do autor:
Dejavu - $20; Rainbow - $15; Barstatline - $10; Diver - $20; LineRenko - $15.
Se você precisar de ajuda para comprá-los, escreva-nos para info@raitsoft.com, nós ajudaremos a comprar a licença sem nenhuma comissão.
amigos do hallo ...................
tenho começado a aprender a programar em mql4, e para começar iam analayzing idicators e ea .
eu tenho o indicador "daily_close _line" e olhei para o código e acabei com estas linhas de código que não tenho idéia do que estão fazendo e como funcionam.
Que o mesmo, por favor, dêem uma olhada no código e me digam o que está acontecendo.
agradeço antecipadamente um saque.
eran
//* my_DailyOpen_indicator
//*
//* Revision 1.1 2005/11/13 Midnite
//* Initial DailyOpen indicator
//* based pm
//*
#property copyright "Midnite"
#property link "me@home.net"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
#property indicator_style1 2
#property indicator_width1 1
double TodayOpenBuffer[];
extern int TimeZoneOfData= 0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,TodayOpenBuffer);
SetIndexLabel(0,"Open");
SetIndexEmptyValue(0,0.0);
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int lastbar;
int counted_bars= IndicatorCounted();
if (counted_bars>0) counted_bars--;
lastbar = Bars-counted_bars;
DailyOpen(0,lastbar);
return (0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int DailyOpen(int offset, int lastbar)
{
int shift;
int tzdiffsec= TimeZoneOfData * 3600;
double barsper30= 1.0*PERIOD_M30/Period();
bool ShowDailyOpenLevel= True;//<<<<---------- thise line-------------------------------
// lastbar+= barsperday+2; // make sure we catch the daily open
lastbar= MathMin(Bars-20*barsper30-1, lastbar);//<<<<-------------------thise line-----------------------
for(shift=lastbar;shift>=offset;shift--){
TodayOpenBuffer[shift]= 0;
if (ShowDailyOpenLevel){
if(TimeDay(Time[shift]-tzdiffsec) != TimeDay(Time[shift+1]-tzdiffsec)){ // day change
TodayOpenBuffer[shift]= Open[shift];
TodayOpenBuffer[shift+1]= 0; // avoid stairs in the line
}
else{
TodayOpenBuffer[shift]= TodayOpenBuffer[shift+1];
}
}
}
return(0);
}ERAN123
Ele faz o seguinte: encontra o preço diário aberto (levando em conta o TimeZoneOfData como turno de fuso horário) e traça essa linha através desse dia. Aqui está uma imagem na qual é fácil ver como ele desenha o mesmo preço aberto diário ao longo do dia:
tenho começado a aprender a programar em mql4, e para começar iam analayzing idicators e ea .
Eu vi o indicador "daily_close _line" e olhei para o código e acabei com estas linhas de código que eu não tenho idéia do que eles estão fazendo e como eles funcionam.
Que o mesmo, por favor, dê uma olhada no código e me diga o que está acontecendo.
agradeço antecipadamente um saque.
eran
//* my_DailyOpen_indicator
//*
//* Revision 1.1 2005/11/13 Midnite
//* Initial DailyOpen indicator
//* based pm
//*
#property copyright "Midnite"
#property link "me@home.net"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
#property indicator_style1 2
#property indicator_width1 1
double TodayOpenBuffer[];
extern int TimeZoneOfData= 0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,TodayOpenBuffer);
SetIndexLabel(0,"Open");
SetIndexEmptyValue(0,0.0);
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int lastbar;
int counted_bars= IndicatorCounted();
if (counted_bars>0) counted_bars--;
lastbar = Bars-counted_bars;
DailyOpen(0,lastbar);
return (0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int DailyOpen(int offset, int lastbar)
{
int shift;
int tzdiffsec= TimeZoneOfData * 3600;
double barsper30= 1.0*PERIOD_M30/Period();
bool ShowDailyOpenLevel= True;//<<<<---------- thise line-------------------------------
// lastbar+= barsperday+2; // make sure we catch the daily open
lastbar= MathMin(Bars-20*barsper30-1, lastbar);//<<<<-------------------thise line-----------------------
for(shift=lastbar;shift>=offset;shift--){
TodayOpenBuffer[shift]= 0;
if (ShowDailyOpenLevel){
if(TimeDay(Time[shift]-tzdiffsec) != TimeDay(Time[shift+1]-tzdiffsec)){ // day change
TodayOpenBuffer[shift]= Open[shift];
TodayOpenBuffer[shift+1]= 0; // avoid stairs in the line
}
else{
TodayOpenBuffer[shift]= TodayOpenBuffer[shift+1];
}
}
}
return(0);
}ERAN123
Ele faz o seguinte: encontra o preço diário aberto (levando em conta o TimeZoneOfData como turno de fuso horário) e traça essa linha através desse dia. Aqui está uma imagem na qual é fácil ver como ele desenha o mesmo preço aberto diariamente ao longo do dia:
Desculpe-me por esta linha:
barsper30= 1,0*PERIOD_M30/Período();
e esta também.
lastbar= MathMin(Bars-20*barsper30-1, lastbar);
para que as linhas "20" e "-1" e como as 2 linhas funcionam juntas?
obrigado por um saque.
Originalmente escreveu outra coisa.
Esqueça essas linhas : elas estão, por alguma razão, tentando limitar o início onde os valores começam a ser calculados (e isso deve ser a algumas horas da barra mais antiga no gráfico). O que o codificador queria alcançar com isso talvez só ele saiba
sory i ment thise line :
barsper30= 1,0*PERIOD_M30/Período();
e esta também.
lastbar= MathMin(Bars-20*barsper30-1, lastbar);
para que as linhas "20" e "-1" e como as 2 linhas funcionam juntas?
obrigado por um saque.graças a um saque meu amigo ..... você me ajudou