Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 71

 

Eu preciso do indicador para desenhar setas no gráfico diário. Presumo que o problema esteja no uso de EMAs de 15 minutos, tudo funciona nos EMAs de 15 minutos. É possível fazer um indicador que é calculado a partir do intervalo de 15 minutos e desenhar setas no gráfico diário?

Abaixo está o próprio código:

#property copyright ""
#property link      ""

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Magenta
#property indicator_color2 Red

//--- input parameters

//--- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,217);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,217);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexEmptyValue(1,0.0);
   IndicatorDigits(Digits+1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    int counted_bars=IndicatorCounted(),                      
    limit;
    double
    signal_1,
    signal_2,
    MA_1_t,                                                 
    MA_2_t;
 
   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   
   for(int i=0;i<limit;i++)
   {
      MA_1_t=iMA(NULL,PERIOD_M15,3,0,MODE_EMA,PRICE_CLOSE,i+0);  
      MA_2_t=iMA(NULL,PERIOD_M15,3,0,MODE_EMA,PRICE_CLOSE,i+1);  
      signal_1 = (условие);
      signal_2 = (условие);
      if (signal_1 >= определенное число)
      ExtMapBuffer1[i]=High[i]+5*Point;
      else
         ExtMapBuffer1[i]=0.0;
      if(signal_2 >= определенное число)
         ExtMapBuffer2[i]=Low[i]-5*Point;         
      else
         ExtMapBuffer2[i]=0.0; 
   }
   return(0);
  }
//+------------------------------------------------------------------+
 
satorifx:


dist = MathAbs((NormalizeDouble(Bid,Digits)-
NormalizeDouble(ObjectGetValueByShift(TrendLineName,0),Digits))*MathPow(10,Digits));

O código encontra a distância do nível de preço atual até a tendência pela TrendLineName. Mas há um problema: aparentemente a tendência é transmitida de forma imprecisa entre as metades, e portanto a distância até o preço é bem diferente para as diferentes metades. Como contornar este problema? Idealmente, mesmo que a linha de tendência seja exibida apenas no H1, no horário aberto W1 (na verdade, em qualquer horário aberto) a distância calculada deve ser a mesma.


Em relação à pergunta na citação acima, outra pergunta: como simular um período de tempo diferente do que o aberto no gráfico? Isto é, por exemplo, com D1 aberto, devo calcular em M30?
 
Procurei na Internet, encontrei algo, mas tentei e não funcionou! Ajude-me a adicionar uma parada móvel)) deveria funcionar assim - se o preço subir / descer (em lucro) em "X" pontos, aciona uma parada móvel em "Y" pontos desse preço e se move em direção lucrativa com incremento "Z". Muito obrigado a quem quer que ajude))))))

//+------------------------------------------------------------------+
//| sobstvennyi_probnyi_sovetnic.mq4 |
//| Antonico |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#propriedade de direitos autorais "Antonico
#link da propriedade "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| função de inicialização especializada |
//+------------------------------------------------------------------+
lote duplo=1;
dupla lâmina externa=30;
duplo externo tp=30;
koeff duplo externo=2;
int pon=1;
int vtor=0;
int sred=3;
int hetver=0;
int patn=0;


int init()
{
//----

//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de desinicialização de especialistas |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de início especializado |
//+------------------------------------------------------------------+
int start()

{ int otkrord=OrdersTotal();
if (DayOfWeek()==pon || DayOfWeek()==vtor ||| DayOfWeek()==sred ||| DayOfWeek()==hetver ||| DayOfWeek()==patn || DayOfWeek()==6 || DayOfWeek()==0 | otkrord >0) return(0);



if(OrderHistoryTotal()==0)
{lote=1;}

if(OrderSelect(OrderHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))

{
se (OrderProfit()>0)
{
lote=1;
}
se (OrderProfit()<=0)
{
lot=OrderLots()*koeff; // Multiplicar por 2
}

}


int h=TimeHour(TimeCurrent());
int m=TimeMinute(TimeCurrent());
int s=TimeSeconds(TimeCurrent());
double zena0=Open[3];
double zena01=Open[2];


if (h===1 && m===00 && s===01 && zena0<zena01 )

{OrderSend(Symbol(), OP_BUY,lot,Ask,3,Bid-sl*Point,Ask+tp*Point,"",0,0,Green);}





if (h===1 && m===00 && s===01 && zena0>zena01)
{OrderSend(Symbol(), OP_SELL,lot,Bid,3,Ask+sl*Point,Bid-tp*Point,"",0,0,Red);}
}


{if(OrderHistoryTotal()==0)
{lote=1;}

if(OrderSelect(OrderHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))

{
se (OrderProfit()>0)
{
lote=1;
}
se (OrderProfit()<=0)
{
lot=OrderLots()*koeff; // Multiplicar por 2 após uma troca perdida
}

}




double zena1=Open[5];
double zena11=Open[4];

if (h===3 && m===00 && s===01 && zena1>zena11)
{



OrderSend(Symbol(), OP_BUY,lot,Ask,3,Bid-sl*Point,Ask+tp*Point,"",0,0,Green);}
se (h===14 && m===00 && s===01 && zena1<zena11)
{OrderSend(Symbol(), OP_SELL,lot,Bid,3,Ask+sl*Point,Bid-tp*Point,"",0,0,Red);}

}
}

retorno(0);
}

//+------------------------------------------------------------------+
 

Você pode me dizer como traduzir um caractere (string) em código ASCII?

Grosso modo, você precisa do inverso de CharToStr().

 
Heroix:

Você pode me dizer como traduzir um caractere (string) em código ASCII?

Grosso modo, você precisa do inverso de CharToStr().


 

Boa tarde.

me ajude a precisar de código

gráfico atual

Quando um novo bar abre, um pedido deve ser aberto

Exatamente o novo bar

 
sannin:

Boa tarde.

me ajude a precisar de código

gráfico atual

Quando um novo bar abre, um pedido deve ser aberto

Exatamente o novo bar

Sem problemas!

Comece a escrever o código que você precisa. Em caso de dificuldades, faça perguntas e mostre peças do código que você escreveu, e camaradas experientes lhe mostrarão onde você errou.

 

Olá a todos.

Eu tenho uma pergunta. No testador, a semana começa às 00:00 se olharmos o gráfico de horas, por exemplo. Sabe-se que a semana de câmbio começa às 20:15 GMT. Ou seja, para passar de uma hora na hora de teste GMT, mais ou menos 20 horas e dividir o módulo por 24, certo?

 
por que exatamente às 20h15, para você ele abrirá às 20h15, quando seu corretor abrir
 
Bom dia a todos. Por favor, informe onde obter informações. sobre como fechar a EA de olhos curiosos e o que você precisa para que a EA funcione por um determinado período de tempo e depois deixe de ser útil ao momento, bem, por exemplo, para introduzir um código de continuação de trabalho, como esse. Obrigado de antemão!!!
Razão: