Tudo sobre Programação, com código fonte exemplo - página 3

 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Media movel 30s

leosteg, 2019.04.10 18:57

Boa tarde, estou fazendo um indicador de media móvel corrida, mas ao invés dela fazer as medias de todos os candles, queria saber se é possível ela pegar apenas os últimos 30 segundos


#property indicator_label1  "A"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrYellow
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- indicator buffers
double         ABuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,ABuffer,INDICATOR_DATA);
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   for(int i=0; i<rates_total; i++)
   
      {
      
      ABuffer[i] = (high[i] + low[i]) / 2;
      }
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Input colocado manualmente virar uma linha horizontal ?

sergiomt, 2019.04.14 21:16

RESOLVI

Acrescentei ao código o bloco abaixo:



//+------------------------------------------------------------------+

//| TradeTransaction function                                        |

//+------------------------------------------------------------------+

void OnTradeTransaction(const MqlTradeTransaction &trans,

                        const MqlTradeRequest &request,

                        const MqlTradeResult &result)

  {

//--- get transaction type as enumeration value 

   ENUM_TRADE_TRANSACTION_TYPE type=trans.type;

//--- if transaction is result of addition of the transaction in history

   if(type==TRADE_TRANSACTION_DEAL_ADD)

     {

      long     deal_entry        =0;

      double   deal_profit       =0.0;

      double   deal_volume       =0.0;

      string   deal_symbol       ="";

      long     deal_magic        =0;

      long     deal_reason       =-1;

      if(HistoryDealSelect(trans.deal))

        {

         deal_entry=HistoryDealGetInteger(trans.deal,DEAL_ENTRY);

         deal_profit=HistoryDealGetDouble(trans.deal,DEAL_PROFIT);

         deal_volume=HistoryDealGetDouble(trans.deal,DEAL_VOLUME);

         deal_symbol=HistoryDealGetString(trans.deal,DEAL_SYMBOL);

         deal_magic=HistoryDealGetInteger(trans.deal,DEAL_MAGIC);

         deal_reason=HistoryDealGetInteger(trans.deal,DEAL_REASON);

        }

      else

         return;


      if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)

         if(deal_entry==DEAL_ENTRY_OUT)

           {

            if(deal_reason==DEAL_REASON_SL)

               ExtValorX=m_position.PriceCurrent();

            else if(deal_reason==DEAL_REASON_TP)

               ExtValorX=m_position.PriceCurrent();

           }

     }

  }

/


 
Joscelino Celso de Oliveira:

Ótima contribuição @Joscelino Celso de Oliveira, obrigado por compartilhar.
Sds.,
Rogério Figurelli

 

Um exemplo de péssima pratica de usuários do MT5 iniciantes.

Pegar um código, sequer efetuar a leitura do mesmo, colocar para rodar, nao obter o resultado esperado e postar no Fórum para ver se alguém "conserta" o mesmo para atender a seus desejos.

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

PRECISO DE UMA AJUDA COM O MEU INDICADOR, ESTÁ REPINTANDO, ALGUÉM PODE ME AJUDAR?

Joscelino Celso de Oliveira, 2019.04.20 02:04

Você efetuou os inputs indicados pelo desenvolvedor do indicador?

Você entende ao menos uma linha escrita pelo desenvolvedor?


 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Preço de abertura

Trader_Patinhas, 2019.04.25 01:11


Acabei de testar o script abaixo na Modal e funcionou perfeitamente:

void OnStart()
{
        double preco_abertura = SymbolInfoDouble (Symbol(),SYMBOL_SESSION_OPEN);
        printf( "Preço de abertura: %f", preco_abertura );   
}


Quanto ao backtest, acho que tanto faz, desde que ambas as corretoras tenham um histórico íntegro ... mas eu não uso a ferramenta de teste nativa do MT5, então melhor ouvir a opinião de quem usa, pode ter algum "bizú" que eu não saiba.


 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Em que momento, exatamente, é acionado o stop-loss ?

Trader_Patinhas, 2019.01.19 03:52

Em que momento, exatamente, é acionado o stop-loss ?

(A) No momento em que a melhor oferta atingir valor igual ou além do stop-loss (BID <= SL, se for posição comprada, ou ASK >= SL, se for posição vendida).

(B) No momento em que ocorrer um negócio com valor igual ou além do stop-loss (LAST <= SL, se for posição comprada, ou LAST >= SL, se for posição vendida).

(C) Nenhuma das respostas anteriores. O stop-loss é acionado quando ____________________________________________________________.

Agradeço quem souber responder ou indicar referência, pois não encontrei resposta a essa dúvida na documentação MQL5.


 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Visualização de leilão e preço teórico?

vinicius marini, 2019.04.09 05:30

Acabei fazendo um script pra calcular.


Funciona bem para ativos de liquidez baixa ou média, mas por limitações do numero de ofertas no Book que a XP retorna (16 ofertas de compra e 16 ofertas de venda) em ativos muito liquidos ele não consegue calcular. Nesse caso ele da uma estimativa.

Segue os fontes em anexo. Só criar um projeto, acrescentar os fontes e compilar.


 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Book de Ofertas no Strategy Tester

jdayanami, 2019.03.07 20:22

Fala ai pessoal, boa tarde.

Estou tentando utilizar o StrategyTester do MT5, build 2007, ModalMais para fazer alguns teste, porque é mais rápido que no live, mas aparentemente não há acesso ao Book de Ofertas (li isso em um post antigo, de 2014 acho).

Alguém sabe se realmente o book de Ofertas não pode ser acessado no Strategy Tester? Estou usando a função MarketBookGet, conforme abaixo:

         if (MarketBookAdd(Symbol()))
         {
             bookOk = MarketBookGet(NULL, PBookArray);
         }
         else
         {
            Print("Erro 3: " + GetLastError() + " " + Symbol());
         }


Obrigado.

Jhoni Carlos da Silva.


 

Boa tarde, estou recebendo o seguinte código de erro : 32767 ( erro na inicialização de um robô ) . Alguém tem ideia do que seja ?


Obrigado

 
fercasa:

Boa tarde, estou recebendo o seguinte código de erro : 32767 ( erro na inicialização de um robô ) . Alguém tem ideia do que seja ?


Obrigado

@fercasa,

Abra uma nova thread, inserindo um print da aba diário (journal) e o código do EA, caso você tenha desenvolvido.

Caso contrario, entre em contato com o desenvolvedor.

Da forma que postou não eh possível ajudar.

[ ]'s