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á!
Qualquer pessoa que saiba prescrever corretamente o seguinte no código:
Existe um indicador MACD Histogramm WIS. O histograma é calculado em seu código e barras coloridas, dependendo da direção da linha e do filtro macd em diferentes cores.
int start()
{
int limit,i;
int counted_bars = IndicatorCounted();
if(counted_bars > 0) counted_bars--;
limit = iBars(NULL,0) - counted_bars;
BufferResize(Filter);
BufferResize(Histograma);
for(i = 0; i <= limite; i++)
MACD[i] = iMA(NULL, 0, FastMA, 0, MAMethod, MAAppliedPrice, i) - iMA(NULL, 0, SlowMA, 0, MAMethod, MAAppliedPrice, i);
for(i = 0; i <= limite; i++)
Signal[i] = iMAOnArray(MACD, iBars(NULL,0), SignalMA, 0, MAMethod, i);
for(i = 0; i <= limite; i++)
Histogram[i] = MACD[i] - Signal[i];
CalcFilter(Linha, limite);
for(i = limite; i >= 0; i--)
{
if(Histogram[i] > Histogram[i+1] && Filter[i] > Filter[i+1])
{
HistogramWaitClose[i] = 0.0;
HistogramSell[i] = 0.0;
HistogramBuy[i] = Histogram[i];
}
if(Histogram[i] < Histogram[i+1] && Filter[i] < Filter[i+1])
{
HistogramWaitClose[i] = 0.0;
HistogramSell[i] = Histogram[i];
HistogramBuy[i] = 0.0;
}
if((Histograma[i] >= Histograma[i+1] && Filtro[i] <= Filtro[i+1]) ||| (Histograma[i] <= Histograma[i+1] && Filtro[i] >= Filtro[i+1])
{
HistogramWaitClose[i] = Histogram[i];
HistogramSell[i] = 0.0;
HistogramBuy[i] = 0.0;
}
}
return(0);
}
Estou tentando prescrever no Expert Advisor, uma das condições, a abertura de posições para cima se:
if(Histogram[i] > Histogram[i+1] && Filter[i] > Filter[i+1])
{
HistogramWaitClose[i] = 0.0;
HistogramSell[i] = 0.0;
HistogramBuy[i] = Histogram[i];
mas preciso comparar apenas 2 barras fechadas, ou seja, a primeira e a segunda (zero não tocar), não todas (i-bars), ou seja, preciso comparar a primeira e a segunda barra, e se o gráfico de barras da primeira barra for maior que a segunda e estiver de acordo com os filtros e outras condições da EA, compre, para vender o oposto .... como prescrevê-lo corretamente, por favor, aconselhe, amador aprendiz de chá)
Obrigado
Escreverei um assessor de qualquer complexidade. O principal é ter uma boa idéia. Como você vai usá-lo não me importo: vender - não me importo (não vou pedir dinheiro).
P. S. Se você precisar de um indicador, você tem que me dizer a estratégia na qual você quer usá-lo.
Eu não sei nada sobre programação e sou um principiante.
Talvez este assessor já o tenha feito, em geral:
Com base no princípio do "rollover", o cruzamento de dois EMAs fecha o anterior e abre um novo, os EMAs devem ser variáveis.
Penso que em H1, H4 é bastante relevante.
Talvez tal EA já exista, aqui está como ela funciona:
Com base no princípio do "rollover", o cruzamento de dois EMAs fecha o anterior e abre um novo, os EMAs devem ser variáveis.
Penso que em H1, H4 é bastante relevante.
Olá.
Por favor, faça um simples Expert Advisor que abra um pedido para uma determinada quantidade de pontos e se o preço os ultrapassar e fechar no lado +, o pedido fecha e abre novamente no lado +. Se estiver na posição "menos", inverte para a posição "menos".
Parâmetros a serem definidos - Tamanho do lote e número de pontos a serem passados.
Muito obrigado de antemão.
Cumprimentos ao Dimitriy.
Escreverei um assessor de qualquer complexidade. O principal é ter uma boa idéia. Como você vai usá-lo não me importo: vender - não me importo (não vou pedir dinheiro).
P. S. Se você precisar de um indicador, você tem que me informar sobre a estratégia na qual você quer usá-lo.
Olá Prezados desenvolvedores. Por favor, ajude-me a criar um indicador baseado no indicador SSL_fast_sBar_mtf.
Quero que ele desenhe duas "réguas", uma com valor "Lb" maior e outra com valor menor (ou TIME FREAM maior e menor). Se na barra as cores
de ambos os "governantes" são os mesmos (e no anterior eles eram diferentes), então no início do próximo bar você deve dar o sinal para abrir (colocar a seta).
As setas devem ser desenhadas usando buffers indicadores, e não objetos gráficos. Os dados de ambas as "réguas" são necessários na janela dos parâmetros externos
(para uma maior seleção de seus parâmetros).
http://savepic.ru/1965498.gif
Eu não sei como enviar um link para o indicador. Está na biblioteca da MQL4.com
Boa tarde!
Muito eu peço para fazer um especialista (bem eu não sou um programador) :((.
Parâmetros técnicos:
1) Trabalhamos em um gráfico de velas de 4 horas cruzando duas linhas Movendo Média: um(Vermelho) período 18, método Exponencial, paraFechar preços, respectivamente(Amarelo) período 8, método também Exponencial, para Fechar preços.
2) Tamanho do comércio 1 lote
3) Trabalhamos de linhas cruzadas para linhas cruzadas. Assim que a linhaamarela cruza a linha vermelha(vermelha) no sentido ascendente (norte), a ordem de compra, o segundo cruzamento de linhas, a linha amarela cruza de acordo com a linha vermelha de cima para baixo - fixação da ordem aberta, com abertura simultânea de uma nova ordem de venda, e assim por diante.
4) Um stop loss de 35 pontos é definido para todas as negociações.
O gráfico de 4 horas permite que você evite movimentos desnecessários, ao contrário do gráfico horário, trabalhando com certeza.
Se apenas olharmos para os pares de moedas, a idéia se justifica (sem perdas, em torno de zero na pior das hipóteses), é claro, deve-se levar em conta a tendência e usar o Expert Advisor enquanto se olha para trás. Como exemplo, para EUR/USD, se em 1º de setembro compramos +139 pontos antes de cruzar +115 pontos, então compramos novamente antes de cruzar +1184 pontos em 12 de outubro. Tire a mesma foto em agosto +368 pontos de venda, depois compre venda no mesmo nível sem perdas e +181 pontos abaixo na venda com lucro. Além disso, por exemplo, ouro GOLD(a comissão é de 70 pontos, mas o ponto é de 2,5 dólares por lote) e assim, a partir do dia 31 de agosto, comprar +1789 pontos, vender imediatamente +547 pontos, +4557 pontos comprar, vender nulo, +4328 comprar, vender nulo e até este fim de semana novamente +3636 pontos.
Cumprimentos, Yuriy
Tome como base a Média Móvel padrão fornecida e experimente com ela. Você pode substituir o MA pelo EMA.
Aqui está a descrição completa:
//+------------------------------------------------------------------+
//| Moving Average.mq4 |//| Copyright © 2005, MetaQuotes Software Corp.
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#define MAGICMA 20050610
Lotes duplos externos = 0,1;
duplo máximoRisco externo = 0,02;
duplo fator de redução externo = 3;
período de mudança dupla externa = 12;
duplo MovingShift externo = 6;
//+------------------------------------------------------------------+
//| Calcular posições abertas |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(símbolo de corda)
{
int compra=0,vende=0;
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==falso) break;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
if(OrderType()==OP_BUY) compra++;
if(OrderType()==OP_SELL) vende++;
}
}
//---- volume de pedidos de devolução
if(compra>0) return(compra);
senão devolve(-sells);
}
//+------------------------------------------------------------------+
//| Calcular o tamanho ideal do lote |
//+------------------------------------------------------------------+
duplo LotsOptimized()
{
lote duplo=Lotes;
int orders=HistoryTotal(); // histórico total de ordens
int losses=0; // número de ordens de perdas sem intervalo
//---- selecione o tamanho do lote
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- calcule o número de ordens de perdas sem uma pausa
if(DiminaseFactor>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==falso) { Print("Erro na história!"); break; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continua;
//----
if(OrderProfit()>0) quebra;
if(OrderProfit()<0) perdas++;
}
if(perdas>1) lote=NormalizarDuplo(lote-lot*losses/DecreaseFactor,1);
}
//---- tamanho do lote de retorno
if(lote<0,1) lote=0,1;
retorno(lote);
}
//+------------------------------------------------------------------+
//| Verifique as condições de pedidos em aberto |
//+------------------------------------------------------------------+
CheckForOpen()
{
dupla mãe;
int res;
//---- go trading only for first tiks of new bar
if(Volume[0]>1) voltar;
//---- get Moving Average
ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---- condições de venda
if(Abrir[1]>ma && Fechar[1]<ma)
{
res=OrderSend(Symbol(),OP_SELLL,LotsOptimized(),Bid,3,0,0,",MAGICMA,0,Red);
retornar;
}
//---- condições de compra
if(Abrir[1]<ma && Fechar[1]>ma)
{
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,",MAGICMA,0,Blue);
retornar;
}
//----
}
//+------------------------------------------------------------------+
//| Verifique as condições de fechamento do pedido |
//+------------------------------------------------------------------+
verificação nula CheckForClose()
{
dupla mãe;
//---- go trading only for first tiks of new bar
if(Volume[0]>1) voltar;
//---- get Moving Average
ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==falso) break;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continua;
//---- check order type
if(OrderType()==OP_BUY)
{
if(Abrir[1]>ma && Fechar[1]<ma) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
pausa;
}
if(OrderType()==OP_SELL)
{
if(Open[1]<ma && Close[1]>ma) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
pausa;
}
}
//----
}
//+------------------------------------------------------------------+
//| Função Start |
//+------------------------------------------------------------------+
início nulo()
{
//---- verificação de histórico e comércio
if(Bars<100 || IsTradeAllowed()==falso) retorna;
//---- calcular pedidos em aberto pelo símbolo atual
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
senão CheckForClose();
//----
}
//+------------------------------------------------------------------+
Como posso mudá-lo aqui para que funcione para mim, eu não entendo! Eu só quero 50EMA e 100EMA e um bip em cada travessia!!!