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

 
em algum lugar neste site há muito tempo eu encontrei um link para um site onde você pode carregar seu robô, assim como especificar o nome de usuário, senha, servidor e ele será negociado quando meu policial estiver fora de.... alguém pode se lembrar deste site?
 
jobber:
em algum lugar neste site há muito tempo eu encontrei um link para um site onde você pode carregar seu robô, digite também seu nome de usuário, senha, servidor e ele será negociado quando meu policial estiver fora de.... alguém se lembra deste site?

Você pode entrar no VPS no mecanismo de busca, não sei o que significa literalmente, mas poderia ser um desktop virtual para comerciantes.
 
splxgf:

LazarevDenis

A contagem inicial é de 59 barras, o que é incorreto. Pode haver lacunas em minutos, e a barra da última hora pode conter menos minutos.

Você deve pegar o horário de abertura e fechamento da barra de horas (Tempo[i]). Use este tempo para calcular os offsets para minutos iBarShift, e depois calcule o máximo dentro desta faixa de offsets.

A propósito, o que o indicador deve mostrar em um período de minutos?

Embora não seja importante para o Expert Advisor, ele só precisa obter o último valor em barras de um minuto, se o número for positivo o preço sobe, se for negativo desce, ao retornar o modulo de número ele mostra a força do movimento.


quanto ao número de barras - suas 60 contagens a partir de zero e não há 60 minutos, pois este é o minuto zero da nova hora, ou estou enganado

Tenho dúvidas sobre a barra da última hora, mas espero que como não há barras minúsculas, seu volume seja igual a zero e não afetem o resultado dos cálculos.

Eu fiz uma barra de minutos para verificar a adequação dos cálculos, então eu identifiquei que tenho um erro, marquei o início e o fim da hora, e o valor máximo no indicador horizontal, depois mudei para uma barra de minutos e verifiquei, barras de 6 horas estavam bem, e então algo deu errado

 
LazarevDenis:


quanto ao número de barras - suas 60 contagens a partir de zero e não há 60 minutos, pois é o minuto zero da nova hora, ou estou enganado

Tenho dúvidas sobre a barra da última hora, mas espero que como não existem barras de minutos, seu volume seja zero e não afetem os resultados do cálculo.

criei uma barra de minutos para verificar a adequação dos cálculos, e defini que tenho um erro. Na barra de horas marquei o início e o fim da hora, e o valor máximo no indicador horizontal, depois mudei para a barra de minutos e verifiquei, barras de 6 horas estavam bem, e então algo deu errado


Escreva ou forneça seu código?
 
Vinin:

Escreva ou forneça seu código?
Estou um pouco confuso sobre o que escrever?
o código indicador está na página anterior, eu acrescentarei a EA quando me certificar de que o indicador funciona corretamente, obrigado
 
//+------------------------------------------------------------------+
//| FT_Fractal_MA.mq4 |
//| FORTRADER.RU, Yuri, ftyuriy@gmail.com |
//| http://FORTRADER.RU, Fractals + Averages |
//+------------------------------------------------------------------+
#propriedade copyright "FORTRADER.RU, Yury, ftyuriy@gmail.com"
#link da propriedade "http://FORTRADER.RU, Fractals + Averages"

/* Desenvolvido para a 49ª edição do FORTRADER.Ru. Sistema sobre fractais e médias.
Relatórios: http://finfile.ru/index.php/files/get/6qQW8tgENy/fracralma1.zip, http://finfile.ru/index.php/files/get/_glRYiHkQi/fracralma2.zip
Arquivos do conjunto: http://finfile.ru/index.php/files/get/k2w2e92iCI/eurusd1h.zip
Discussão: http://fxnow.ru/group_discussion_view.php?group_id=49&grouptopic_id=266&grouppost_id=2667#post_2667
Arquivo de log: http://www.fortrader.ru/arhiv.php
Edição 49: http://www.fortrader.ru/
*/

int lwmaper1=4;
int lwmaper2=8;

int int lwmapertrend=40;
lwmatrendchart=1;

externo int SL=150;
externo int TP=150;

int mn=1;

int err;

externo int MG=564651;
Lotes duplos externos=0,01;

