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
Jo
Algo parecido com isto :
Olá,
Como posso codificar um alerta em um indicador ?
Por exemplo, como alertar quando MACD[0]>MACD[1]?
Obrigado pela ajuda.
JoJo
Algo parecido com isto :
Obrigado Mladen, mas onde ?
Eu tinha as mensagens :
Red -If_função não definida
Espera-se o Red-Alert_Semicolon
------------------------------------------------------------------------------------------------------------------
#janela_indicadora de propriedade_separarate_window
#property indicator_buffers 2
#indicador de propriedade_color1 Prata
#indicador de propriedade_color2 Vermelho
#largura_do_indicador de propriedade1 2
//---- parâmetros indicadores
externo int FastEMA=12;
externo int SlowEMA=26;
extern int SignalSMA=9;
//---- buffers indicadores
MacdBuffer duplo[];
double SignalBuffer[];
//+------------------------------------------------------------------+
//| Função de inicialização do indicador personalizado |
//+------------------------------------------------------------------+
int init()
{
//---- definições de desenho
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);
SetIndexDrawBegin(1,SignalSMA);
IndicatorDigits(Dígitos+1);
//---- indicator buffers mapping
SetIndexBuffer(0,MacdBuffer);
SetIndexBuffer(1,SignalBuffer);
//---- nome para DataWindow e subwindow label do indicador
IndicatorShortName("MACD("+FastEMA+", "+SlowEMA+", "+SignalSMA+")");
SetIndexLabel(0, "MACD");
SetIndexLabel(1, "Signal");
//---- inicialização feita
retorno(0);
}
//+------------------------------------------------------------------+
//| Médias móveis Convergência/Divergência |
//+------------------------------------------------------------------+
int start()
{
limite int;
int counted_bars=IndicatorCounted();
//---- última barra contada será recontada
if(counted_bars>0) counted_bars--;
limite=barras_contadas_à_barras;
//---- macd counted in the 1-st buffer
for(int i=0; i<limit; i++)
MacdBuffer=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- linha de sinal contada no buffer 2-nd
para(i=0; i<limite; i++)
SignalBuffer=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- feito
retorno(0);
}
//+--------------------------------------------
Antes do último retorno em seu código (dessa forma você garante que ele será executado somente quando todo o resto do processamento estiver concluído)
Obrigado Mladen, mas onde ?
Eu tinha as mensagens :
Red -If_função não definida
Espera-se o Red-Alert_Semicolon
------------------------------------------------------------------------------------------------------------------
#janela_indicadora de propriedade_separarate_window
#property indicator_buffers 2
#indicador de propriedade_color1 Prata
#indicador de propriedade_color2 Vermelho
#largura_do_indicador de propriedade1 2
//---- parâmetros indicadores
externo int FastEMA=12;
externo int SlowEMA=26;
extern int SignalSMA=9;
//---- buffers indicadores
MacdBuffer duplo[];
double SignalBuffer[];
//+------------------------------------------------------------------+
//| Função de inicialização do indicador personalizado |
//+------------------------------------------------------------------+
int init()
{
//---- definições de desenho
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);
SetIndexDrawBegin(1,SignalSMA);
IndicatorDigits(Dígitos+1);
//---- indicator buffers mapping
SetIndexBuffer(0,MacdBuffer);
SetIndexBuffer(1,SignalBuffer);
//---- nome para DataWindow e subwindow label do indicador
IndicatorShortName("MACD("+FastEMA+", "+SlowEMA+", "+SignalSMA+")");
SetIndexLabel(0, "MACD");
SetIndexLabel(1, "Signal");
//---- inicialização feita
retorno(0);
}
//+------------------------------------------------------------------+
//| Médias móveis Convergência/Divergência |
//+------------------------------------------------------------------+
int start()
{
limite int;
int counted_bars=IndicatorCounted();
//---- última barra contada será recontada
if(counted_bars>0) counted_bars--;
limite=barras_contadas_à_barras;
//---- macd counted in the 1-st buffer
for(int i=0; i<limit; i++)
MacdBuffer=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- linha de sinal contada no buffer 2-nd
para(i=0; i<limite; i++)
SignalBuffer=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- feito
retorno(0);
}
//+--------------------------------------------Pls corrige erro de divisão zero ao usar o tempo como "0".
pivot_crazy.mq4Pode alguém corrigir o erro de divisão zero ao usar o período de tempo como "0"?
Obrigado.
Experimente. Está corrigido agora
pivot_crazy.mq4Corrigir o erro de divisão zero ao usar o prazo como "0 "Obrigado.
Obrigado u mladen funciona como um encanto
Experimente. Está corrigido agora
obrigado u mladen funciona como um encanto
preciso de ajuda com esta ea sua função de martingale, mas não funciona de forma propícia, por exemplo, se uma posição fechada em uma função de perda de martingale deve multiplicar os lotes da última posição fechada em uma perda, mas há um erro no código que faz com que o martingale para trabalhar de forma propícia aqui sua eauniversalmacrossea.mq4
Essa forma de abrir uma nova ordem após uma perda não é um martingale + martingale trabalha com posições abertas
preciso de ajuda com esta ea sua função de martingale, mas não funciona de forma propícia, por exemplo, se uma posição fechada em uma função de perda de martingale deve multiplicar os lotes da última posição fechada em uma perda, mas há um erro no código que faz com que o martingale para trabalhar de forma propícia aqui sua eauniversalmacrossea.mq4
Como posso calcular meus lotes, quando quero negociar com cada comércio f.e. 5% do meu dinheiro?
sunshineh,
Tente usar esta função:
{
RefreshRates();
double lots = 0;
double MinLots = NormalizeDouble(MarketInfo(symbol,MODE_MINLOT) ,2);
double MaxLots = NormalizeDouble(MarketInfo(symbol,MODE_MAXLOT) ,2);
double LotStep = NormalizeDouble(MarketInfo(symbol,MODE_LOTSTEP),2);
int LotDigit = 2;
if(MarketInfo(symbol,MODE_DIGITS)==3 || MarketInfo(symbol,MODE_DIGITS)==5) stopLossDistance *= 10.0;
//
//
//
//
//
if (LotStep==1) LotDigit=0;
if (LotStep==0.1) LotDigit=1;
if (LotStep==0.01) LotDigit=2;
if (Risk>0)
{
if (AccountBalance()>AccountFreeMargin())
lots = NormalizeDouble(AccountFreeMargin()*(Risk/100.0)/(stopLossDistance*MarketInfo(symbol,MODE_TICKVALUE)),LotDigit);
else lots = NormalizeDouble(AccountBalance() *(Risk/100.0)/(stopLossDistance*MarketInfo(symbol,MODE_TICKVALUE)),LotDigit);
}
//
//
//
//
//
lots = NormalizeDouble(NormalizeDouble(lots/LotStep,0)*LotStep,LotDigit);
lots = MathMax(MathMin(lots,MaxLots),MinLots);
return(lots);
}Como posso calcular meus lotes, quando quero negociar com cada comércio f.e. 5% do meu dinheiro?