[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 324
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
Olá a todos!
Eu estudei MQL4 Expert Advisor durante um mês e decidi escrever um Expert Advisor. Eu não queria escrever um novo por falta de experiência e decidi usar o modelo tradingexpert.mq4 do livro.
A essência da estratégia é a seguinte: um sistema de três barras de "Larry Williams" para altos e baixos, traçar dois EMAs de três dias para altos e baixos, vender
para os altos e compra para os baixos.
No modelo, na seção de variáveis globais eu removi a linha externa dupla Rastvor =28,0; (na verdade não é necessário) e também a removi do critério comercial.
Mudou os valores de MA para 3 em variáveis globais:
extern int Período_MA_1= 3; // Período MA 1
extern int Período_MA_2= 3; // Período MA 2
Na seção de critérios comerciais, foi:
//--------------------------------------------------------------- 5 --
// Critérios comerciais
MA_1_t=iMA(NULL,0,Period_MA_1,0,MODE_EMA,PRICE_HIGH,0); // MA_1
MA_2_t=iMA(NULL,0,Period_MA_2,0,MODE_EMA,PRICE_LOW,0); // MA_2
if (PRICE_HIGH * Ponto >= MA_1_t * Ponto)
{
Opn_S=true;
Cls_B=verdadeiro;
}
if (PRICE_LOW * Ponto <= MA_2_t * Ponto)
{
Opn_B=true; //critério aberto. Comprar
Cls_S=true; // Fechar Critério. Sell
}
//---------------------------------------------------------------
Agora o ponto crucial do problema: o sistema só abre ordens de venda, mas não quer comprar. Qual pode ser o erro?
É bem possível que haja erros em algum outro lugar, por favor não julgue severamente, mas ajude com conselhos)
//--------------------------------------------------------------- 5 --
// Critérios comerciais
MA_1_t=iMA(NULL,0,Period_MA_1,0,MODE_EMA,PRICE_HIGH,0); // MA_1
MA_2_t=iMA(NULL,0,Period_MA_2,0,MODE_EMA,PRICE_LOW,0); // MA_2
if (PRICE_HIGH * Ponto >= MA_1_t * Ponto)
{
Opn_S=true;
Cls_B=verdadeiro;
}
if (PRICE_LOW * Ponto <= MA_2_t * Ponto)
{
Opn_B=true; //critério aberto. Comprar
Cls_S=true; // Fechar Critério. Sell
}
//---------------------------------------------------------------
Agora o ponto crucial do problema: o sistema só abre ordens de venda, mas não quer comprar. Qual pode ser o erro?
É bem possível que eu tenha erros em outro lugar. Por favor, não julgue, mas me ajude com conselhos).
O que é isto? PRICE_LOW e PRICE_HIGH. São constantes inteiras que têm valor 0 ou 1, até 6.
Você deve usar iHigh(Símbolo(),Period(),i) para obter o valor BID máximo na barra i, e iLow(Símbolo(),Period(),i) para obter o valor BID mínimo na barra i.
Se cair sobre a barra atual então: se ( iHigh(Symbol(),Period(),0) >= MA_1_t) E não há necessidade de multiplicar MA por Ponto.
Boa tarde a todos!
Por favor, diga-me qual é o problema.
Eu anexei um indicador de volume (Volume) ao indicador padrão Awesome.
Quero organizar o cálculo do volume total de ondas (contado do preço baixo para o alto e corresponde ao valor mínimo e máximo do Awesome). Veja fig. 1.
Qual é o erro, os valores não são contados.
Abaixo está o próprio código.
O que é isto? PRICE_LOW e PRICE_HIGH. Elas são constantes inteiras com valor 0 ou 1, até 6.
Você deve usar iHigh(Symbol(),Period(),i) para obter o valor BID máximo na barra i, e iLow(Symbol(),Period(),i) para obter o valor BID mínimo na barra i.
Se cair sobre a barra atual, então: se ( iHigh(Symbol(),Period(),0) >= MA_1_t) E não há necessidade de multiplicar MA por Ponto.
Rapazes, alguém me diga o que há de errado com o código plz!
Rapazes, alguém me diga o que há de errado com o código plz!
Eu não entendo bem. Mas não há problemas com a exibição do volume. Há problemas com o cálculo de volumes. Em algum lugar por aqui.
Boa tarde!
Minha pergunta será um pouco fora de tópico.
Você pode me dizer se é possível encontrar em algum lugar o fatiamento de formas de TA como arquivos CSV? Posso usar txt, xls ou qualquer outro formato que possa ser processado de forma programática.
Há exemplos de figuras de AT em vários artigos de AT, livros didáticos, mas é claro, como imagens comuns. Alguém tem mais ou menos grandes conjuntos de símbolos TA salvos como uma fatia da história de algum par de moedas nos períodos H1-H4, digamos?
Eu pesquisei no Google, não encontrei nenhum. Naturalmente, podemos percorrer manualmente a história, marcar as formas, exportar este pedaço de história como .csv; repetir o número necessário de vezes, coletar a base das formas no final. Mas se alguém já fez isso, gostaria de economizar tempo.
Obrigado antecipadamente :)
Por que você precisa das formas como arquivos CSV? Escreva uma biblioteca de formas... Escreva-os você mesmo, para que possa compreendê-los, não peça emprestado o de outra pessoa. Muito não significa melhor!
Eu não entendo bem. Mas não há problema com a exibição de volumes. Há um problema com a contagem de volume. Em algum lugar por aqui.
1. A matriz precisa ser colocada - ou seja, a memória alocada. Caso contrário, simplesmente não há lugar para armazenar os valores ;).
2. Quando você receber um novo tick, sua matriz colocada mesmo será reposicionada/reinicializada. Isto tem a ver com o escopo. A matriz deve ser do tipo "estática" para evitar que isso aconteça.
Leia algo sobre os fundamentos da programação.
HZ O problema com a contagem é onde eu apontei os erros de uso da matriz para vocês.
1. Uma matriz deve ser localizada, em outras palavras, a memória deve ser alocada. Caso contrário, não há lugar para armazenar valores ;).
2. Quando você receber um novo tick, sua matriz colocada mesmo será reposicionada/reinicializada. Isto tem a ver com o escopo. A matriz deve ser do tipo "estática" para evitar que isso aconteça.
Leia algo sobre os fundamentos da programação.
HZ O problema com a contagem é onde eu tenho apontado erros no uso da matriz para vocês.
Isto é, oVol_Arr[] deve ser inicializado como uma matriz global, como eu o entendo.
A questão é, naturalmente, uma questão nula, MAS.
1. Por que então os volumes são exibidos corretamente no indicador.
2. Ao fazer o cálculo, eu acessoAOBuffer3[] e nãoVol_Arr[].
Obrigado!