[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 388

 
KostelloArtua:
2011.05.16 09:06:08 Média Móvel Especialista New-Svecha EURUSD,M30: carregado com sucesso
2011.05.16 09:04:21 Média Móvel Especialista New-Svecha EURUSD,M30: carregado com sucesso
2011.05.16 08:14:25 '81415': Falha na conexão do DataCenter [6]


Se você executar o terminal e depois a EA, nada mais aparece no registro e a EA mostra o trabalho...


Se os carrapatos estão funcionando, o ícone da EA está "sorrindo", a EA deve fazer acordos (ou seja, condições para que ele apareça), mas ele não os faz, então é necessário depurar.

Organize o comando preço() no código da EA, especialmente nos lugares onde ele é comparado e veja o que está sendo comparado exatamente. Talvez, o resultado da comparação seja sempre falso, enquanto você está assumindo que as variáveis são iguais.

 

Boa tarde a todos.

Estou estudando a MQL4 há cerca de um mês. Eu escrevi um simples Expert Advisor que compra ou vende em mudanças de barras MACD (posso enviar o código à noite se precisar). Compila sem problemas e minha conta demo tem uma cara sorridente no canto superior direito(eu habilitei minha EA a negociar em preferências). O testador de estratégia mostra resultados para a estratégia (embora negativos, mas este é um passo para um maior refinamento). Mas em uma conta demo no MT4, o Expert Advisor não abre negócios de forma alguma. Parece-me que o problema não é com o programa (senão por que o testador mostraria resultados?), mas em algum lugar em alguns ambientes.

Você pode me dizer o que pode ser?

 
Sersad:.

Você pode me dizer o que pode estar errado?


Quanto dinheiro você tem em sua conta e em que lote você entra?
 
Roger:

Quanto dinheiro você tem em sua conta e em que lote você entra?

Em uma conta demo de 10.000 USD, eu entro com 0,1 lote (mini lote).

Se você quer dizer gestão de dinheiro, não acho que seja esse o caso...

 
Sersad:

Boa tarde a todos.

Estou estudando a MQL4 há cerca de um mês. Eu escrevi um simples Expert Advisor que compra ou vende em mudanças de barras MACD (posso enviar o código à noite se precisar). Compila sem problemas e minha conta demo tem uma cara sorridente no canto superior direito (eu habilitei minha EA a negociar em preferências). O Testador de Estratégia mostra resultados para a estratégia (embora negativos, mas este é um passo para um maior refinamento). Mas em uma conta demo no MT4, o Expert Advisor não abre negócios de forma alguma. Parece-me que o problema não é com o programa (senão por que o testador mostraria resultados?), mas em algum lugar em alguns ambientes.

Você pode aconselhar qual pode ser o problema?


Sem o código, é difícil dizer. É possível que a EA seja escrita por quatro dígitos, e a conta demo seja escrita por cinco dígitos. Se definirmos, por exemplo, uma parada de 10 pontos para o pedido, é a mesma distância para a EA de cinco dígitos que 1 pip no de quatro dígitos. Se estabelecermos a distância mínima permitida para definir ordens de parada em, digamos, 3 pontos, então em um mercado de cinco dígitos isso seria de trinta pontos em vez de três. O servidor rejeitará compreensivelmente o comando para definir uma ordem com uma parada de 10 pontos nos cinco dígitos.

Mas a razão pode ser diferente. Você vê, você perguntou às pessoas por que o carro delas não pegava. As pessoas não podem dizer o motivo sem abrir o capô e ouvir a reação do carro às tentativas de partida...

 


Desculpe, escrevi algumas bobagens aqui, se você pudesse me mostrar onde estou completamente sem a menor idéia.

As poses não parecem se abrir, nada acontece.

Eu removi a divisão por zero - ainda, e nenhum erro está escrito no registro.

//+------------------------------------------------------------------+
//| para avalanche.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#direitos autorais "Copyright © 2011, MetaQuotes Software Corp."
#link da propriedade "http://www.metaquotes.net"
stoploss duplo externo=0; takeprofit duplo externo=20; int otstup externo=20; data de expiração externa=0;

//+------------------------------------------------------------------+
//| função de inicialização especializada |
//+------------------------------------------------------------------+
int init()
{
//----

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

//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de início especializado |
//+------------------------------------------------------------------+
int tiket,tikett;volume duplo=0,1;int i=0,R1=0,R2=0,A=1 ;preço duplo=PREÇO_OPEN;
// R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss;


int start()
{
//----

OrderSelect()tiket,SELECT_BY_TICKET, MODE_TRADES );
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 ){i=OrdersTotal() ;
se (i<2){
tiket= OrderSend( Symbol(), OP_BUYSTOP, volume*A, preço+trabalho*Ponto, Ponto*3, R1, PRICE_OPEN+takeprofit*Ponto+trabalho, "OP_BUYSTOP", 1000, expiração, Vermelho);
Alerta ("OP_BUYSTOP", GetLastError( );
tikett= OrderSend( Symbol(), OP_SELLSTOP, volume*A, preço -otstup*Point, Ponto* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP", 2000, expiração,C'0,128,255' );
Alerta ("OP_SELLSTOP", GetLastError( );
i=OrdensTotal() ; } } }

//----
retorno(0);
}
//+------------------------------------------------------------------+

Ou seja, duas ordens pendentes são abertas, uma acima do preço a uma distância otstup=20, a outra abaixo, sem parada, e antes de abrir, verifique se não há ordens deste EA e não mais de duas.

 
alexr7:
Muito obrigado pela resposta rápida!!!!!!!!!!!!!! O critério é um indicador padrão de Bandas de Bollinger com parâmetros: período 20, turno 0, desvio 2, Weighted Close(HLCC/4)!!!!!!!

Estes não são os critérios sobre os quais lhe perguntei. Estes são os parâmetros de aparafusamento. Eles podem ser diferentes e são definidos nas configurações...

Eu lhe perguntei - como você determina se a posição é na linha média do bollinger?

 
alexr7:
Muito obrigado pela resposta rápida!!!!!!!!!!!!!! O critério é um indicador padrão de Bandas de Bollinger com parâmetros: período 20, turno 0, desvio 2, Weighted Close(HLCC/4)!!!!!!!

A linha média do Bollinger é iMA(NULL, 0, 20, 0, MODE_SMA, PRICE_WEIGHTED, 1);
 
Dimka-novitsek:


Desculpe, escrevi algumas bobagens aqui, se você pudesse me mostrar onde eu sou completamente cordeiro.

As poses parecem não se abrir, não acontece nada.

Eu removi a divisão por zero - ainda, e nenhum erro está escrito no registro.

//+
+
//| for avalanche.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www | //+ +
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net.metaquotes.net"
external double stoploss=0; extern double takeprofit=20; extern int otstup=20; extern datetime expiration=0;

//+ +
//| expert initialization function |
//+ +
int init()
{
//

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

// return(0); }
//+------------------------------------------------------------------+
//| expert start function |
//+ +
int tiket,tikett;volume duplo=0.1;int i=0,R1=0,R2=0,A=1 ;double price=PREÇO_OPEN;
// R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss;


int start()
{
//

OrderSelect( tiket,SELECT_BY_TICKET, MODE_TRADES );
if(OrderSymbol()==Symbol()){
if (OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 ){i=OrdersTotal() ;
if (i<2){
tiket= OrderSend(), OP_BUYSTOP, volume*A, preço+ativação*Point, Ponto* 3, R1, PRICE_OPEN+takeprofit*Point+ativação, "OP_BUYSTOP", 1000, expiração, vermelho);
Alerta ("OP_BUYSTOP", GetLastError( );
tikett= OrderSend( Symbol(), OP_SELLSTOP, volume*A, preço -otstup*Point, Ponto* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP", 2000, expiração,C'0,128,255' );
Alerta ("OP_SELLSTOP", GetLastError( ));
i=OrdersTotal( ) ; } } }

//
return(0);
}
//+------------------------------------------------------------------+

Ie, abra como duas ordens pendentes, uma acima do preço a uma distância otstup=20, a outra abaixo, sem parada, e antes de abrir verifique se a ordem deste EA e não mais de duas.

1) usar SRC

2) Seu primeiro comando é OrderSelect. Quem você vai selecionar antes de fazer os pedidos?

 

Quando a EA não começa nada, é apenas para verificar, para que os novos cavaleiros não abram a cada tique depois

1) use SRC A, é um agradecimento de raiz!

Ou seja, se não houver nenhuma ordem, ou menos de 2, elas abrem imediatamente!