Especialistas: Multi Stochastic

 

Multi Stochastic:

Expert Advisor com base nos sinais do indicador iStochastic (Stochastic Oscillator).

Multi Stochastic tester

Autor: Vladimir Karputov

 
Automated-Trading:

Multiestocástico:

Autor: Vladimir Karputov

Vladimir, crie uma classe Martin comutável, pois preciso adicioná-la manualmente a todos os códigos para verificar se ela funciona....

Agradecimentos

//--- externo
input double   KLot      =5;         // Fator de multiplicação de lote
input double   MaxLot    = 0.20;         // Lote máximo, após o qual o lote é inicializado
input double   Lots       = 0.040;       // Número de lotes para negociação 

//+------------------------------------------------------------------+ 
//| Aplicar Martin ou rejeitar, definir KLot=1 ||
//+------------------------------------------------------------------+
double martin(void)
  {
   double lot=Lots;
//--- Acesse o histórico
   HistorySelect(0,TimeCurrent());
//--- Negócios na história
   int orders=HistoryDealsTotal();
//--- Ticket da última transação 
   ulong ticket=HistoryDealGetTicket(orders-1);
   if(ticket==0)
     {
      Print("Nenhum negócio na história! ");
      lot=Lots;
     }
//--- Lucro da transação
   double profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
//--- Lote de transação.
   double lastlot=HistoryDealGetDouble(ticket,DEAL_VOLUME);
//--- Lucro negativo
   if(profit<0.0)
     {
      //--- Aumentar o próximo lote
      lot=lastlot*KLot;
      Print("O negócio foi fechado na parada! ");
     }
//--- Reduzir o lote ao mínimo
   double minvol=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
   if(lot<minvol)
      lot=minvol;
//--- Se o lote for maior que o lote máximo, então o lote inicial
   if(lot>MaxLot)
      lot=Lots;
//--- Volume de negociação de retorno
   return(lot);
  }
//+------------------------------------------------------------------+
//| Veja o tipo da última transação fechada.
//+------------------------------------------------------------------+
int LastDealType(void)
  {
   int type=0;
//--- Acesse o histórico
   HistorySelect(0,TimeCurrent());
//--- Negócios na história
   int orders=HistoryDealsTotal();
//--- Ticket da última transação 
   ulong ticket=HistoryDealGetTicket(orders-1);
//--- Nenhuma transação no histórico
   if(ticket==0)
     {
      Print("Nenhum negócio na história! ");
      type=0;
     }
   if(ticket>0)
     {
      //--- Última negociação de COMPRA 
      if(HistoryDealGetInteger(ticket,DEAL_TYPE)==DEAL_TYPE_BUY)
        {
         type=2;
        }
      //--- Última VENDA
      if(HistoryDealGetInteger(ticket,DEAL_TYPE)==DEAL_TYPE_SELL)
        {
         type=1;
        }
     }
//---
   return(type);
  }  
//+------------------------------------------------------------------+
 
Сергей Криушин:

Vladimir, por favor, crie uma classe Martin comutável, caso contrário, terei que adicionar manualmente todos os códigos para verificar a aceitabilidade no trabalho...

Obrigado


Por quê? Não há necessidade disso.

 
Vladimir Karputov:

Por quê? Não é necessário.

Não sei... Martin às vezes é muito melhor....

 
Сергей Криушин:

Não sei... às vezes é muito melhor com o Martin.....

É sempre melhor com o Martin, mas não é tão bom sem ele.

 
Vitaly Muzichenko:

Ele sempre funciona muito melhor com o Martin, mas sem ele tudo é triste.

Sim, o principal é não acelerá-lo, para não drenar... a propósito, o código universal é retirado de https://www.mql5.com/pt/code/13315 se o lucro for alterado para positivo - coloque lucro>0; ele se tornará um antiMartin... multiplicará o lucro.... ))
 

Hi

Você usa 2 ou 3 osciladores estocásticos para negociar?

por exemplo, stoch(5,3,3) e stoch(26,10,10) juntos?

 
tesla351 :

Hi

Você usa 2 ou 3 osciladores estocásticos para negociar?

Por exemplo, stoch(5,3,3) e stoch(26,10,10) juntos?


Não. Normalmente, é usado um indicador iStochastic (Stochastic Oscillator).

 

"O testador parou porque OnInit retorna um código diferente de zero 1"

Como resolver isso?