Rapazes, vocês podem me dar uma dica? Este site tem um roteiro chamado "SendOrderMultiLock". Estou interessado em saber se pode ser feito para ligar em um determinado momento?
Desde que você tomou a iniciativa, vamos tentar elaborar um código que nos sinalizaria a cada minuto com informações sobre o preço de abertura de uma vela de um minuto em um gráfico de cinco minutos (com a possibilidade de trabalhar em um testador). Eu proponho minha própria variante:
// функция записывает в массив result[] цены открытия минутных баров // внутри бара с индексом shift текущего таймфрейма. Возвращаемое значение - количество соответствующих минутных баров// int M1_OpenPrices(int shift, double &result[])
{
int n=0;
ArrayResize(result,n);
int sh, sh1 = iBarShift(0, PERIOD_M1, Time[shift]);
for(sh=sh1;sh>=0;sh--)
{
if(iBarShift(0, 0, iTime(0,PERIOD_M1,sh))!=shift) break;
n++;
ArrayResize(result,n);
result[n-1] = iOpen(Symbol(),PERIOD_M1,sh1);
}
return(n);
}
Quem sabe fazer com que a cor das linhas de lucro seja diferente na tabela da cor de stop loss automaticamente? e como fazer um ícone aparecer na tabela no local onde o pedido é feito?
Ajude-me a entender. Eu construo o MACD na barra anterior (i+1). Eu encontro valores máximos e mínimos visíveis na janela do gráfico MACD. Eu coloco em Comentário valores máximos, mínimos e atuais das linhas principal e de sinal. Alguém pode me ajudar a descobrir isso.
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_width1 2
//--- buffers
double Macd1Buffer[];
double Signal1Buffer[];
//--- for one bar
datetime last;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,Macd1Buffer);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,Signal1Buffer);
IndicatorDigits(Digits+1);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
Comment("");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
if(last>=Time[0]) return;
double max_M1=-0.01,min_M1=0.01,
max_S1=-0.01,min_S1=0.01,
max1=-0.01,min1=0.01;
int bars_counted=WindowBarsPerChart()-1,
limit;
limit=bars_counted;
//---- macd counted in the 1-st buffer
for( int i=0; i<limit; i++)
{
Macd1Buffer[i]=iMA(NULL,0,6,0,MODE_EMA,PRICE_CLOSE,i+1)-iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i+1);
max_M1=MathMax(Macd1Buffer[i],max_M1);
min_M1=MathMin(Macd1Buffer[i],min_M1);
}
//---- macd counted in the 2-nd buffer
for( i=0; i<limit; i++)
{
Signal1Buffer[i]=iMAOnArray(Macd1Buffer,Bars,5,0,MODE_SMA,i);
max_S1=MathMax(Signal1Buffer[i],max_S1);
min_S1=MathMin(Signal1Buffer[i],min_S1);
}
max1=MathMax(max_M1,max_S1);
min1=MathMin(min_M1,min_S1);
Comment( "\n"," Баров = ",WindowBarsPerChart()-1,
"\n"," max1 = ",max1,
"\n"," min1 = ",min1,
"\n"," Macd1Buffer = ",Macd1Buffer[i],
"\n"," Signal1Buffer = ",Signal1Buffer[i]);
last=Time[0];
//----
return(0);
}
//+------------------------------------------------------------------+
Ajude-me a entender. Eu construo o MACD na barra anterior (i+1). Eu encontro valores máximos e mínimos visíveis na janela do gráfico MACD. Eu coloco em Comentário valores máximos, mínimos e atuais das linhas principal e de sinal. Alguém pode me ajudar a descobrir isso.
O tipo de dado duplo é impresso com 4 dígitos decimais após o ponto. Para emitir números com maior precisão, você deve usar a função DoubleToStr().
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Desde que você tomou a iniciativa, vamos tentar elaborar um código que nos sinalizaria a cada minuto com informações sobre o preço de abertura de uma vela de um minuto em um gráfico de cinco minutos (com a possibilidade de trabalhar em um testador). Eu proponho minha própria variante:
Esta opção é melhor.
Obrigado.
Ajude-me a entender. Eu construo o MACD na barra anterior (i+1). Eu encontro valores máximos e mínimos visíveis na janela do gráfico MACD. Eu coloco em Comentário valores máximos, mínimos e atuais das linhas principal e de sinal. Alguém pode me ajudar a descobrir isso.
#property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Lime #property indicator_color2 Red #property indicator_width1 2 //--- buffers double Macd1Buffer[]; double Signal1Buffer[]; //--- for one bar datetime last; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,Macd1Buffer); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,Signal1Buffer); IndicatorDigits(Digits+1); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- Comment(""); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { if(last>=Time[0]) return; double max_M1=-0.01,min_M1=0.01, max_S1=-0.01,min_S1=0.01, max1=-0.01,min1=0.01; int bars_counted=WindowBarsPerChart()-1, limit; limit=bars_counted; //---- macd counted in the 1-st buffer for( int i=0; i<limit; i++) { Macd1Buffer[i]=iMA(NULL,0,6,0,MODE_EMA,PRICE_CLOSE,i+1)-iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i+1); max_M1=MathMax(Macd1Buffer[i],max_M1); min_M1=MathMin(Macd1Buffer[i],min_M1); } //---- macd counted in the 2-nd buffer for( i=0; i<limit; i++) { Signal1Buffer[i]=iMAOnArray(Macd1Buffer,Bars,5,0,MODE_SMA,i); max_S1=MathMax(Signal1Buffer[i],max_S1); min_S1=MathMin(Signal1Buffer[i],min_S1); } max1=MathMax(max_M1,max_S1); min1=MathMin(min_M1,min_S1); Comment( "\n"," Баров = ",WindowBarsPerChart()-1, "\n"," max1 = ",max1, "\n"," min1 = ",min1, "\n"," Macd1Buffer = ",Macd1Buffer[i], "\n"," Signal1Buffer = ",Signal1Buffer[i]); last=Time[0]; //---- return(0); } //+------------------------------------------------------------------+Ajude-me a entender. Eu construo o MACD na barra anterior (i+1). Eu encontro valores máximos e mínimos visíveis na janela do gráfico MACD. Eu coloco em Comentário valores máximos, mínimos e atuais das linhas principal e de sinal. Alguém pode me ajudar a descobrir isso.
O tipo de dado duplo é impresso com 4 dígitos decimais após o ponto. Para emitir números com maior precisão, você deve usar a função DoubleToStr().
Exemplo:
Os dados do tipo duplo são emitidos com 4 dígitos decimais após o ponto. Para emitir números com maior precisão, use a função DoubleToStr().
Os dados do tipo duplo são emitidos com 4 dígitos decimais após o ponto. Para emitir números com maior precisão, use a função DoubleToStr().
exemplo:
Obrigado pela dica. Por que os valores atuais da linha MACD são mostrados incorretamente no Comentário?
Leia novamente, cuidadosamente: para Comentário(), Alerta() e Impressão()
Os dados do tipo duplo são impressos com 4 dígitos decimais após o ponto. Para emitir números com maior precisão, use a função DoubleToStr().