[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 124

 
evillive:

Hmm, bem, ou isto... Mas eu já me vi com essa coruja e tudo está bem, nada "desaparece" em lugar algum, as ordens abertas, em geral se comportam como uma EA )

Muito obrigado, muito obrigado, é interessante! Isso significa que meu computador está com falhas!
 
Dimka-novitsek:

Muito obrigado, muito obrigado, interessante! Então meu computador está com problemas!
Você já tentou "reinicializá-lo"? ))
 
Olá a todos! Pessoal, alguém pode ter visto na rede, precisa de um indicador parabólico SAR que possa ser sobreposto a outros induzidos? ou quem pode ser abordado para criar um... obrigado de antemão
 
smshev:
Você já tentou "reinicializá-lo"? ))

- O quê? Desculpe, eu não entendo.
 
Dimka-novitsek:

- O quê? Desculpe, eu não entendo.
o software gosta de ser reinicializado com mais freqüência ))
 

Tarde )))) Escrevi minha primeira EA, mas acabou se tornando problemática))))))) Esta EA coloca apenas ordens de venda, embora as condições de compra sejam muito simples e pareça não vê-las.

if (ZZ2< pp1 ) { OpenPosition ("", OP_BUY, Lots_New,SLB,TPB, mn);}

if (pp1 < ZZ2) {OpenPosition("", OP_SELL, Lots_New, SLS,TPS, mn);}

Se alguém pudesse dar uma olhada no código, eu ficaria muito grato))))

Arquivos anexados:
 
PS: Bem, se você quiser acrescentar uma parada móvel e ter lucro, seria bom ter uma parada móvel e ter lucro.(tentei configurá-lo) quando SL ou TP acionaram a EA deve continuar a funcionar corretamente em TS (abrir e fechar pedidos por estocástico, pedido aberto deve ser apenas um)
Muito obrigado com antecedência.

PS. e se você desejar, seria bom adicionar trailing stop e zero perda=)

Arquivos anexados:
2.mq4  10 kb
 
Lisi4ka330:

Boa tarde ))) Escrevi minha primeira EA, mas acabou se tornando problemática))))))) Esta EA coloca apenas ordens de venda, embora a condição de compra seja a mais fácil e parece não vê-las.

if (ZZ2< pp1 ) { OpenPosition ("", OP_BUY, Lots_New,SLB,TPB, mn);}

if (pp1 < ZZ2) {OpenPosition("", OP_SELL, Lots_New, SLS,TPS, mn);}

Se alguém pudesse dar uma olhada no código, eu ficaria muito grato))))


Num relance rápido tudo está bem... como é com o cálculo do lote, ele passa (entendo que deve haver uma mensagem para o log) ? Experimente um fixo para começar.

E em geral, verifique assim a execução da condição comercial:

Print(DoubleToStr(pp1,Digits));
Print(DoubleToStr(ZZ2,Digits));

if (ZZ2< pp1 )
    {OpenPosition ("", OP_BUY, Lots_New,SLB ,TPB , mn);}

if (pp1 < ZZ2)
    {OpenPosition("", OP_SELL, Lots_New, SLS,TPS , mn);}
 
Lisi4ka330:

Boa tarde )))) Escrevi minha primeira EA, mas acabou se tornando problemática))))))) Esta EA coloca apenas ordens de venda, embora as condições de compra sejam muito simples e a EA pareça não vê-las.

if (ZZ2< pp1 ) { OpenPosition ("", OP_BUY, Lots_New,SLB,TPB, mn);}

if (pp1 < ZZ2) {OpenPosition("", OP_SELL, Lots_New, SLS,TPS, mn);}

Se alguém der uma olhada no código, eu ficaria muito grato))))


Estranho, em teoria não deveria ver a venda rápida porque você usa o pa em vez do pb.

double TPS= NormalizeDouble(pa-tp*po, Dígitos);// calcular Tp para venda
double SLS= NormalizeDouble(pa+sl*po, Dígitos);// calcular SL para venda

 

Existe um algoritmo de recálculo desse tipo:

   int ic=IndicatorCounted();
   if(Bars-ic-1>1) {ic=reinit();}
   int limit=Bars-ic-1; //BarsPrev=Bars; // кол-во пересчетов
   if(History!=0 && limit>History) limit=History-1; // кол-во пересчетов по истории

   for(int i=limit; i>=1; i--) // цикл по непосчитанным и предпоследнему барам
     {
      int n;
      int iShift=i+Shift;
      
      if (i==0)
      Input[i]=iClose(Symb, Period(), iShift);
      else
      Input[i]=(iHigh(Symb, Period(), iShift)+iLow(Symb, Period(), iShift))/2;
       }

Pelo que entendi, conta todas as barras, exceto a última.

Você pode me dizer como fazer para recalcular a última barra em i=0 (já existe uma condição para isso no laço)?

Razão: