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
Obrigado Mladen pelo código ... Isto tem a dupla comparação macd e 50 crossover como você explicou na lógica anterior.
macerina
A diferença é que na versão gráfica aspen o sinal secundário de entrada é uma cruz de rsi e sua linha de sinal, enquanto na versão metatrader o sinal secundário é uma cruz de rsi de uma linha de 50. A parte Macd é a mesma (você deve pegar o sinal de barra fechada - é assim que é feito na versão gráfica do aspen)
obrigado pela informação mladen ... é possível definir a opção no mesmo indicador para selecionar 50 linhas cruzadas e sinal de linha cruzada ...
Agradecimentos em Advance
sulaimoney Tudo está bem com esses procedimentos. Anexar um indicador simples que mostra que tudo está bem quando as chamadas para esses procedimentos tworld são executadas uma após a outra. Verificar o resto do código, já que o erro não está nesses dois procedimentos.
Olá Mladen
Eu verifiquei através do código e encontrei alguns erros que eu substituí.
Agora estou tentando usar o valor de
duplo preço de última ordem = 0;
E
int bscount = 0;
Como variáveis em um escopo global wirhin the ea tal que elas podem ser chamadas, por exemplo, de NewOrder nulo()
// OnEveryTick
void LastBuySellOrder() // Anula todos os pedidos abertos para selecionar o último pedido (compra/venda) OnEveryTick
{
duplo preço de última ordem = 0;
data/hora últimaTempo = 0;
data/hora de fechamentoTempo = 0;
últimoTicket = -1; // Nenhum aberto.
para (int i=OrdensTotal()-1; i >= 0; i--)
se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == OrderId
&&( OrderType() == OP_BUY || OrderType() == OP_SELL )
&& OrderOpenTime() >= lastTime && OrderCloseTime() == closeTime
&& OrderTicket() > lastTicket )
{
lastTime = OrderOpenTime();
lastorderprice = OrderOpenPrice();
closeTime = OrderCloseTime();
lastTicket = OrderTicket();
}
retorno(lastTicket);
}
senão
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}
contagem de ordens pendentes()
{
int bscount = 0;
para (int i=OrdensTotal()-1; i >= 0; i--)
se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
se (OrderSymbol() == Symbol())
se (OrderMagicNumber() == OrderId)
se (OrderType() == OP_BUYSTOP )
{
bscount++;
}
}
senão
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}
}
// Se existe OpBuy ou OpSell
nulo NewOrder()
{
se (bscount==0)
{
BuyStopPending();
}
}
HI
Este indicador é um repintor? Em caso afirmativo, quanto barras de volta??
xps_v8_oscillator.ex4xps_v8_oscillator.mq4
HI
Este indicador é um repintor? Em caso afirmativo, quanto barras de volta??
xps_v8_oscillator.ex4xps_v8_oscillator.mq4OK, mas eu uso isso no gráfico off-line M2 :S Então não é normal Prazo
OK, mas eu uso isso no gráfico off-line M2 :S Então não é normal Prazo
Experimente e você mesmo verá (use algo como autorefresh para forçar o indicador a atualizar todas as barras ou simplesmente, quando forem construídas barras novas suficientes, vá para os parâmetros, não altere nada e clique OK). Preste atenção aos períodos em que a tendência muda o que ela fará.
Melhor do que eu tentando explicar o que está errado no código de ventos solares e para convencer qualquer pessoa
Eu não posso mudar de período, apenas posso ver o código fonte aqui é ele:
#janela_do_indicador de propriedade_separate_window
#indicador de propriedade_mínimo 0
#indicador de propriedade_máximo 1
#property indicator_buffers 3
#indicador de propriedade_color2 C'72,49,255'
#indicador de propriedade_cor3 C'255,49,72'
#largura_do_indicador de propriedade2 6
#largura_do_indicador de propriedade3 6
período int;
alarme de bool externo=falso;
duplo ExtBuffer0[];
duplo ExtBuffer1[];
duplo ExtBuffer2[];
dupla barra de alerta;
duplo último;
int init() {
//-----------------------------
interruptor ( Período() )
{
caso 1: período = 2880; pausa;
caso 5: período = 576;pausa;
caso 15: período = 192;pausa;
caso 30: período = 96; pausa;
caso 60: período = 48; pausa;
caso 240: período = 48; pausa;
caso 1440: período = 48; pausa;
caso 10080: período = 48; pausa;
padrão: período = 48; pausa;
}
//-----------------------------
SetIndexStyle(0,DRAW_NONE);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexStyle(2,DRAW_HISTOGRAM);
IndicatorDigits(Dígitos+1);
SetIndexBuffer(0,ExtBuffer0);
SetIndexBuffer(1,ExtBuffer1); SetIndexBuffer(1,ExtBuffer1);
SetIndexBuffer(2,ExtBuffer2); SetIndexBuffer(2,ExtBuffer2);
IndicatorShortName("");// X :-)");
SetIndexLabel(0, NULL);
SetIndexLabel(1, NULL);
SetIndexLabel(2, NULL);
return(0);
}
int deinit()
{
//----
ObjectDelete("XPS");
ObjectDelete("XPS2");
ObjectDelete("XPS3");
//----
retorno(0);
}
int start() {
limite int;
int counted_bars=IndicatorCounted();
duplo prev,atual,antigo;
double Value=0,Value1=0,Value2=0,Fish=0,Fish1=0,Fish2=0;
dobro do preço;
duplo MinL=0;
duplo MáxH=0;
if(counted_bars>0) counted_bars--;
limite=barras_contadas_às_barras;
for(int i=0; i<limit; i++)
{ MaxH = Alto;
MinL = Baixo[Baixo(NULL,0,MODE_LOW,período,i)];
preço = (Máximo+Baixo)/2;
Valor = 0,33*2*((preço-MínL)/(MáxH-MínL)-0,5) + 0,67*Valor1;
Valor=MathMin(MathMax(Valor,-0,999),0,999);
ExtBuffer0=0,5*MathLog((1+Valor)/(1-Valor))+0,5*Fish1;
Valor1=Valor;
Peixe1=ExtBuffer0;
}
bool up = VERDADEIRO;
for(i=limit-2; i>=0; i--)
{
atual=ExtBuffer0;
prev=ExtBuffer0;
if (((current0))|||(current<0)) up= falso;
if (((current>0)&&(prev0)) up= true;
if(!up) {
ExtBuffer2=1;
ExtBuffer1=0;
if (alarme && i==0 && último != 2 && ExtBuffer1 == 0 && Bars>alertBar)
{
Alerta("OSC... Possível Tendência descendo em ",Período()", ",Símbolo());
barra de alerta = Barras; último = 2;
}
}
senão {
ExtBuffer1=1;
ExtBuffer2=0;
if (alarme && i==0 && último != 1 && ExtBuffer2 == 0 && Bars>alertBar)
{
Alerta("OSC... Possível Tendência de subir em ",Período()", ",Símbolo());
barra de alerta = Barras;
última = 1;
}
}
}//End Loop
ObjectDelete("XPS");
ObjectCreate("XPS", OBJ_LABEL, 2, 0, 0);
ObjectSetText("XPS","!XPS v8", 28, "Arial Black", C'46,46,46');
ObjectSet("XPS", OBJPROP_CORNER, 2);
ObjectSet("XPS", OBJPROP_BACK, 0);
ObjectSet("XPS", OBJPROP_XDISTANCE, 6);
ObjectSet("XPS", OBJPROP_YDISTANCE, 8);
ObjectDelete("XPS2");
ObjectCreate("XPS2", OBJ_LABEL, 2, 0, 0);
ObjectSetText("XPS2","!XPS v8", 28, "Arial Black", Silver);
ObjectSet("XPS2", OBJPROP_CORNER, 2);
ObjectSet("XPS2", OBJPROP_BACK, 0);
ObjectSet("XPS2", OBJPROP_XDISTANCE, 4);
ObjectSet("XPS2", OBJPROP_YDISTANCE, 10);
ObjectDelete("XPS3");
ObjectCreate("XPS3", OBJ_LABEL, 2, 0, 0);
ObjectSetText("XPS3", "Trade like a BOSS", 9, "Arial Black", Silver);
ObjectSet("XPS3", OBJPROP_CORNER, 2);
ObjectSet("XPS3", OBJPROP_BACK, 0);
ObjectSet("XPS3", OBJPROP_XDISTANCE, 7);
ObjectSet("XPS3", OBJPROP_YDISTANCE, 3);
return(0);
}
Então?
Eu não posso mudar de período, apenas posso ver o código fonte aqui é ele:
#janela_indicadora de propriedade_separarate_window
#indicador de propriedade_mínimo 0
#indicador de propriedade_máximo 1
#property indicator_buffers 3
#indicador de propriedade_color2 C'72,49,255'
#indicador de propriedade_cor3 C'255,49,72'
#largura_do_indicador de propriedade2 6
#largura_do_indicador de propriedade3 6
período int;
alarme de bool externo=falso;
duplo ExtBuffer0[];
duplo ExtBuffer1[];
duplo ExtBuffer2[];
dupla barra de alerta;
duplo último;
int init() {
//-----------------------------
interruptor ( Período() )
{
caso 1: período = 2880; pausa;
caso 5: período = 576;pausa;
caso 15: período = 192;pausa;
caso 30: período = 96; pausa;
caso 60: período = 48; pausa;
caso 240: período = 48; pausa;
caso 1440: período = 48; pausa;
caso 10080: período = 48; pausa;
padrão: período = 48; pausa;
}
//-----------------------------
SetIndexStyle(0,DRAW_NONE);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexStyle(2,DRAW_HISTOGRAM);
IndicatorDigits(Dígitos+1);
SetIndexBuffer(0,ExtBuffer0);
SetIndexBuffer(1,ExtBuffer1); SetIndexBuffer(1,ExtBuffer1);
SetIndexBuffer(2,ExtBuffer2); SetIndexBuffer(2,ExtBuffer2);
IndicatorShortName("");// X :-)");
SetIndexLabel(0, NULL);
SetIndexLabel(1, NULL);
SetIndexLabel(2, NULL);
return(0);
}
int deinit()
{
//----
ObjectDelete("XPS");
ObjectDelete("XPS2");
ObjectDelete("XPS3");
//----
retorno(0);
}
int start() {
limite int;
int counted_bars=IndicatorCounted();
duplo prev,atual,antigo;
double Value=0,Value1=0,Value2=0,Fish=0,Fish1=0,Fish2=0;
dobro do preço;
duplo MinL=0;
duplo MáxH=0;
if(counted_bars>0) counted_bars--;
limite=barras_contadas_às_barras;
for(int i=0; i<limit; i++)
{ MaxH = Alto;
MinL = Baixo[Baixo(NULL,0,MODE_LOW,período,i)];
preço = (Máximo+Baixo)/2;
Valor = 0,33*2*((preço-MínL)/(MáxH-MínL)-0,5) + 0,67*Valor1;
Valor=MathMin(MathMax(Valor,-0,999),0,999);
ExtBuffer0=0,5*MathLog((1+Valor)/(1-Valor))+0,5*Fish1;
Valor1=Valor;
Peixe1=ExtBuffer0;
}
bool up = VERDADEIRO;
for(i=limit-2; i>=0; i--)
{
atual=ExtBuffer0;
prev=ExtBuffer0;
if (((current0))|||(current<0)) up= falso;
if (((current>0)&&(prev0)) up= true;
if(!up) {
ExtBuffer2=1;
ExtBuffer1=0;
if (alarme && i==0 && último != 2 && ExtBuffer1 == 0 && Bars>alertBar)
{
Alerta("OSC... Possível Tendência descendo em ",Período()", ",Símbolo());
barra de alerta = Barras; último = 2;
}
}
senão {
ExtBuffer1=1;
ExtBuffer2=0;
if (alarme && i==0 && último != 1 && ExtBuffer2 == 0 && Bars>alertBar)
{
Alerta("OSC... Possível Tendência de subir em ",Período()", ",Símbolo());
barra de alerta = Barras;
última = 1;
}
}
}//End Loop
ObjectDelete("XPS");
ObjectCreate("XPS", OBJ_LABEL, 2, 0, 0);
ObjectSetText("XPS","!XPS v8", 28, "Arial Black", C'46,46,46');
ObjectSet("XPS", OBJPROP_CORNER, 2);
ObjectSet("XPS", OBJPROP_BACK, 0);
ObjectSet("XPS", OBJPROP_XDISTANCE, 6);
ObjectSet("XPS", OBJPROP_YDISTANCE, 8);
ObjectDelete("XPS2");
ObjectCreate("XPS2", OBJ_LABEL, 2, 0, 0);
ObjectSetText("XPS2","!XPS v8", 28, "Arial Black", Silver);
ObjectSet("XPS2", OBJPROP_CORNER, 2);
ObjectSet("XPS2", OBJPROP_BACK, 0);
ObjectSet("XPS2", OBJPROP_XDISTANCE, 4);
ObjectSet("XPS2", OBJPROP_YDISTANCE, 10);
ObjectDelete("XPS3");
ObjectCreate("XPS3", OBJ_LABEL, 2, 0, 0);
ObjectSetText("XPS3", "Trade like a BOSS", 9, "Arial Black", Silver);
ObjectSet("XPS3", OBJPROP_CORNER, 2);
ObjectSet("XPS3", OBJPROP_BACK, 0);
ObjectSet("XPS3", OBJPROP_XDISTANCE, 7);
ObjectSet("XPS3", OBJPROP_YDISTANCE, 3);
return(0);
}
Então?É aplicado o período 48 para qualquer período de tempo que não seja um período de tempo padrão (como "2 minutos" de gráficos off-line)
Para versões de ventos solares para as quais você pode alterar o período de cálculo, veja este tópico : https://www.mql5.com/en/forum/179650
Saudações a vocês gurus, por favor me ajudem a editar este roteiro e deixar SOMENTE pedido, tamanho do lote, compra/venda. Eu já sou proprietário de um EA que os lugares têm lucro/parada perda automaticamente, entrando assim em conflito com aquele indy.
Este script abre automaticamente qualquer número de ordem de mercado que você especificou no MENU de uma vez, mas atualmente ele abre apenas uma ordem, mesmo que você insira 5 ordens. Por favor, ajude-me a corrigir este ERROR e DELETE a tirar lucro/parada de perdas do SCRIPT.
Abençoados sejam