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
Agora um pouco sobre as bandeiras que não estão incluídas na função FLG , já que são independentes.
A) Flg é uma bandeira de inicialização, é necessária para evitar a abertura da postura após uma falha ou início de operação, se houver um sinal de entrada (este sinal é duradouro), porque pode ser tarde demais. A lógica é a seguinte, se VSR!=0 ou seja, houver um sinal, então defina Flg=falso; assim que o sinal desaparecer, a bandeira é zerada
if (!Flg){if (VSR () ==0) {Flg=verdadeiro; retornar (0);}}}
B) Flq - bandeira interessante, proibindo a abertura de uma segunda posição na mesma barra. No início eu queria proibir a abertura de uma posição com prejuízo em um bar, mas vou implementá-la quando terminar com minha função BuSll, o que facilitará as coisas. Por enquanto, existe uma variante desse tipo.
É colocado na abertura de posição
{se (Trd_Up_X && VSR() > 0 && bu <HM_Up_X ) {
if (MOS( 0, lots, sl, tp, WindowExpertName(), mn)>=1) {Flq=false;}}}
if (Trd_Dn_Y && VSR() < 0 && sll<HM_Dn_Y ) {
if (MOS( 1, lots, sl, tp, WindowExpertName(), mn)>=1) {Flq=false;}}}}
A propósito, escrevi anteriormente sobre a correção nesta função.
Ela é reinicializada a cada 4 horas. Se você acha que isso é demais para alguns pares, você pode adicionar à função H1() reiniciar a bandeira a cada hora para todos, exceto alguns pares if (Symbol()!="GBPJPY" || Symbol()!="USDCHF"){ Flq = true ; }
Algo sobre a última versão não funciona.
O otimista nem sequer abre um único negócio na primeira etapa.
O testador com parâmetros otimizados para a EA anterior funciona da mesma forma.
Você já descobriu porque ela não está otimizada?
Você já descobriu por que não otimizou?
Não.
Não teve muito tempo.
Da última vez houve um problema por causa da falta de história.
Estou apenas retomando a história e funcionando.
Eu o informarei pela manhã.
Você já descobriu porque ele não otimizou?
Ele não quer otimizar.
A sétima versão é otimizada com os mesmos dados históricos.
O mais recente não o fará.
O resultado em todos os lugares é 0.
Relançou o especialista. Provavelmente, uma versão corrompida. O fórum estava congelando.
E preste atenção a estas linhas em Expert Advisor
equilíbrio inicial, mínimo e máximo, quando o Expert Advisor está negociando.
//------------------------------------------------------------------//
bool TrBlnc = true; int StrtBlnc = 3000; int DBlnc = 1500; int UBlnc = 4000;
//------------------------------------------------------------------//
A proibição é implementada em função bool FLG (int cs )
Um pouco mais sobre a lógica do conselheiro.
Há um problema - lacunas freqüentes. Durante as lacunas, os parâmetros e condições otimizados para entrar no mercado não são sincronizados, porque os valores dos indicadores e preços se rasgam. Leva tempo para se recuperar. Para a AO eu defini 12 horas, e considero uma lacuna significativa como uma mudança de preço em mais de 20 pontos padrão (para alguns pares pode e deve haver outros valores).
Assim, o que temos feito:
No início, determinamos se havia uma lacuna
string dttm = StringConcatenate (Ano(),",Mês(),",Dia());
datetime smtm=StrToTime(dttm);
bool Gp;
int shft = iBarShift(NULL,0,smtm);
iOpn duplo = iOpen (NULL,0,shft); iCls duplo = iClose (NULL,0,shft+1);
duplo dOC = MathAbs ((iOpn - iCls)/(Ponto*10)) ;
se (dOC>20) Gp = verdadeiro ;
Se foi e Gp = verdadeiro, então a condição para o banimento é
((DayOfWeek( ) == 1 && Hora( ) <14) && Gp))
Embora eu tenha algumas dúvidas de que a função
iBarShift (NULL,0,smtm);
talvez fosse melhor escrever da seguinte maneira
iBarShift (NULL,60,smtm,true); mas não, o último parâmetro padrão ainda é falso ?
Estou aguardando suas idéias e sugestões.
Preste também atenção a estas linhas na EA
equilíbrio inicial, mínimo e máximo, quando a EA está sendo negociada.
//------------------------------------------------------------------//
bool TrBlnc = true; int StrtBlnc = 3000; int DBlnc = 1500; int UBlnc = 4000;
//------------------------------------------------------------------//
Esta proibição é implementada em função bool FLG (int cs )
Por que você precisa de tais restrições?
Por que você precisa de tais restrições?
Se você não precisa dela, não a use! Estou preparando a EA de verdade e como uma EA em várias moedas. No futuro, será um garfo, onde a EA não poderá negociar por baixo, para não perder tudo numa situação de força maior, assim como por cima - uma ave na mão é melhor do que um guindaste))) MM no entanto
E agora notícias do campo ou da frente))
No fim de semana passado, não tive tempo de preparar os arquivos do conjunto para a versão L9, terminei o trabalho tarde mais os feriados))))
Portanto, decidiu colocar a experiência. Coloquei a versão da L9 com conjuntos da semana passada e de outra versão.
O que temos ao final de dois dias: saldo -$70 Equidade +$420 Boa jogada!
Portanto, se você estiver testando ou otimizando, certifique-se de que a Equidade esteja dentro da faixa definida nos parâmetros
bool TrBlnc = true; int StrtBlnc = 3000; int DBlnc = 1500; int UBlnc = 4000;
ou adicionar a int init() linha se ( IsOptimization( ) ) TrBlnc = falso;// se ( IsTesting() ) TrBlnc = falso;
Funcionou.
A otimização está em andamento.
Talvez tais variáveis devam ser movidas para fora do código?
Seria mais fácil durante a otimização e no trabalho real, também.
O Expert Advisor não terá que ser recompilado toda vez que o saldo for alterado.