maxpos=1;

barras int;
int start()
{
if(bars!=Bars)
{
bar=barras;
OpenPattern();
}
retorno(0);
}

int okbuy; }

int OpenPattern()
{
duplo op,sl,tp;
double upf=iFractals(NULL, 0, MODE_UPPER, 3);
double dwf=iFractals(NULL, 0, MODE_LOWER, 3);
double lwma1=iMA(NULL,0,lwmaper1,0,MODE_LWMA,PRICE_CLOSE,1);
double lwma2=iMA(NULL,0,lwmaper2,0,MODE_LWMA,PRICE_CLOSE,1);
double lwma1Last=iMA(NULL,0,lwmaper1,0,MODE_LWMA,PRICE_CLOSE,2);
double lwma2Last=iMA(NULL,0,lwmaper2,0,MODE_LWMA,PRICE_CLOSE,2);
double lwmatrend=iMA(NULL,GetPeriod(lwmatrendchart),lwmapertrend,0,MODE_LWMA,PRICE_CLOSE,1);
double lwmatrendLast=iMA(NULL,0,GetPeriod(lwmatrendchart),0,MODE_LWMA,PRICE_CLOSE,2);
if(upf!=0){oksell=1;okbuy=0;}
if(dwf!=0){okbuy=1;oksell=0;}
if(oksell===1 && lwma1<lwma2 && lwma1Last>lwma2Last && CountPos(0)<maxpos && lwmatrend>lwmatrendLast)
{
op=Bid;if(SL>0){sl=Bid+SL*Point*mn;}if(TP>0){tp=Bid-TP*Point*mn;}
err=OrderSend(Symbol(),OP_SELLL,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits), "4 FORTRADER.RU",MG,0,Red);
if(err<0){Print("OrderSend()- Erro OP_SELL. op "+op+" sl "+sl+" tp "+tp+""+GetLastError());return(-1);}
oksell=0;
}
if(okbuy====1 && lwma1>lwma2 && lwma1Last<lwma2Last && CountPos(1)<maxpos && lwmatrend<lwmatrendLast)
{
op=Ask;if(SL>0){sl=Ask-SL*Point*mn;}if(TP>0){tp=Ask+TP*Point*mn;}
err=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits), "6 FORTRADER.RU",MG,0,Red);
if(err<0){Print("OrderSend()- Erro OP_BUY. op "+op+" sl "+sl+" tp "+tp+""+GetLastError());return(-1);}
okbuy=0;
}
return(err);
}
//Cheque o número de posições.
int CountPos(tipo int)
{// Descrição http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=66

int i;
int col;
int count=0 ;
for( i=0; i<=OrdensTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS)==verdadeiro)
{
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && type====1 && OrderMagicNumber()==MG){count++;}
if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && type==0 && OrderMagicNumber()==MG){count++;}
}
}
devolução(contagem);
}

int GetPeriod(int GrafOpen)
{int GrafOpenT;
interruptor(GrafOpen)
{
caso 1: GrafOpenT=1;break;
caso 2: GrafOpenT=5;break;
caso 3: GrafOpenT=15;break;
caso 4: GrafOpenT=30;break;
caso 5: GrafOpenT=60;break;
caso 6: GrafOpenT=240;break;
caso 7: GrafOpenT=1440;break;
padrão: GrafOpenT=1;break;
}
retorno(GrafOpenT);

}

Por favor, troque compra e venda neste EA a partir deste site, estou tendo problemas com ele. É interessante verificá-lo, pois é bom demais para ser despejado por serra.

 
LazarevDenis:


quanto ao número de barras - suas 60 contagens a partir de zero e não há 60 minutos, pois este é o minuto zero da nova hora, ou estou enganado

Vou fazer uma pergunta boba agora, quantos bares diários existem em um ano?
 

Boa noite... de manhã... ou talvez até à tarde...

