[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 912

 
Dimka-novitsek:

Desculpe, não posso lidar com meu "Expert Advisor", ele cronicamente dá um erro 130 paradas erradas, e não negocia. Eu defini paradas diferentes, 10-60 pips, tudo da mesma forma.


Para começar, em vez de uma parada e lucro no SendOrders, coloque 0. Verifique se as ordens estão abertas. À primeira vista, suas paradas têm que ser 10 vezes maiores, o mais provável é que você tenha cotações de cinco dígitos e as paradas estejam muito próximas do preço aberto .
 
Dimka-novitsek:

Desculpe, não consigo entender com minha "EA", ela dá erro cronicamente 130 paradas erradas, e não negocia. Eu defini todos os tipos de paradas, 10-60 pips, tudo da mesma forma.

Acho que deve funcionar. como meu EA não funciona direito, meu total é sempre 0, alternando com um erro 130.

Eu estabeleço Lotes duplos externos=0,1, TakeProfit=50, stoploss=10;

Eu não sei o que está errado.

Ajuda!!!!!!!!!!!! Por favor!!!!!!!!!!!!


Estou bem, talvez cinco dígitos... paradas*10 e takeloss*10

 
costy_:


Estou bem, talvez cinco dígitos? Pare*10 e pegue*10

Bem, o problema com os cinco dígitos, e com todos os sinais, é fácil de resolver.

Você o escreve na Inite:

   if(Digits==5 || Digits==3) PointX = Point * 10; // Корректировка Point под трёх- пятизнак
   if(Digits==4 || Digits==2) PointX = Point;
E, de acordo com isso, declarar inicialmente a variável PointX de tipo duplo. Então, no código EA, substitua Point por PointX em todos os lugares
 
Obrigado!!! Acho que é definitivamente isso!!!!
 
ivandurak:


como este

estática int KolBars; // esta variável armazena o número de barras

se ( sua condição && Barras != KolBars)

{ // se o número de barras mudou na tela - a abertura de uma nova vela é a condição para a tomada de medidas

As ações de acordo com o algoritmo são feitas, abertura da posição de fechamento, cálculos, etc;

KolBars=Bars ; // registrar o número de barras em que as ações são concluídas

}

Agora as negociações são abertas a cada hora (TF H1) com o aparecimento de uma nova vela, apesar da minha condição de abertura.

Também não sei como colocar um stop loss em um determinado castiçal ao invés de um stop loss.

"static int KolBars; // esta variável armazena número de barras" - devo especificar o número de castiçais a analisar? static int KolBars=3


Quero construir um EA com uma condição como "se os 3 castiçais anteriores fossem verdes, então abra um comércio de venda em um novo castiçal, e feche-o no fechamento deste ou do próximo castiçal".

 
O ALGORITHM GENÉTICO dá resultados diferentes cada vez...... O QUE FAZER??? tentou a normalização. Não há deslizamentos. Na programação parece não ser o primeiro ano......... Eu NÃO COMPROMETO!!! AJUDA!!!
 
costy_:

http://forexsystems.ru/sovetniki/26492-poisk-sovetnikov-[kto-ischet-pishem-sdes%60].html

h ttp://www.forexfactory.com/showthread.php?t=168161


muito obrigado.
 
Stepan241:
O ALGORITHM GENÉTICO dá resultados diferentes a cada vez...... O QUE FAZER??? tentativa de normalização. Não há deslizamentos. Na programação parece não ser o primeiro ano......... Eu NÃO COMPROMETO!!! AJUDA!!!


Imagine ter que implementar uma função de genlock você mesmo, o que seria necessário para fazer isso?!

Quantos passes teriam que ser feitos sem um algoritmo gen. e quantos passes ele faria com um algoritmo gen.(favor indicá-lo para um caso específico).

Se os dados sem genlock não corresponderem após duas otimizações, então os números pseudo-aleatórios devem ter sido utilizados em algum lugar para fazer uma condição comercial (caudas?).

"Sem escorregões" ao testar e otimizar escorregões não funcionam de forma alguma.

 

É interessante, eu li o post de ivandurak e imediatamente percebi que depois de cada tick apenas o início é acionado, então se você abrir a variável globalmente, parece economizar o valor.

Стало быть,где-то так.//+------------------------------------------------------------------+
//| Bollocks.mq4 |
//| Copyright © 2010, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#direitos autorais "Copyright © 2010, MetaQuotes Software Corp."
#link da propriedade "http://www.metaquotes.net"
int KolBars=Bars;
//+------------------------------------------------------------------+
//| função de iniciação de especialista |
//+------------------------------------------------------------------+
int init()
{
//----
//----

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

//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de início especializado |
//+------------------------------------------------------------------+
int start()
{int r;
r=Bars- KolBars
//----
para( r>0 )
int k;
//----
retorno(0);
}
//+------------------------------------------------------------------+ Então, o compilador não aceita categoricamente a linha em KolBars=Bars; ele jura 'Barras' - inicialização esperada C:\Arquivos de programa (x86)\Alpari ÌÒ4=experts\ÁÁÁùå.mq4 (8, 13)

Espantoso!!!!! Declaração de variável normal. Mas não importa.

Vou perguntar o principal - como depurar uma EA no fim de semana, se os carrapatos não forem?????

 
artmedia70 16.10.2010 20:56

costy_:


Estou bem, talvez cinco dígitos? pára*10 e toma*10


Bem, o problema com cinco dígitos, e com todos os sinais não é difícil de resolver.

Na Inite, escreva:
if(Digits===5 || Digits===3) PointX = Ponto * 10; // Corrija Ponto para caracteres de três e cinco dígitos
if(Digits===4 || Digits===2) PointX = Ponto;
E, correspondentemente, declare inicialmente a variável PointX como dupla. Então, no código EA em todo lugar, substitua Point por PointX Mais uma vez, muito obrigado!!! Eu mesmo tenho lutado com isso por uma semana!!!!