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
...
Eu acho (já que não consigo ver sua EA que escreve os valores no arquivo csv) que está faltando um FileFlush(). Nos casos em que você deseja fazer alterações no arquivo acessível por "outros" imediatamente sem fechar o arquivo (que implicitamente usa o flush ) você deve sempre lavar as alterações no disco
cumprimentos
mladen
Hi,
Estou escrevendo uma EA que está trabalhando com a CSV-Files.
Para testes, coloquei meus arquivos CSV na seguinte pasta:
/tester/arquivos
Aqui está apenas uma pequena parte da minha EA:
int handle = 0;
int Long = 0;
handle=FileOpen("LongMarket.csv",FILE_CSV|FILE_READ,';');
if (handle > 0)
{
Long= FileReadNumber(handle);
FileClose(handle);
}
Print("LongMarket = ", Long);
Print("Long handle = ", handle);No meu EA eu leio os arquivos CSV e depois escrevo alguns números inteiros.
Agora, quando faço meu teste e leio no diário as mensagens "impressas", muitas vezes recebo inteiros antigos que não estão mais escritos nos CSV-Files!
Por exemplo:
Primeiro, há o 3 escrito e meu EA está funcionando e escreve o 0 no arquivo,
Eu só consigo ver os 3 nesse CSV-File!!
Quando eu limpar aquele CSV-File e colocar um novo CSV-File com 3 naquele " /tester/files"-Folder, eu só posso ler o 0 do teste antes!!!! Mas não consigo encontrar, onde a EA lê o 0!!!
Eu estou ficando louco!!!!!
Espero que você possa entender minha pergunta e me dê uma dica!!Alguém pode me ajudar a acrescentar um aviso?
Eu gostaria de adicionar uma função de alarme deste indicador, alarme colorido. Eu tentei por muito tempo, usar o "se alarme", mas nunca sem sucesso. Alguém pode me ajudar? Muito obrigado! ~ Meu inglês não é bom tão bom.
#janela_do_indicador de propriedade
#property indicator_buffers 4
#Indicador de propriedade_color1 ForestGreen
#indicador de propriedade_color2 Vermelho
#indicador de propriedade_color3 Preto
#indicador de propriedade_color4 Preto
//---- parâmetros de entrada
externo int FastClosePeriod=13;
externo int FastCloseShift=0;
externo int FastOpenPeriod=34;
extern int FastOpenShift=0;
externo int SlowClosePeriod=34;
extern int SlowCloseShift=0;
externo int SlowOpenPeriod=62;
Exterior int SlowOpenShift=0;
//---- buffers indicadores
duplo ExtBlueBuffer[];
duplo ExtRedBuffer[];
duplo ExtDarkVioletBuffer[];
duplo ExtBlackBuffer[];
//+------------------------------------------------------------------+
//| Função de inicialização do indicador personalizado |
//+------------------------------------------------------------------+
int init()
{
//---- muda de linha ao desenhar
SetIndexShift(0,FastCloseShift);
SetIndexShift(1,FastOpenShift);
SetIndexShift(2,SlowCloseShift);
SetIndexShift(3,SlowOpenShift);
//---- primeiras posições puladas ao desenhar
SetIndexDrawBegin(0,FastCloseShift+FastClosePeriod);
SetIndexDrawBegin(1,FastOpenShift+FastOpenPeriod);
SetIndexDrawBegin(2,SlowCloseShift+SlowClosePeriod);
SetIndexDrawBegin(3,SlowOpenShift+SlowOpenPeriod);
//---- 3 indicadores de mapeamento de buffers
SetIndexBuffer(0,ExtBlueBuffer);
SetIndexBuffer(1,ExtRedBuffer);
SetIndexBuffer(2,ExtDarkVioletBuffer);
SetIndexBuffer(3,ExtBlackBuffer);
//---- definições de desenho
SetIndexStyle(0,DRAW_HISTOGRAM,0,2);
SetIndexStyle(1,DRAW_HISTOGRAM,0,2);
SetIndexStyle(2,DRAW_NONE,0,2);
SetEstiloIndex(3,DRAW_NONE,0,2);
//---- etiquetas de índice
SetIndexLabel(0, "FastClose");
SetIndexLabel(1, "FastOpen");
SetIndexLabel(2, "SlowClose");
SetIndexLabel(3, "SlowOpen");
//---- inicialização feita
retorno(0);
}
//+------------------------------------------------------------------+
//| 9Squared Trader |
//+------------------------------------------------------------------+
int start()
{
limite int;
int counted_bars=IndicatorCounted();
//---- verificação de possíveis erros
if(counted_bars<0) return(-1);
//---- última barra contada será contada novamente
if(counted_bars>0) counted_bars--;
limite=barras_contadas_à_barras;
//---- laço principal
for(int i=0; i<limit; i++)
{
//---- ma_shift set to 0 porque SetIndexShift chamado abowe
ExtBlueBuffer=iMA(NULL,0,FastClosePeriod,0,MODE_EMA,PRICE_CLOSE,i);
ExtRedBuffer=iMA(NULL,0,FastOpenPeriod,0,MODE_EMA,PRICE_OPEN,i);
ExtDarkVioletBuffer=iMA(NULL,0,SlowClosePeriod,0,MODE_EMA,PRICE_OPEN,i);
ExtBlackBuffer=iMA(NULL,0,SlowOpenPeriod,0,MODE_EMA,PRICE_MEDIAN,i);
}
//---- feito
retorno(0);
Aqui está. Fiz isto muito rápido, e sim, pode ser feito.
Veja o exemplo anexo.mq4 para exemplo de codificação.
Também está incluído um screen shot com comentários, para que você possa ver que os valores RSI estão sendo salvos tick por tick na matriz.Olá wolfe,
Muito obrigado por seu tempo e esforços. Vou tentar isto
cumprimentos,
MSV
Faixa de Bollinger
Hi,
Alguém pode me ajudar na Fórmula Bollinger Band (20period dev 2 on close) em planilha Excel. Agradecemos antecipadamente.
Olá pessoal!!
Preciso abrir apenas "um pedido de compra e venda "por dia" no meu EA, por favor, como é o código para fazer isso?
Olá pessoal! Preciso abrir apenas "uma compra e venda "por dia" no meu EA, por favor, como é o código para fazer isso?
Acredito que você precisa fazer um loop através de todas as ordens fechadas e verificar cada uma por seu símbolo e tempo de fechamento... pegue aquele que corresponde ao símbolo() e tenha o último tempo de fechamento. depois adicione 24 horas e use-o em uma variável para testar o tempo atual e abrir o comércio quando chegar à última ordem + 24 horas
Ou uma maneira mais simples de fazê-lo seria usar apenas a função TimeDayOfYear e verificar a última ordem fechada com o símbolo e o número mágico correspondentes. Basta ter certeza de que não é o mesmo dia do ano de hoje.
Dê uma olhada no arquivo de ajuda para definição e uso da função TimeDayOfYear
Cumprimentos
Lux