Estou tentando aprender a linguagem mql... Estou enfrentando um mal-entendido... A essência do problema está no código:

      OrderSelect(ТикетСелл,SELECT_BY_TICKET);
      double СеллТейкПрофит=ЦенаПродажи-(ЦенаПокупки-ЦенаПродажи);
      PrintDoubleToStr("OrderOpenPrice()= ",OrderOpenPrice(),8);PrintDoubleToStr("ЦенаПродажи= ",ЦенаПродажи,8);
      PrintDoubleToStr("OrderStopLoss()= ",OrderStopLoss(),8);PrintDoubleToStr("ЦенаПокупки= ",ЦенаПокупки,8);
      PrintDoubleToStr("OrderTakeProfit()= ",OrderTakeProfit(),8);PrintDoubleToStr("СеллТейкПрофит= ",СеллТейкПрофит,8);
      Print(OrderType(),"=",OP_SELLSTOP);
      if((OrderType()==OP_SELLSTOP) && ((OrderOpenPrice()!=ЦенаПродажи)||(OrderStopLoss()!=ЦенаПокупки)||(OrderTakeProfit()!=СеллТейкПрофит)))
      {
         OrderModify(OrderTicket(),ЦенаПродажи,ЦенаПокупки,СеллТейкПрофит,0,Red);
      }

A função "PrintDoubleToStr" imprime números duplos no log...

Em geral, em meu diário (Leia de baixo para cima).

2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderModify error 1
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: 5=5
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: СеллТейкПрофит= 1.41884000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderTakeProfit()= 1.41884000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: ЦенаПокупки= 1.44244000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderStopLoss()= 1.44244000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: ЦенаПродажи= 1.43064000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderOpenPrice()= 1.43064000

Há uma pergunta: por que ela modifica a ordem se todos os valores são iguais e, portanto, esta condição não é atendida:

if((OrderType()==OP_SELLSTOP) && ((OrderOpenPrice()!=ЦенаПродажи)||(OrderStopLoss()!=ЦенаПокупки)||(OrderTakeProfit()!=СеллТейкПрофит)))
Por favor, diga-me onde errei...
 
niknikolas:

Por favor, diga-me onde errei...

Não vou pegar um peixe, mas vou lhe dar uma cana de pesca... você também pode adicionar uma linha Print(OrderOpenPrice()!=Sale Price) e a imagem será completa e suficiente para conclusões independentes.
 
splxgf:
Não vou pegar um peixe, mas vou lhe dar uma cana de pesca... você pode adicionar mais linhas Print(OrderOpenPrice()!=SellTakeProfit) e a imagem será completa e suficiente para conclusões independentes.

Como dizem: "O que ganho com isso?" Preciso de um verme... De qualquer forma, aqui está o código:

OrderSelect(ТикетСелл,SELECT_BY_TICKET);
double СеллТейкПрофит=ЦенаПродажи-(ЦенаПокупки-ЦенаПродажи);
Print("OrderOpenPrice()!=ЦенаПродажи= ",OrderOpenPrice()!=ЦенаПродажи);
Print("OrderStopLoss()!=ЦенаПокупки= ",OrderStopLoss()!=ЦенаПокупки);
Print("OrderTakeProfit()!=СеллТейкПрофит= ",OrderTakeProfit()!=СеллТейкПрофит);
PrintDoubleToStr("OrderTakeProfit()= ",OrderTakeProfit(),8);
PrintDoubleToStr("СеллТейкПрофит   = ",СеллТейкПрофит,8);
if((OrderType()==OP_SELLSTOP) && ((OrderOpenPrice()!=ЦенаПродажи)||(OrderStopLoss()!=ЦенаПокупки)||(OrderTakeProfit()!=СеллТейкПрофит)))
{
 OrderModify(OrderTicket(),ЦенаПродажи,ЦенаПокупки,СеллТейкПрофит,0,Red);
}
Na revista:
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderModify error 1
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: СеллТейкПрофит   = 1.42505000
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderTakeProfit()= 1.42505000
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderTakeProfit()!=СеллТейкПрофит= 1
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderStopLoss()!=ЦенаПокупки= 0
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderOpenPrice()!=ЦенаПродажи= 0

Por que com " SellTakeProfit = 1.42505000" e com "OrderTakeProfit()= 1.42505000" ainda "OrderTakeProfit()!=SellTakeProfit= 1 "

Não está claro em geral...
Razão: